add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
�

�Wc��cs��	dZdZddlZddlZddlZddlZddlZddlZddddddddd	d	d
�
Zejd�Z
d�Zejd
ej�Z
dQd�ZdRd�Zejd�Z		dSd�Z	ddlZd�Zgd�Zgd�Zd�Zd�Zd�ZdTd�Zd�ZdUd�Zd �ZdVd!�Zd"�Zd#�Z dRd$�Z!d%�Z"dRd&�Z#d'd(d)d�Z$ejJddfd*�Z&d+�Z'Gd,�d-�Z(d.�Z)Gd/�d0ejTd1d2��Z+da,d3�Z-d4�Z.d5�Z/d6�Z0d7�Z1d8�Z2d9�Z3ejd:ej�Z4ejd;ej�Z5ejd<�Z6ejd=�Z7iZ8dWd>�Z9d?�Z:d@�Z;dA�Z<dB�Z=dC�Z>dD�Z?dE�Z@iZAdXdF�ZBejdG�ZCejdH�ZDdIZEdaFdJ�ZGdK�ZHeIdLkr^dMej�vp
dNej�vZKdOej�vo
dPej�vZLeMeBeLeK��ej�d�dSdS#e$rd�ZY���wxYw)Ya
    Copyright (c) 1999-2000, Marc-Andre Lemburg; mailto:mal@lemburg.com
    Copyright (c) 2000-2010, eGenix.com Software GmbH; mailto:info@egenix.com

    Permission to use, copy, modify, and distribute this software and its
    documentation for any purpose and without fee or royalty is hereby granted,
    provided that the above copyright notice appear in all copies and that
    both that copyright notice and this permission notice appear in
    supporting documentation or portions thereof, including modifications,
    that you make.

    EGENIX.COM SOFTWARE GMBH DISCLAIMS ALL WARRANTIES WITH REGARD TO
    THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
    FITNESS, IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL,
    INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
    FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
    NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
    WITH THE USE OR PERFORMANCE OF THIS SOFTWARE !

z1.0.8�N�
iii(i2i�)
ZdevZalphaZaZbeta�bZcZRCZrc�plZpz([0-9]+|[._+-])cs��g}tj|�D],}|dvs�	t|d�}d}|j
||f��.|S#t$rtj|d�}Y�;wxYw)Nz._+-ridr)�
_component_re�split�int�
ValueError�_ver_stages�getZextend)�version�result�vZt�    �!/usr/lib64/python3.12/platform.py�_comparable_versionr�s���
�F�
�
 �
 ��
)�"�"���F�?�?��
*���2�J����
�M�M�1�a�&�!�!�!��M���
*�
*�
*��O�O�A�q�)����
*���s�A
�
"A/�.A/sC(__libc_init)|(GLIBC_([0-9.]+))|(libc(_\w+)?\.so(?:\.(\d[0-9.]*))?)��@csX�	|sa	tjd�}|jd��}t|�dkr
t	|�S	tj}|s||fSt}tjj|�}t|d�5}|j|�}d}	|	t|�k�r0d|vsd|vrtj!||	�}
nd}
|
r |
j#�t|�kr<|j|�}|r%|t%|	t|�d	z
�d|z}d}	��|
sn�d
�|
j'�D�\}}
}}}}|r|sd}nd|
r"|dkrd}|}nW||�||�krC|}n@|r>|dkr8d}|r|r||�||�kr|}|r|t|�d|kr||z}|
j#�}	|	t|�kr��0ddd�||fS#t
ttf$rY���wxYw#1swY||fSxYw)
NZCS_GNU_LIBC_VERSION�)Zmaxsplit��rbrslibcsGLIBCi�cs<�g|]}|�|jd�n|��S)NZlatin1)�decode)�.0Zs�  rz
<listcomp>zlibc_ver.<locals>.<listcomp>�s:��E%�E%�E%��'(�m�����"�"��:�:�E%�Zlibc�glibc)�osZconfstrr�len�tuple�AttributeErrorr�OSError�sys�
executabler�pathZrealpath�openZread�_libc_searchZsearchZendZmax�groups)r Zlibr
Z	chunksize�verZpartsZV�fZbinaryZpos�mZchunkZlibcinitrZglibcversionZsoZthreadsZ	soversions                  r�libc_verr(�s�����:�	��*�*�2�3�C��I�I�q�I�)�E��5�z�Q����U�|�#���^�^�
��z���<���A����!�!�*�-�J�	
�j�$�	�"�1����	�"�����C��K����&� � �H��$6�$6� �'�'���4������1�����3�v�;�.�.����y�)���5�#�C��S��[�4�-?�$@�$A�B�U�J�F��C���q��E%�E%�����E%�E%�A�H�e�\�2�w�	��x���������'�>�>�!�C�*�G�G��Q�|�_�q�q��z�1�1�*�G�G����'�>�>� �C� �y�'�'�Q�Q�y�\�A�A�g�J�5N�5N�"+���w�7�C��L�=�>�#:�g�#E�#E�")�G�"3���%�%�'�C�?�C��K����"�"�"�"�"�F��<���e�
�G�4�	�	�	��D�	����"�"�"�"�"�"�"�"�F��<����s�AG?�EH�?H�H�H)c	s�	|jd�}|r|j|�	ttttt
|���}dj|dd�}|S#t$r|}Y�%wxYw)N�.�)r�appendZlist�map�strrr�join)r
�build�lZstringsr
r�
_norm_versionr1�s����	�
�
�c��A��u�	��������s�3��C���,�-���h�h�w�r��{�#�G��N�������������s�/A/�/A>�=A>z'(?:([\w ]+) ([\w.]+) .*\[.* ([\d.]+)\])��win32�win16�doscs��	tj|vr|||fSddl}dD]/}	|j||j|jdd��}n|||fS|j�}tj|�}|�D|j�\}}}|ddkr|dd}|ddkr|dd}t|�}|||fS#t
|jf$r
}Yd}~��d}~wwxYw)Nr)r%zcommand /c verz
cmd /c verT)Zstdin�stderr�textZshell�����r))r�platform�
subprocess�check_output�DEVNULLr�CalledProcessError�strip�_ver_output�matchr$r1)	�system�releaser
Zsupported_platformsr:Zcmd�infoZwhyr's	         r�_syscmd_verrDsC��	��|�|�.�.�.��w��'�'�����6�
(�
(��
	��*�*�3�1;�1C�1C�2<�2D�2D�04�15�	+�7�D�
�E��w��'�'��:�:�<�D����$��A��}�#$�8�8�:� �����2�;�#����c�r�l�G��2�;�#����c�r�l�G� ��(���7�G�#�#��+��6�6�7�	�	�	��H�H�H�H�����	���s�+C	�	C)�$C)cs���ddd�|}tjdjdj|�|��j	d�}d�|D�}d�|D���fd	�|D�S)
NZWin32_OperatingSystemZWin32_Processor)�OS�CPUzSELECT {} FROM {}z,zc3s<K�|]}|jd����dS)z=N)Z	partition�rZirr�	<genexpr>�_wmi_query.<locals>.<genexpr>Gs+����5�5�1�a�k�k�#�&�&�&�&�&�5�5rcs.�i|]}|d|d��S)rr�rGrrz
<dictcomp>z_wmi_query.<locals>.<dictcomp>Hs ��4�4�4�A�Q�q�T�1�Q�4�Z�Z�4rc3s*�K�|]}�|���dS�NrJ)rZk�	dict_datas  �rrHrIIs#�����+�+��	�!������+�+r)�_wmiZ
exec_query�formatr.r)Ztable�keysZdataZ
split_datarLs    @r�
_wmi_queryrP>s����)�$�
�
�������2�9�9��H�H�T�N�� 
���5��;�	
�6�5��5�5�
�4�4��4�4�	�+�+�+�+�d�+�+�+rcs�td��)Nz
not supported)r)rO� rrPrP;s
���o�&�&r))�rrrZpost11))rri�UZ11)���rZ10)�rTr*rz8.1)�rTrrZ8)�rTrrZ7)�rTrr�Vista))�ri�ZXP64)�r[rrZXPMedia))r[rrZXP)�r[rrZ2000)
)rRZpost2022Server))rri|OZ
2022Server))rricEZ
2019Server)rSZ
2016Server)rVZ2012ServerR2)rWZ
2012Server)rXZ2008ServerR2)rYZ
2008Server)r\Z
2003Server)r]Z
2000Servercs�t�dvS)N)ZIoTUAPZ
NanoServerZWindowsCoreHeadlessZ	IoTEdgeOS)�
win32_editionrJrr�win32_is_iotr_gs���?�Z�Z�Zrcs �		ddl}	d}|j|j|�5}|j|d�dcddd�S#t$rddl}Y�TwxYw#1swYnxYw	dS#t$rYdSwxYw#t$rYdSwxYw)Nr�,SOFTWARE\Microsoft\Windows NT\CurrentVersionZ	EditionId)�winreg�ImportError�_winreg�	OpenKeyEx�HKEY_LOCAL_MACHINE�QueryValueExr)ra�cvkey�key�   rr^r^js=��
�	%��M�M�M�	�C�E��!�!�&�";�";�U�C�
@�s��*�*�3��<�Q�?�
@�
@�
@�
@�
@�
@�
@���	%�	%�	%�$�$�$�$�$�$�	%����
@�
@�
@�
@�
@�
@�
@�
@�
@����
@�
�4���	�	�	���4�	������
�
�
���4�
���sQ�A�A.�A�
A.�A�A?�A�A?�A(�$A.�.
A<�;A<�?
B
�B
cs��	tdddddd�\}}}}}t|�dk}|r|dkr	d	|�d
|��}nd	|��}||||fS#t$rYnwxYw	ddlm}n#t
$r	|||d
fcYSwxYw|�}t
|dd�dk}	t�d}tt|jd
��\}	}
}n9#t$r,|jp|dd\}	}
}dj|	|
|�}YnwxYw|dd|	|
fkr?	dj|j�}n!#t$r|dddkrd	|ddz}YnwxYw		ddl}n#t
$rddl}YnwxYw	d}
|j#|j$|
�5}|j'|d�d}ddd�n#1swYnxYwn #t$rYnwxYw#t
$rYnwxYw||||fS)NrEZVersionZProductTypeZ	BuildTypeZServicePackMajorVersionZServicePackMinorVersionr�0ZSPr)r)�getwindowsversionT�product_typerr*z{0}.{1}.{2}zSP{}i
z
Service Pack r`ZCurrentType)rPrrrrkrb�getattrrDr,rrZplatform_versionrNZservice_pack_majorrrarcrdrerf)r
�csd�ptyperlZspmajorZspminor�	is_clientrkZwinver�majorZminorr/rargrhs               r�
_win32_verrr|s'��
�<F�����%�%�
=
�8��,��w����&�!�+�	��7�w�#�~�~�*�w�*�*��*�*�C�C� �w�.�.�C���U�I�-�-���
�
�
���
����)�)�)�)�)�)�)�)���)�)�)���U�D�(�(�(�(�)�����
�
 �F�����3�q�8�I�<��-��"��!�#�w�}�}�S�'9�:���u�e�e���<�<�<�$�5�5�C�������u�e��&�&�u�e�U�;����<�����b�q�z�e�U�^�#�#�	&��-�-�� 9� 9�:�C�C���	&�	&�	&��3�B�x�?�*�*��S���X�o����	&����
�	%��M�M�M�M���	%�	%�	%�$�$�$�$�$�$�	%����
	�C�E��!�!�&�";�";�U�C�
C�s��+�+�C��?��B��
C�
C�
C�
C�
C�
C�
C�
C�
C�
C�
C�
C�
C�
C�
C�������	�	�	��D�	������
�
�
���
�����C��	�)�)s��AA�
A�A�A�A2�1A2�9C�3D�D�D-�-E�
E�E�G
�E&�#G
�%E&�&G
�*F:�	F-�#
F:�-F6�2F:�:
G�G�

G�Gcs���d}t|||�\}}}}|rVttt|j	d����|rt
nt}t�fd�|D�|�}||||fS)NFr)c3s2�K�|]\}}|�ks�
|���dSrKrJ)rr�r�
intversions   �rrHzwin32_ver.<locals>.<genexpr>�s,�����B�B�d�a��!�z�/�/�������B�Br)rrrr,rr�_WIN32_CLIENT_RELEASES�_WIN32_SERVER_RELEASESZnext)rBr
rnrorpZreleasesrts      @r�	win32_verrw�s{����I�%/���e�%D�"�G�S�%���w��3�s�G�M�M�#�$6�7�8�
�-6�Y�)�)�<R���B�B�B�B�h�B�B�G�L���G�S�%�'�'rcsN�d}tjj|�sdS	ddl}t|d�5}|j
|�}ddd�d}d}tj�j}|dvrd}|||fS#t$rYdSwxYw#1swY�OxYw)Nz0/System/Library/CoreServices/SystemVersion.plistrrZProductVersion�rrr)ZppczPower Macintosh�PowerPC)	rr!Zexists�plistlibrbr"Zload�uname�machine)Zfnrzr&rrB�versioninfor|s       r�_mac_ver_xmlr~�s���	;�B�
�7�7�>�>�"����t������
�b�$���1�
�]�]�1�
��������!�"�G��K��h�h�j� � �G��,�,�,����K��(�(�������t�t����������������s�B
�B�

B�B�B$rxcs.�	t�}|�|S|||fSrK)r~)rBr}r|rCr
r�mac_verr�s*����>�D������K��(�(rcsd�ddlm}	|j|�}|�|S|S#t$r|cYSwxYw)Nr)�System)�	java.langr�ZgetPropertyr)�name�defaultr��valuer
r�
_java_getpropr��s\�� � � � � � ���"�"�4�(���=��N���������������s� � �/�/csR�		ddl}td|�}td|�}|\}}}td|�}td|�}td|�}|||f}|\}}	}
td|
�}
td|�}td	|	�}	||	|
f}||||fS#t$r	||||fcYSwxYw)
Nrzjava.vendorzjava.versionzjava.vm.namezjava.vm.vendorzjava.vm.versionzjava.os.archzjava.os.namezjava.os.version)r�rbr�)rB�vendor�vminfo�osinfo�javaZvm_nameZ
vm_releaseZ	vm_vendor�os_name�
os_version�os_archs           r�java_verr��s���	�/������=�&�
1�F��N�G�4�G�%+�"�G�Z���N�G�4�G��.�	�:�I��0�*�=�J�
�j�)�
+�F�#)� �G�Z���N�G�4�G��N�G�4�G��0�*�=�J�
�j�'�
)�F��F�F�F�*�*��!�/�/�/�����.�.�.�.�/���s�B�B&�%B&cs�	|dkrf|dkr|||fS|jd�}|r;	t|d�}|dz
}t|�|d<dj|�}|dkrd}n	d}n|dvrd	}|||fS#t$rY�#wxYw)
NZSunOSZ5r)rr*Z6ZSolaris�r3r4�Windows)rrr-r.r)rArBr
r0rq�     r�system_aliasr�s���������S�=�=��7�G�+�+��M�M�#����1�
&��A�a�D�	����	���5�z��!���(�(�1�+���S�=�=��F�F��F�F�	�%�	%�	%���
�7�G�#�#��'�
�
�
���
���s�A9�9
B�Bcs,�	djd�tt|�D��}|jdd�}|jdd�}|jdd�}|jdd�}|jdd�}|jd	d�}|jd
d�}|jdd�}|jdd
�}	|jdd�}||krn|}�|ddkr|dd}|ddkr�|S)Nz-c3s:K�|]}|j����dSrK)r>)rZxrrrHz_platform.<locals>.<genexpr>Ns$����=�=�a����	�	�	�	�	�=�=r� �_z/z\z:z;z"z(z)�unknownrTz--r8)r.ZfilterrZreplace)Zargsr9Zcleanedrir�	_platformr�Hs4����x�x�=�=�6�#�t�+<�=�=�=�H�����S�)�H�����S�)�H�����c�*�H�����S�)�H�����S�)�H�����S�)�H�����S�)�H�����S�)�H����	�2�.�H���"�"�4��-���h������	�
�2�,�#�
�
��C�R�=���2�,�#�
�
���Orcsz�		ddl}	|j�S#t$r|cYSwxYw#t$r|cYSwxYw�Nr)�socketrbZgethostnamer)r�r�rr�_noder�hsu�����
�
�
���!�!�#�#��	�������������
�����������s��+�(�(�:�:cs��	tjj|�}tjj|�r�tjj	tjjtjj
|�tj|���}tjj|�r��|SrK)rr!ZabspathZislinkZnormpathr.ZdirnameZreadlink)ZfilepathrQr�_follow_symlinksr�ws�����w�w���x�(�H�
�'�'�.�.��
"�
"��7�7�#�#��G�G�L�L�������2�B�K�K��4I�J�L��
�'�'�.�.��
"�
"���Orcs`�	tjdvr|S	ddl}t	|�}ttjd��}	|jdd|g|j|��}|s|S|jd�S#t$r|cYSwxYw#t|jf$r|cYSwxYw)	N)r5r3r4rZC)ZLC_ALLZfilez-b)r6�envzlatin-1)
rr9r:rbr�Zdictr�environr;r<rr=r)Ztargetr�r:r�Zoutputr�r�_syscmd_filer��s�����|�|�0�0�0���������f�
%�F��r�z�z�#�
&�
&�C���(�(�&�$��)?�0:�0B�0B�-0�)�2��
�6����=�=��#�#��#�������������
�Z�2�2�3�����������s#�B�"B�B�B�B-�,B-)r�	WindowsPE)rr�)r�MSDOScs��	|s)ddl}|jd�}t|dz�dz}|rt|d�}nd}|sX|tj
krCtjtvr'ttj\}}|r|}|r|}||fSd|vrd|vr||fSd|vrd	}nd
|vrd}d|vrd}||fSd
|vrd|vrd}||fSd
}||fSd|vrd}||fSd|vrd}||fS	||fS)NrZPiZbitrr z
shared objectz32-bit�32bitz64-bitZ64bitZELFZPEr�r�ZCOFFzMS-DOSr�)�structZcalcsizer-r�rr r9�_default_architecture)r �bits�linkager�ZsizeZfileoutrr0s        r�architecturer��s����*�4��
�
�
����s�#���4�!�8�}�u�$���z��z�2�.������7��S�^�^�#�#��<�<�0�0�0�(����6�D�A�q��q����q����W�}���7�"�"��g�'E�'E��W�}���7������	�W�	�	���
��������=��
��������!�G���=���G���=��
�7�	�	�����=��

�W�	�	���
��=��	
���=�rcs.�	tdd�^}}	gd�t|�}|r|St
jjdd�p!t
jjdd�S#ttf$rY�WwxYw#t$rY�gwxYw)NrFZArchitecture)
Zx86ZMIPS�AlpharyNZARMZia64NNZAMD64NNZARM64ZPROCESSOR_ARCHITEW6432rZPROCESSOR_ARCHITECTURE)rPrrZ
IndexErrorrrr�r	)Zarchr�rr�_get_machine_win32r��s������~�6�
���		�����$�i��D��t���
�
�
���/��4�	5�
�
�
���/��4����J�'�	�	�	��D�	������
�
�
���
���s"�B�A0�0B�B�
B�Bcs2�eZdZed��Zd�Zd�Zd�ZdS)�
_Processorcsl�t|dtj��|j�}|�pdS)NZget_r)rmrr9�from_subprocess)�clsZfuncrrr	z_Processor.gets1���s�1�3�<�<�1�1�3�3F�3F�G���t�v�|��rcs��	tddd�\}}|�d|��S#t$r/tjj	dt��cYSwxYw)NrFZManufacturerZCaption�, ZPROCESSOR_IDENTIFIER)rPrrr�r	r�)ZmanufacturerZcaptionrr�	get_win32z_Processor.get_win32sq��	0�$.�u�n�i�$P�!�L�'��/�/��/�/�/���	P�	P�	P��:�:�>�>�"8�:L�:N�O�O�O�O�	P���s��6A�Acsn�	ddl}|jdd�\}}|dkrdSdS#t$rYdSwxYw)NrzSYI$_CPUi�r�ZVAX)�vms_libZgetsyirb)r�ZcsidZ
cpu_numberrir�get_OpenVMSz_Processor.get_OpenVMS%s`��	;��N�N�N� '�~�~�j�!�<��D�*�(�C�/�/�7�:�U�:��	�	�	�	��D�D�	���s�&�
4�4cs��		ddl}	|jddg|jd��j	�S#t$rYdSwxYw#t
|jf$rYdSwxYw)Nrr{z-pT)r6r7)r:rbr;r<r>rr=)r:rQrr�z_Processor.from_subprocess.s���	�	�����	��*�*��$��!�)�)��+���e�g�	
���	�	�	��4�4�	�������6�6�7�	�	�	��D�D�	���s �8�/A	�
A�A�	A#�"A#N)�__name__�
__module__�__qualname__�classmethodr	r�r�r�rJrrr�r�sX�����������0�0�0�;�;�;�����rr�cs�|dkrdS|S)Nr�rrJ)ZvalrQr�_unknown_as_blankr�@s���	�!�!�2�*�s�*rcsj��eZdZ	ejd��Z�fd�Zed��Zd�Z	d�Z
d�Z�xZS)�uname_resultcsD�ttj��SrK)r�r�r	��selfrQr�	processorzuname_result.processorRs�� ����!1�2�2rcs|��tjt�j�|jf�SrK)�	itertoolsZchainZsuper�__iter__r�)r��	__class__s �rr�zuname_result.__iter__Vs,�������G����
�^�^��
�	
rcs��t|j�}|j|g|�R�}t|�|dzkr d|�dt|���}t|��|S)Nrz	Expected z arguments, got )r�_fieldsZ__new__Z	TypeError)r�ZiterableZ
num_fieldsrZmsgr�r�_makezuname_result._make\sh������%�
�����S�,�8�,�,�,���v�;�*�q�.�(�(�G�j�G�G�#�f�+�G�G�C��C�.� ��
rcs(�t|�|SrK)r)r�rhrr�__getitem__zuname_result.__getitem__fs���T�{�3��rcsH�ttt|���SrK)rrZiterr�rQr�__len__zuname_result.__len__is���5��d��$�%�%rcsZ�tt|�dt|j�fSrK)r�rrr�r�rQr�
__reduce__zuname_result.__reduce__ls"���U�4�[�);�#�d�l�l�*;�<�<�<r)
r�r�r��	functoolsZcached_propertyr�r�r�r�r�r�r�Z
__classcell__)r�s@rr�r�Fs��������
����3�3��3�
�
�
�
�
������ � � �&�&�&�=�=�=�=�=�=�=rr�Zuname_result_basez#system node release version machinecs��	t�tS	tj�x\}}}}}}t|�s�|dkrt�\}}}}|pt�}|r|s6t|�\}}}|dkrd}n|dkr|dkrd}d|ddkrd	}nd}|d
vr|s|dkrd}nd}d}n2|dd
dkr)t�\}}}	}
d}dj|	�}|s|}|dkr|r|dkr|}d}|dkr
|dkrd}d	}|||||f}ttt|��atS#t$r)tj
}t
�}dx}x}}d}Y��.wxYw)NrrJr3zMicrosoft Windowsr�Z	Microsoftz6.0r*rZr�r�Z16bitrUr��Javar�ZOpenVMSrj)�_uname_cacherr{rrr9r�Zanyrwr�rDr�r.r�r,r�)rA�noderBr
r|Zinfosrnror�r�r�Zvalss            rr{r{ss���	������:<�(�(�*�D�/���g�w��%��u�:�:��W���+4�;�(�G�W�c�5��5�!3�!5�G���G�G�'2�6�':�$�F�G�W��,�,�,�"����;�&�&�7�i�+?�+?�
#���G�B�Q�K�'�'�%�G�G� �G��'�'�'��7��W�$�$�%�G�G�%�G��F�F�
�B�Q�Z�6�
!�
!�.6�j�+�G�V�V�V��F��i�i��'�G��7� �������w�'�S�.�.��G��G������I�!5�!5������4��'�7�2�D���%6��!=�>�L����C���������w��&(�(��(�'�G�����	���s�D+�+/E�Ec�0�	t�jSrK)r{rArJrrrArA�s���
�7�>�>�rcr�rK)r{r�rJrrr�r��s����7�<�<�rcr�rK)r{rBrJrrrBrB�����
�7�?�?�rcr�rK)r{r
rJrrr
r
�r�rcr�rK)r{r|rJrrr|r|�r�rcr�rK)r{r�rJrrr�r��s����7���rzL([\w.+]+)\s*\(#?([^,]+)(?:,\s*([\w ]*)(?:,\s*([\w :]*))?)?\)\s*\[([^\]]+)\]?z;IronPython\s*([\d\.]+)(?: \(([\d\.]+)\))? on (.NET [\d\.]+)zU([\d.]+)\s*\(IronPython\s*[\d.]+\s*\(([\d.]+)\) on ([\w.]+ [\d.]+(?: \(\d+-bit\))?)\)zE([\w.+]+)\s*\(#?([^,]+),\s*([\w ]+),\s*([\w :]+)\)\s*\[PyPy [^\]]+\]?cs*�	|�tj}tj|d�}|�|Sd|vr{d}|j	d�rt
j
|�}ntj
|�}|�tdt|�z��|j�\}}}d}d}�n3tjj	d�rcd}tj
|�}|�tdt|�z��|j�\}}}}	}
|�d}tj}n�d|vrOd}tj
|�}|�tdt|�z��|j�\}}}}	d}n\tj
|�}|�td	t|�z��|j�\}}}}	}d
}|�d}n
|	r|dz|	z}ttd�rtj\}
}}n-ttd
�rtj \}
}}nd}d}|j#d�}
t%|
�dkr$|
j'd�dj)|
�}|||||||f}|t|<|S)NZ
IronPythonz*failed to parse IronPython sys.version: %srr�ZJythonz&failed to parse Jython sys.version: %sZPyPyz$failed to parse PyPy sys.version: %sz'failed to parse CPython sys.version: %sZCPythonr��_git�
_mercurialr)rrj)rr
�_sys_version_cacher	Z
startswith�_ironpython_sys_version_parserr@� _ironpython26_sys_version_parserrZreprr$r9�_sys_version_parser�_pypy_sys_version_parserZhasattrr�r�rrr+r.)Zsys_versionrr�r@r
Zalt_versionZcompilerZbuildnoZ	builddateZ	buildtimer�ZbranchZrevisionr0s              r�_sys_versionr�$s����&���k�k�� �
#�
#�K��
6�F�
���
��{�"�"����!�!�,�/�/�2�8�8��E�E�E�4�:�:�;�G�E��=��<��[�!�"�#�
#�*/����&���h����	�	�	���	 �	 ��	(�	(���#�)�)�+�6���=��8��[�!�"�#�
#�5:�L�L�N�1���)�Y�����I��<�<���	�;�	�	���(�.�.�{�;���=��C�!�+�.�/�0�
0�16����.���)�Y����$�)�)�+�6���=��9��[�!�"�#�
#��l�l�n�	9���)�Y�������I�I�
�Y�!�C��)�3�I��s�F���!�h�h���6�8�8�	��l�	#�	#�!�n�n���6�8�8�����	�
�
�c��A�
�1�v��{�{�	����
�
��(�(�1�+���G�V�X�w�	�8�
L�F�&,��{�#��Mrc�(�	t�dSr��r�rJrr�python_implementationr�������>�!��rcr�)Nrr�rJrr�python_versionr��s����>�!��rcs^�	tt�djd��S)Nrr))rr�rrJrr�python_version_tupler��s&�������"�(�(��-�.�.rcr�)Nrr�rJrr�
python_branchr��s����>�!��rcr�)Nr*r�rJrr�python_revisionr��r�rcs"�	t�ddS)NrUrTr�rJrr�python_buildr��s����>�!�A��rcr�)NrTr�rJrr�python_compilerr��s����>�!��rc	s��	tj||fd�}|�|St�\}}}}}}||krd}|rt|||�\}}}|dkrt	�d}	|	rd}|	}|dkr4t|�\}
}}}
|rt
||�}n�t
||||�}n�|dvr%t�\}}t
||||d||z�}n�|dkr=t�\}}}\}}}|s|st
|||�}nVt
|||d	|||�}nB|rt
||�}n1ttj�\}}t
||||||�}|t||f<|S)
NrZDarwinrZmacOSr�)�LinuxZwithr�Zon)�_platform_cacher	r{r�rrwr�r(r�r�rr )�aliased�terserrAr�rBr
r|r�Z
macos_releaseZrelZversrnror9ZlibcnameZlibcversionrsrr�r�r�r�r�r�s                         rr9r9�s����"�
 �
 �'�5�!1�4�
8�F�
���
�:?��6�F�D�'�7�G�Y��)����	��w�#/����#I� ����
�����	�!��
��=��F�#�G�
���� )�'� 2���T�3���5� ���1�H�H� ���'�3�?�H�H�	�:�	�	� (�
���+��V�W�g�y�#�%�k�1�3���
�6�	�	�7?�z�4��1�f�4�w�
�G��5��� ���'�:�H�H� ���'�!%�!(�*�g�?�H�H��5� ���1�H�H�(����8�M�D�'� ���'�!*�D�'�;�H�)1�O�W�e�$�%��OrzA^(?P<name>[a-zA-Z0-9_]+)=(?P<quote>["']?)(?P<value>.*)(?P=quote)$z\\([\\\$\"\'`]))z/etc/os-releasez/usr/lib/os-releasecs��dddd�}|D]W}tj|�}|��tjd|j	d��||j	d�<�Y|S)Nr�Zlinux)ZNAMEZIDZPRETTY_NAMEz\1r�r�)�_os_release_liner@�_os_release_unescapeZsubZgroup)ZlinesrCZlineZmor
r�_parse_os_releaser�6sv�������D�����
�
#�
#�D�
)��
�>��%9�%=�%=��r�x�x��(�&�D����&�!�"�"��Krcs|�	t�pd}tD]?}	t|d��5}t|�addd�tj�St	|ddj
t�����tj�S#1swY�\xYw#t$r}|j
}Yd}~��d}~wwxYw)Nzutf-8)ZencodingzUnable to read files r�)�_os_release_cache�_os_release_candidatesr"r�r�errnor.Zcopy)r�Z	candidater&Zer
r�freedesktop_os_releaser�Is���� ���/�	�	�I�
 ��)�g�6�6�=�!�(9�!�(<�%�=�=�=�=�=���!�!�#�#���K��	�	�2H�(I�K�K��
�
�!�!�#�#�=�=�=�=�=�=�=�=�=������
 �
 �
 ��������������
 ���s-�B�B�	B�B	�B�
B;�%B6�6B;Z__main__r�z--terseZ
nonaliasedz--nonaliased)Nrrr)r)rrrr2)rrrr)rrxr)rrrxrxrK)rr)OZ
__copyright__Z__version__ZcollectionsrZrerr�r�rZcompilerrZASCIIr#r(r1r?rDrMrPrbrurvr_r^rrrwr~rr�r�r�r�r�r�r�r�r r�r�r�r�Z
namedtupler�r�r{rAr�rBr
r|r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r9r�r�r�r�r�r�r�Zargvr�r�ZprintZexitrJrr�<module>r�s����r�
�*������	�	�	�	�	�	�	�	�
�
�
�
����������
�b��R�	�
�B�

�C�	�	����
�
�-�.�
�
�
�
��r�z�z�B�DF�8�8�	M��H�H�H�H�T
�
�
�
��b�j�j�-�.��02�#<�/$�/$�/$�/$�b,��K�K�K�
,�,�,���������[�[�[����$<*�<*�<*�|
(�
(�
(�
(�)�)�)�,)�)�)�)�&	�	�	�+�+�+�+�F&$�&$�&$�T���@
�
�
�
�	�	�	� $� $� $� $�N�
����� �N�N��R�I�I�I�I�X���8&�&�&�&�&�&�&�R+�+�+�'=�'=�'=�'=�'=��K����-�/�'=�'=�T��U�U�U�r���������������
�
�
�!�b�j�j���h�h� ��",������8�8�	"%��$.�2�:�:�:�$� �&�2�:�:����
��f�f�f�f�P������	/�	/�	/���������������H�H�H�H�^�2�:�:�I���"�r�z�z�"4�5��C�������&$�$�$�2�z���
����
 �
9�I����$9�E��3�8�8�+�N�N�c�h�h�4N�G�	�E�(�(�7�E�
"�#�#��C�H�H�Q�K�K�K�K����Q!�'�'�'�'�'�'�'�'�'���s�H2�2H>�=H>