Sindbad~EG File Manager
�
&Μggq��n�dZddlZddlZddlZddlZddlZd�ZGd�d�Zdd�d�Zd�Z dd�d �Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d �Z!d!�Z"d"�Z#d#�Z$d$�Z%d%�Z&d&�Z'd'�Z(d(�Z)d)�Z*d*�Z+d+�Z,d,�Z-d-�Z.d.�Z/d2d/�Z0d0�Z1e2d1k(re1�yy)3zK
Collect various information about Python to help debugging test failures.
�Nc�l�|�yt|�}tjdd|�}|j�S)Nz\s+� )�str�re�sub�strip)�texts �,/usr/local/lib/python3.12/test/pythoninfo.py�normalize_textrs1���|���t�9�D�
�6�6�&�#�t�$�D��:�:�<��c��eZdZd�Zd�Zd�Zy)�
PythonInfoc��i|_y�N)�info)�selfs r
�__init__zPythonInfo.__init__s ���� rc���||jvrtd|z��|�yt|t�s.t|t�st |�}|j�}|sy||j|<y)Nzduplicate key: %r)r�
ValueError�
isinstance�intrr�r�key�values r
�addzPythonInfo.addsb���$�)�)���0�3�6�7�7��=���%��%��e�S�)��E�
���K�K�M�E����� � �#�rc�|�|jj�D��cic]\}}|t|���c}}Scc}}w)zU
Get information as a key:value dictionary where values are strings.
)r�itemsrrs r
� get_infoszPythonInfo.get_infos)s5��37�)�)�/�/�2C�D�2C�J�C���S��Z��2C�D�D��Ds�8N)�__name__�
__module__�__qualname__rrr�rr
rrs����$Err�� formatterc�d�|D]+}t||d�}|��||z}|� |||�}|||��-yr)�getattr)�info_add�obj�name_fmt�
attributesr$�attrr�names r
�copy_attributesr-0sG������T�4�(���=���$���� ��d�E�*�E���u��rc�N� t||�}|||�y#t$rYywxYwr�r&�AttributeError)r'r,�mod� attr_namers r
� copy_attrr3;s3�����Y�'��
�T�5�������s�� $�$c�p� t||�}|�}|�||�}|||�y#t$rYywxYwrr/)r'r,r1� func_namer$�funcrs r
� call_funcr7CsJ����s�I�&��
�F�E����%� ���T�5�������s�)� 5�5c�<�d}t|td|�t|dtd�t|dtd�t|dtd�tj�}t td �r|�d
tj
���}|d|�dD]G}t
t|�}|��t
|d
d�}|s�&t
|dd�}|r|�d
|��}|d|z|��It td�}|rd}nd}|d|�t td�}|rd}nd}|d|�y)N)�_emscripten_info�
_framework�abiflags�api_version�builtin_module_names� byteorder�dont_write_bytecode�
executable�flags�
float_info�float_repr_style� hash_info�
hexversion�implementation�int_info�maxsize�
maxunicode�path�platform�
platlibdir�prefix�thread_info�version�version_info�winverzsys.%szsys.androidapilevel�getandroidapilevelzsys.windowsversion�getwindowsversionzsys.getrecursionlimit�getrecursionlimit�getfilesystemencodeerrors�/zsys.filesystem_encoding)�stdin�stdout�stderr�encoding�errorszsys.%s.encoding�gettotalrefcountz$Yes (sys.gettotalrefcount() present)z#No (sys.gettotalrefcount() missing)zbuild.Py_DEBUG�
getobjectszYes (sys.getobjects() present)zNo (sys.getobjects() missing)zbuild.Py_TRACE_REFS)r-�sysr7�getfilesystemencoding�hasattrrUr&) r'r*rZr,�streamr[�Py_DEBUGr �
Py_TRACE_REFSs r
�collect_sysrdNs*���J�6�H�c�8�Z�8�
�h�-�s�4H�I�
�h�,�c�3F�G�
�h�/��6I�J��(�(�*�H��s�/�0�&��(E�(E�(G�H���
&��1�-����d�#���>���6�:�t�4�������4�0���"*�F�3�H��"�T�)�8�4�.��s�.�/�H��5��4���
�t�$��C��.�M��/��.���
"�D�)rc��ddl}|j�}djtt|��}|d|�|d|j��|d|jd���d|j
�zj�}|r |d |� |j�}d
D]}||vr�|d|�d�||��y#t$rYywxYw)
Nrrzplatform.architecturezplatform.python_implementationzplatform.platformT)�aliasedz%s %szplatform.libc_ver)�ID�NAME�PRETTY_NAMEVARIANT�
VARIANT_ID�VERSION�VERSION_CODENAME�
VERSION_IDz platform.freedesktop_os_release[�])
rK�architecture�join�filter�bool�python_implementation�libc_verr�freedesktop_os_release�OSError)r'rK�archrt�
os_releasers r
�collect_platformry�s����� � �"�D��8�8�F�4��&�'�D��
$�d�+��
-�
�
+�
+�
-�/��
�
�
�
�t�
�
,�.��(�+�+�-�-�4�4�6�H���$�h�/�&��4�4�6�
�
�C��*�$���7��u�A�>���_�
&�
���
��
�s�C� C�Cc�:�ddl}|d|j��y)Nrzlocale.getencoding)�locale�getencoding)r'r{s r
�collect_localer}�s����
!�6�#5�#5�#7�8rc�t�|dtjd��|dtjd��y)Nzbuiltins.float.float_format�floatzbuiltins.float.double_format�double)r�
__getformat__)r's r
�collect_builtinsr��s.���
*�E�,?�,?��,H�I��
+�U�-@�-@��-J�Krc��ddl}t|d�r* |jd|j�d}|d|�yy#t$r}d|z}Yd}~�d}~wwxYw#t
$r(}|jtjk7r�Yd}~yd}~wwxYw)Nr� getrandom�zready (initialized)znot seeded yet (%s)zos.getrandom)�osr`r��
GRND_NONBLOCK�BlockingIOErrorrv�errno�ENOSYS)r'r��state�excs r
�collect_urandomr��s���
��r�;�� �
4����Q�� 0� 0�1�-��
�^�U�+� ��#�
4�-��3���
4��� ��y�y�E�L�L�(��)�� �s8�<� A� A�A�
A�A�A� B� B�Bc�p�ddl}d�}d}t||d||��dD]}t|d|z||��d�}t|d|d |��t|d
�r |j �}|d|�t
d�}|jj�D]Z\}} |j�}
|
|vs5|
jd
�s$|
jd�s�=|
jd�s�O|d|z| ��\t|d�r/|jd�}|j|�|dd|z�yy#t
$rY��wxYw)Nrc�D�|dvrttd�|D���S|S)N)�supports_follow_symlinks�supports_fd�supports_effective_idsc3�4K�|]}|j���y�wr)r)�.0r6s r
� <genexpr>z2collect_os.<locals>.format_attr.<locals>.<genexpr>�s����>���d�m�m��s�)r�sorted�r+rs r
�format_attrzcollect_os.<locals>.format_attr�s*���.�.��v�>��>�>�?�?��Lr)r,�supports_bytes_environr�r�r�zos.%sr#)� cpu_count�getcwd�getegid�geteuid�getgid�
getloadavg� getresgid� getresuid�getuid�process_cpu_count�unamec�@�djtt|��S)N�, )rp�mapr)�groupss r
�
format_groupsz!collect_os.<locals>.format_groups�s���y�y��S�&�)�*�*rzos.getgroups� getgroups�getloginzos.login)D�APPDATA�AR� ARCHFLAGS�ARFLAGS�AUDIODEV�BUILDPYTHON�CC�CFLAGS�COLUMNS�COMPUTERNAME�COMSPEC�CPP�CPPFLAGS�DISPLAY�DISTUTILS_DEBUG�DISTUTILS_USE_SDK�DYLD_LIBRARY_PATH�ENSUREPIP_OPTIONS�HISTORY_FILE�HOME� HOMEDRIVE�HOMEPATH�IDLESTARTUP�LANG�LDFLAGS�LDSHARED�LD_LIBRARY_PATH�LINES�MACOSX_DEPLOYMENT_TARGET�MAILCAPS� MAKEFLAGS�MIXERDEV�MSSDK�PATH�PATHEXT�PIP_CONFIG_FILE�PLAT�POSIXLY_CORRECT�
PY_SAX_PARSER�ProgramFileszProgramFiles(x86)�RUNNING_ON_VALGRIND�
SDK_TOOLS_BIN�SERVER_SOFTWARE�SHELL�SOURCE_DATE_EPOCH�
SYSTEMROOT�TEMP�TERM�TILE_LIBRARY�TMP�TMPDIR�TRAVIS�TZ�USERPROFILE�VIRTUAL_ENV�WAYLAND_DISPLAY�WINDIR�_PYTHON_HOSTRUNNER�_PYTHON_HOST_PLATFORM�_PYTHON_PROJECT_BASE�_PYTHON_SYSCONFIGDATA_NAME�__PYVENV_LAUNCHER__�ASAN_OPTIONS�LSAN_OPTIONS�MSAN_OPTIONS�TSAN_OPTIONS�
UBSAN_OPTIONS)�PYTHON�LC_�VS� COMNTOOLSzos.environ[%s]�umaskzos.umaskz0o%03o)
r�r-r7r`r�rv� frozenset�environr�upper�
startswith�endswithr�)r'r�r�r*r6r��login�ENV_VARSr,rr��masks r
�
collect_osr��sL��
���J��H�b�'�:��M��� �(�G�d�N�B��5��+��h���K�=�Q��r�:�� (��K�K�M�E�
�Z��'��G�G�H�P�z�z�'�'�)���e��
�
����X�����0�1�����%�%�.�.��*E��%��,�e�4�*��r�7���x�x��{��
�������X��_�-���{� �
� �s�D)�) D5�4D5c�v� ddl}ddl}|j�} |j |�}|d|z|�|nd�|�yt
|d�rO|j|j|j�}djtt|��}|d|�yy#t$rYywxYw#t
$rd}Y��wxYw)Nrzpwd.getpwuid(%s)z
<KeyError>�getgrouplistr�zos.getgrouplist)
�pwd�ImportErrorr�r��getpwuid�KeyErrorr`r��pw_name�pw_gidrpr�r)r'r�r��uid�entryr�s r
�collect_pwdrbs������
�)�)�+�C�����S�!��
�
��
$��'�U�\�;�
�}� ��r�>�"����������=�����3�s�F�+�,���"�F�+�#��%����������s"�B�B*� B'�&B'�*B8�7B8c��� ddl}d�}d}t||d||��t|d�s*t |dd�}d |vr
|d
d �yd|vr
|d
d�yyy#t$rYywxYw)Nrc�0�t|t�rd|zS|S)Nz%#x)rrr�s r
r�z%collect_readline.<locals>.format_attr�s���e�S�!��5�=� ��Lr)�_READLINE_VERSION�_READLINE_RUNTIME_VERSION�_READLINE_LIBRARY_VERSIONzreadline.%sr#r�__doc__�zlibedit readlinezreadline.libraryzGNU readline)�readlinerr-r`r&)r'rr�r*�docs r
�collect_readliner}s�������J�
�H�h�
�z�)�+��8�8�9��h� �2�.����$��'�);�<�
�s�
"��'��8�#�:��#����s�A� A�Ac��ddl} |jgd�|j|jd��}|j�d}|jry |j
�d}|d|�y#t
$rYywxYw)Nr)�gdbz-nx� --versionT�rXrY�universal_newlines�gdb_version)�
subprocess�Popen�PIPE�communicate�
returncoderv�
splitlines)r'r�procrOs r
�collect_gdbr�s����
���� ;�'1���'1���37� �9���"�"�$�Q�'���?�?���� � �"�1�%�G��]�G�$������s�A
A/�/ A;�:A;c��� ddl}d}t||d|� ddl}|j �}|jdd�}|d|�y#t$rY�<wxYw#t$rYywxYw)Nr)�
TK_VERSION�TCL_VERSIONz
tkinter.%sr�
patchlevelztkinter.info_patchlevel)�_tkinterr-r�tkinter�Tcl�call)r'r$r*r%�tclr#s r
�collect_tkinterr)�sw��F��3�
���(�L�*�E�8���k�k�m���X�X�f�l�3�
��*�J�7���
��
���
��
�s"�A�A� A�A� A"�!A"c�2�ddl}|d|j��d}t||d|�t|d�rEdD]?} tjd��5|j|�}ddd�|d |z��Ayy#1swY�xYw#t$rY�[wxYw)
Nrz time.time)�altzone�daylight�timezone�tznameztime.%s�get_clock_info)�clock� monotonic�perf_counter�process_time�thread_time�timeT)�recordztime.get_clock_info(%s))r5r-r`�warnings�catch_warningsr/r)r'r5r*r0�
clock_infos r
�collect_timer:�s�����[�$�)�)�+�&��J��H�d�I�z�:��t�%�&�=�E�
H��,�,�D�9�!%�!4�!4�U�!;�J�:��2�U�:�J�G�=�'�
:�9���
��
�s)�B
�A>�&B
�>B �B
�
B�Bc�H� ddl}t|d|d�y#t$rYywxYw)Nrzcurses.ncurses_version�ncurses_version)�cursesrr3)r'r=s r
�collect_cursesr>�s0�����h�0�&�:K�L������s�� !�!c�n� ddl}|d|jj��y#t$rYywxYw)Nrzdatetime.datetime.now)�datetimer�now)r'r@s r
�collect_datetimerB�s:����
�
$�h�&7�&7�&;�&;�&=�>������s�(� 4�4c�P�ddl}|d|j��dD]2}|j|�}|dk(r|s�t|�}|d|z|��4|jd�}|xrd|v}|rd}nd }|d
|�dD]&}|j|�}|rd}nd
}|d|��|��(y)Nrzsysconfig.is_python_build)�ABIFLAGS�ANDROID_API_LEVELr��CCSHAREDr��CFLAGSFORSHARED�CONFIG_ARGS�
HOSTRUNNER�
HOST_GNU_TYPE�MACHDEP� MULTIARCH�OPT�PGO_PROF_USE_FLAG� PY_CFLAGS�PY_CFLAGS_NODIST�PY_CORE_LDFLAGS�
PY_LDFLAGS�PY_LDFLAGS_NODIST�PY_STDMODULE_CFLAGSrb�Py_ENABLE_SHARED�Py_NOGILr��SOABI�abs_builddir�
abs_srcdirrM�srcdirrEz
sysconfig[%s]rOz-DNDEBUGz!ignore assertions (macro defined)z$build assertions (macro not defined)zbuild.NDEBUG)�WITH_DOC_STRINGS�WITH_DTRACE�WITH_FREELISTS�
WITH_PYMALLOC�
WITH_VALGRIND�Yes�Nozbuild.)� sysconfig�is_python_build�get_config_varr)r'rbr,rrO�NDEBUGr s r
�collect_sysconfigrf�s�����
(�)�*C�*C�*E�F���<�(�(��.���&�&�u���u�%����4�'��/�G�J�(�(��5�I��3�J�)�3�F�
�2��4���^�D�!����(�(��.����D��D��6�$���$�'�rc��ddl} ddl} ddl}d�}d}t ||d||��d|j|j�fd|j�fd|j�ffD]\}}d }t ||d
|�d�|��dd
g}|�5t|d�r)|j�} |j| d| df�|D]} |j|}
|d|z|
�� y#t$rYywxYw#t$rd}Y��wxYw#t$rY�MwxYw)Nrc�2�|jd�rd|zS|S)N�OP_z%#8x)r�r�s r
r�z collect_ssl.<locals>.format_attr:s���?�?�5�!��E�>�!��Lr)�OPENSSL_VERSION�OPENSSL_VERSION_INFO�HAS_SNI�OP_ALL�
OP_NO_TLSv1_1zssl.%sr#�
SSLContext�default_https_context�stdlib_context)�minimum_version�maximum_version�protocol�options�verify_modezssl.z.%s�OPENSSL_CONF�
SSLKEYLOGFILE�get_default_verify_paths�zssl.environ[%s])r��sslr�_sslr-ro�PROTOCOL_TLS_CLIENT�_create_default_https_context�_create_stdlib_contextr`ry�extendr�r)r'r�r{r|r�r*r,�ctx� env_names�partsrs r
�collect_sslr�/sP��
�������J��H�c�8�Z�;�O�
�s�~�~�c�&=�&=�>�?� �#�"C�"C�"E�F� �3�5�5�7�8�� ��c�
�
� ��#��d�V�3�'7��D�� ��1�I���G�D�*D�E��-�-�/�����%��(�E�!�H�-�.��� ��J�J�t�$�E� �"�T�)�5�1���S�����������P� �� �s4�C�C.�C?� C+�*C+�.C<�;C<�? D�
Dc�� ddl} |j�}|d|�y#t$rYywxYw#ttf$rt
jdk7r�YywxYw)Nrzsocket.hostname�wasi)�socketr�gethostnamervr0r^rK)r'r��hostnames r
�collect_socketr�dsg����.��%�%�'�� �"�H�-�������
�^�$���<�<�6�!��"��s�!�0� -�-�#A�Ac�L� ddl}d}t||d|�y#t$rYywxYw)Nr)�sqlite_versionz
sqlite3.%s)�sqlite3rr-)r'r�r*s r
�collect_sqliter�ts3����%�J��H�g�|�Z�@�� ������� #�#c�L� ddl}d}t||d|�y#t$rYywxYw)Nr)�ZLIB_VERSION�ZLIB_RUNTIME_VERSIONzzlib.%s)�zlibrr-)r'r�r*s r
�collect_zlibr�~s3����:�J��H�d�I�z�:�� ����r�c�P� ddlm}d}t||d|�y#t$rYywxYw)Nr)�expat)�
EXPAT_VERSIONzexpat.%s)�xml.parsersr�rr-)r'r�r*s r
�
collect_expatr��s3���%�$�J��H�e�Z��<�� ������� %�%c�L� ddl}d}t||d|�y#t$rYywxYw)Nr)�__libmpdec_version__z_decimal.%s)�_decimalrr-)r'r�r*s r
�collect_decimalr��s3����+�J��H�h�
�z�B�� ����r�c�\� ddl}dD]}t|d|��||��y#t$rYywxYw)Nr)�LONG_MAX�PY_SSIZE_T_MAX�Py_C_RECURSION_LIMIT�
SIZEOF_TIME_T�SIZEOF_WCHAR_Tz
_testcapi.)� _testcapirr3)r'r�r,s r
�collect_testcapir��sA������ �(�j���/��D�A�������s�� +�+c�x� ddl}t|d|d�dD]}t|d|��||��y#t$rYywxYw)Nrzpymem.allocator�pymem_getallocatorsname)�SIZEOF_PYGC_HEAD�SIZEOF_PYOBJECTz_testinternalcapi.)�_testinternalcapirr7r3)r'r�r,s r
�collect_testinternalcapir��sV��� ��h�)�+<�>W�X��� �(�0���7�9J�D�Q� ������s�-� 9�9c�� ddl}t|�D�cgc]}|jd�s�|��}}|D]+}t ||�}|j|�}|d|z|��-t
|d|d�y#t$rYywxYwcc}w)Nr�RLIMIT_zresource.%szresource.pagesize�getpagesize)�resourcer�dirr�r&� getrlimitr7)r'r�r+�limitsr,rrs r
�collect_resourcer��s����� #�8�}�
K�}�t���� �0J�d�}�F�
K����h��%���"�"�3�'�����%�u�-��
�h�+�X�}�E�������Ls�A/�A>�A>�/ A;�:A;c���ddl} ddlm}t|�D�cgc]}|j
d�r|��}}t||d|�y#t|jf$rYywxYwcc}w)Nr)�test_socket�HAVE_ztest_socket.%s)�unittest�testr�r�SkipTestr�r�r-)r'r�r�r,r*s r
�collect_test_socketr��so����$�
$'�{�#3�/�#3�4��_�_�W�-��#3�J�/��H�k�+;�Z�H��
��*�*�+�����/s�A�A�A�Ac�� ddlm}d}t||d|�t |d|d�t |d|d�|d |jd
���|d|jd
�
��|d|jd
���y#t$rYywxYw)Nr)�support) �
MS_WINDOWS�has_fork_support�has_socket_support�has_strftime_extensions�has_subprocess_support�
is_android�
is_emscripten� is_jython�is_wasiz
support.%szsupport._is_gui_available�_is_gui_availablezsupport.python_is_optimized�python_is_optimizedz%support.check_sanitizer(address=True)T)�addressz$support.check_sanitizer(memory=True))�memoryz support.check_sanitizer(ub=True))�ub)r�r�rr-r7�check_sanitizer)r'r�r*s r
�collect_supportr��s���� �
�J��H�g�|�Z�@�
�h�3�W�>Q�R�
�h�5�w�@U�V��
4�
�
$�
$�T�
$�
2�4��
3�
�
$�
$�D�
$�
1�3��
/�
�
$�
$��
$�
-�/��/����s�B� B�Bc�x� ddlm}dD]}t||�}|d|��|���!y#t$rYywxYw)Nr)� os_helper)�can_symlink� can_xattr� can_chmod�can_dac_overridezsupport_os_helper.)�test.supportr�rr&)r'r�r,r6s r
�collect_support_os_helperr��sL���*����y�$�'���%�d�V�,�d�f�5�������s�-� 9�9c�� ddlm}d}t||d|�dD]}t ||�}|d|��|���!y#t$rYywxYw)Nr)�
socket_helper)�IPV6_ENABLED�has_gethostnamezsupport_socket_helper.%s)�
tcp_blackholezsupport_socket_helper.)r�r�rr-r&)r'r�r*r,r6s r
�collect_support_socket_helperr�sd���.��J��H�m�-G��T����}�d�+���)�$��0�$�&�9� ������s�=� A �A c�P� ddlm}d}t||d|�y#t$rYywxYw)Nr)�threading_helper)�can_start_threadzsupport_threading_helper.%s)r�r�rr-)r'r�r*s r
� collect_support_threading_helperr�s7���1��J��H�.�0M�z�Z��
����r�c���ddl}ddl}|jd�}|sy ddl}|j |�}|j
d� |j||j|jd��}|j�d}|jry|j�d}t|�}|d|�y#t
$r|j �}Y��wxYw#t$rYywxYw)Nrr�rTrz
CC.version)rrbrd�shlex�splitr�appendrr�STDOUTrvrrrr) r'rrbr�r��argsrrXr s r
�
collect_ccr�$s����� � !� !�$� '�B�
�����{�{�2��� �K�K��� �����'1���'1�'8�'8�37� �9���
�
�
��
"�F���������q�!�D��$��D��\�4� ��+���x�x�z������ � �s#�B6�)C�6C�C� C!� C!c �|� ddlm}|ddjt t
|���y#t$rYywxYw)Nr)�
_GDBM_VERSIONzgdbm.GDBM_VERSION�.)�_gdbmr�rrpr�r)r'r�s r
�collect_gdbmr�Gs;���'�
�
�#�(�(�3�s�M�+B�"C�D��������/� ;�;c �� ddlm}|�}t|�D]2}||}t|�D]}||�d|�d�t ||����4y#t$rYywxYw)Nr)�get_configs�[rn)r�r�rr��repr)r'r��all_configs�config_type�configrs r
�collect_get_configr�Psf���1��-�K��k�*���[�)���&�>�C���c�2�D����4E�F�"�+�� ����s�A� A�Ac�(�ddl}t||dd�y)Nrz
subprocess.%s)�_USE_POSIX_SPAWN)rr-)r'rs r
�collect_subprocessr�^s����H�j�/�;P�Qrc��tjdk7ry ddl}t|d�st� |jd�}|j} |j}||_d|_ t|��}|d|�|jj}|j}||_d|_ |d|�� ddl}|j!tj"�} |d | �ddl}
|
j'gd
�|
j(|
j(dd�
�}|j+�\}}
|j,rd}|j/�D]�}|j1�}|j3d�r,|j5d�j1�}|s�F|d|��P|j3d�s�b|j5d�j1�}|s��|d|��� |
j'dgd|
j(|
j(d��}|j+�d}|j,dk(ry|j,rd}|j1�}|j/�d}|r
|d|� ddl} |j;|j<d�}d} |j?||�\}}|jA|� |d|rd�yd�y#t$rd}Y��^wxYw#t$rY��'wxYw#ttf$rY��wxYw#t6$rY��.wxYw#t6$rYywxYw#|jA|�wxYw#t6$rYywxYw)N�win32r�WinDLL�ntdllr"z<function not available>zwindows.RtlAreLongPathsEnabledzwindows.is_adminzwindows.dll_path)�wmicr��getzCaption,Versionz/value�oemT)rXrYrZr rzCaption=zwindows.version_captionzVersion=zwindows.version�ver)�shellrXrYr lBzwindows.verz8SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock�!AllowDevelopmentWithoutDevLicensezwindows.developer_mode�enabled�disabled)!r^rK�ctypesr`rr��c_ubyte�RtlAreLongPathsEnabled�restype�argtypesrrr0�windll�shell32�
IsUserAnAdmin�_winapi�GetModuleFileName� dllhandlerrrrrrrr��removeprefixrv�winreg�OpenKey�HKEY_LOCAL_MACHINE�QueryValueEx�CloseKey)r'rr��BOOLEANr�resr
rr�dll_pathrr�outputrY�linerr�subkeyr�
value_types r
�collect_windowsrcs@��
�|�|�w���6���v�x�(���)�
�
�
�g�&���.�.�� 1�%*�%A�%A�"�.5�"�*�.0�"�+��-�/�0�C��1�3�7��-�-�'�'���-�-�
� '�
��!#�
���#�]�_�5�
���,�,�S�]�]�;���#�X�.�
�6���� R�'1���'1���).�%)� �+��
�)�)�+�����?�?��F��%�%�'�D��:�:�<�D����z�*��(�(��4�:�:�<����6��=�����,��(�(��4�:�:�<����.��5�(�*������t�'1���'1���%)� �+���!�!�#�A�&���?�?�j�(���?�?��F������� � �"�1�%����]�D�)��O��n�n��%�%�G�I��5�� !� &� 3� 3�C�� @��E�:��O�O�C� � �)��9�N�:�N��c� -�,�C� -���
��
��2
��(�
��
�� �
��
��2�����$
�O�O�C� ���
��
�s��K�K�=,K'�.A
K=�A
L
�*L
�,L2�L� L2�K�K� K$�#K$�'K:�9K:�= L
� L
�
L�L�L/�/L2�2 L>�=L>c�� ddl}|�t|d|d� tdd��5}|j �j�}ddd�r
|d|�yy#t$rd}Y�_wxYw#1swY�'xYw#t$rYywxYw)Nrzfips.openssl_fips_mode�
get_fips_modez/proc/sys/crypto/fips_enabledzutf-8)rZzfips.linux_crypto_fips_enabled)�_hashlibrr7�openr�rstriprv)r'r�fprs r
�collect_fipsr#�s��������(�4�h��P�
�
�1�G�
D���;�;�=�'�'�)�D�E���5�t�<���������E�
D��
�
��
�s9�A�
A5�A)�A5�A&�%A&�)A2�.A5�5 B�Bc�:�ddl}|d|j��y)Nrztempfile.gettempdir)�tempfile�
gettempdir)r'r%s r
�collect_tempfiler'�s����
"�H�$7�$7�$9�:rc�|� ddlm}|ddj|j ���y#t$rYywxYw)Nr)�utilszlibregrtests.build_infor)�test.libregrtestr)rrp�get_build_info)r'r)s r
�collect_libregrtest_utilsr,�s=���*�
�
&�����1E�1E�1G�(H�I������r�c��d}|j}gt�t�t�t�t
�t�t�t�t�t�t�t�t�t�t�t �t"�t$�t&�t(�t*�t,�t.�t0�t2�t4�t6�t8�t:�t<�t>�t@�tB�tD�tF�tH��D]} ||��
|S#tJ$r�d}tMd|jNztPjR��tUjVtPjR��tMtPjR��tPjRjY�Y��wxYw)NFTzERROR: %s() failed��file)-rr�r�r�r>rBr�r�r#rr�r�r}r�ryrrr�r�r�r�r�rdrfr�r�r'r:r)rr�r,r�r�r�r�r�� Exception�printrr^rY� traceback� print_exc�flush)r�errorr'�collect_funcs r
�collect_infor7�s���E��x�x�H�+� � +� �
+� �+� �+� �+� �+� �+� �+� �+� �+� �+� �!+�" �#+�$ �%+�& �'+�( �)+�* �++�, �-+�. �/+�0 �1+�2 �3+�4 �5+�6 �7+�8 �9+�: !�;+�< �=+�> �?+�@ �A+�B �C+�D �E+�F "�G+�L �M+�N �O+�P "�Q+�R &�S+�T )�U+��X ���"�[+�l�L��� ��E��&�,�*?�*?�@��z�z�
#����S�Z�Z�0��s�z�z�"��J�J����
�s�.C:�:BF�Fc�
�d}t|�tdt|�z�t�|j�}t|j ��}|D]'\}}|jdd�}t|�d|����)y)NzPython debug information�=�
rz: )r1�lenrr�r�replace)rr/�title�infosrrs r
� dump_infor?(sk��&�E� �%�L� �#��E�
�
�� �G��N�N��E��5�;�;�=�!�E��
��U��
�
�d�C�(��
�#�u�%�&�rc��t�}t|�}t|�|r;t�tdtj
��t jd�yy)Nz"Collection failed: exit with errorr.r�)rr7r?r1r^rY�exit)rr5s r
�mainrB5sA���<�D����E�
�d�O��
��
�2����D������
r�__main__r)3r
r�rr^r2r7rrr-r3r7rdryr}r�r�r�rrrr)r:r>rBrfr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr#r'r,r7r?rBrr"rr
�<module>rDs9���
� �
����E�E�:GK���<@��A*�H"&�J9�L�
�&J.�Z,�69�:%�(8�&H�6M�?�>(�B22�j
.� A�;�=�C�
B� R�F�
I�/�<
6� :�& [� !�FE�G�R�
cO�L
�&;�J�:�z
'���z���F�r
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists