403Webshell
Server IP : 217.160.0.244  /  Your IP : 216.73.217.138
Web Server : Apache
System : Linux infong-eu155 4.4.400-icpu-108 #2 SMP Wed Feb 11 11:51:01 UTC 2026 x86_64
User : u100174116 ( 6746176)
PHP Version : 8.5.10
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/setuptools/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/setuptools/tests/__pycache__/test_editable_install.cpython-313.pyc
�

�hw��
���SSKJr SSKrSSKrSSKrSSKrSSKrSSKJr SSK	J
r
 SSKJr SSK
Jr SSKJr SSKJr SS	KJr SS
KJr SSKrSSKrSSKrSSKJr SSKJr SSK J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r) SS
K*J+r+ SSK,J-r- SSK.J/r/ SSK0J1r1J2r2 SSK3J4r4 \Rj"SS/S9S5r6\"S5\"S5Ro5SSS\"S5\"S5SSS .0S!.r8S"r9\RtRw\RS#:HS$S%9\RtRyS&0\8ES'\90E\8/5S(55r=S)r>S*r?"S+S,5r@"S-S.5rAS/rB"S0S15rCS2rD"S3S45rE"S5S65rF\RtR�S75S85rHS9rI"S:S;5rJ"S<S=5rK"S>S?5rLS@rM\RtR�SA5SB5rNSCrOSDrPSErQSHSFjrRSISGjrSg)J�)�annotationsN)�deepcopy)�
import_module)�EXTENSION_SUFFIXES)�Path)�dedent)�Any)�Mock)�uuid4)�	resources)	�_DebuggingTips�_encode_pth�_find_namespaces�_find_package_roots�_find_virtual_namespaces�_finder_template�	_LinkTree�_TopLevelFinder�editable_wheel)�Distribution)�	Extension)�SetuptoolsDeprecationWarning�)�contexts�
namespaces)�	run_setup�strict�lenient)�paramsc�.�URS:XaSS/$/$)Nr�--config-settings�editable-mode=strict)�param)�requests �H/usr/lib/python3/dist-packages/setuptools/tests/test_editable_install.py�
editable_optsr&+s���}�}�� �#�%;�<�<�
�I�a�        [build-system]
        requires = ["setuptools"]
        build-backend = "setuptools.build_meta"

        [project]
        name = "mypkg"
        version = "3.14159"
        license = {text = "MIT"}
        description = "This is a Python package"
        dynamic = ["readme"]
        classifiers = [
            "Development Status :: 5 - Production/Stable",
            "Intended Audience :: Developers"
        ]
        urls = {Homepage = "https://github.com"}

        [tool.setuptools]
        package-dir = {"" = "src"}
        packages = {find = {where = ["src"]}}
        license-files = ["LICENSE*"]

        [tool.setuptools.dynamic]
        readme = {file = "README.rst"}

        [tool.distutils.egg_info]
        tag-build = ".post0"
        zr        global-include *.py *.txt
        global-exclude *.py[cod]
        prune dist
        prune build
        zThis is a ``README``z!---- placeholder MIT license ----�mypkga                import sys
                from importlib.metadata import PackageNotFoundError, version

                try:
                    __version__ = version(__name__)
                except PackageNotFoundError:
                    __version__ = "unknown"
                a
                from importlib.resources import read_text
                from . import __version__, __name__ as parent
                from .mod import x

                data = read_text(parent, "data.txt")
                print(__version__, data, x)
                zx = ''zHello World)�__init__.pyz__main__.py�mod.pyzdata.txt)�pyproject.toml�MANIFEST.inz
README.rstzLICENSE.txt�srcz __import__('setuptools').setup()�darwin�pypa/setuptools#4328��reason�files�setup.pyc	��US-nUR5 [RRX$S9 SSSSSS[	U5/UQn[UR
U55 /S	QnUR
U5R5S
:XdeUS-RSS
S9 US-RSS
S9 UR
U5R5S:Xdeg)Nr(��prefix�python�-m�pip�install�--no-build-isolation�-e)r7r8r(z3.14159.post0 Hello Worldzsrc/mypkg/data.txt�foobar�utf-8��encodingzsrc/mypkg/mod.py�x = 42z3.14159.post0 foobar 42)	�mkdir�jaraco�path�build�str�print�run�strip�
write_text)�tmp_path�venvr2r&�project�cmds      r%�test_editable_with_pyprojectrO|s����� �G��M�M�O�
�K�K���e��,�	��
�����G��	�
�	�C�
�$�(�(�3�-��
#�C��8�8�C�=��� �$?�?�?�?��#�#�/�/��7�/�K��!�!�-�-�h��-�I��8�8�C�=��� �$=�=�=�=r'c	��S[S5SS0SS.0n[RRX0S9 US-nSS	S
SSS
[	U5/UQn[UR
U55 /SQnUR
U5R5S:Xdeg)Nr(ac                [build-system]
                requires = ["setuptools", "wheel"]
                build-backend = "setuptools.build_meta"

                [project]
                name = "mypkg"
                version = "3.14159"

                [tool.setuptools]
                packages = ["pkg"]
                py-modules = ["mod"]
                r)za = 4�b = 2)r+�pkgr*r5r7r8r9r:r;r<)r7�-cz$import pkg, mod; print(pkg.a, mod.b)z4 2�rrCrDrErFrGrHrI�rKrLr&r2rMrNs      r%�test_editable_with_flat_layoutrV�s����$���"�7�+��#
�
�E�*�K�K���e��-��� �G�	��
�����G��	�
�	�C�
�$�(�(�3�-��
B�C��8�8�C�=��� �E�)�)�)r'c	��S[S5SS.0n[RRX0S9 US-nSSSS	S
S[	U5/UQn[UR
U55 /SQnUR
U5R5S
:Xdeg)Nr(a>                [build-system]
                requires = ["setuptools", "wheel"]
                build-backend = "setuptools.build_meta"

                [project]
                name = "mod"
                version = "3.14159"

                [tool.setuptools]
                py-modules = ["mod"]
                rQ)r+r*r5r7r8r9r:r;r<)r7rSzimport mod; print(mod.b)�2rTrUs      r%� test_editable_with_single_modulerY�s����$��
��
�
�E�&�K�K���e��-��� �G�	��
�����G��	�
�	�C�
�$�(�(�3�-��
6�C��8�8�C�=��� �C�'�'�'r'c��\rSrSrSr\RRSS5\RRSS5S55rSr	g	)
�TestLegacyNamespaces��c�Z�[R"[SS9nUS-nUR5 SnUH�n[R
"XSS9nU UR
5nURU5 [SSS	9n	[U	5n
U
R5 U
RS
5RnU
RXK5 SSS5 SSS5 M� [URS55n[!U5[!U5:Xdeg!,(df   NO=f!,(df   M�=f)Nz .*namespace_packages parameter.*��matchz.installation_dir)z	myns.pkgAz	myns.pkgB�myns.n.pkgA�myns.n.pkgB�42)�versionr3�config)�
stop_after�	dist_infoz*-nspkg.pth)�pytest�warnsrrBr�build_namespace_package�context�chdirrr�finalize_options�get_finalized_command�name�_install_namespaces�list�glob�len)
�selfrK�monkeypatch�deprecation�installation_dir�examplesrnrR�ctx�distrN�
editable_namer2s
             r%�test_nspkg_file_is_unique�.TestLegacyNamespaces.test_nspkg_file_is_unique�s����l�l�(�0R�
��$�&9�9����� �
���D��4�4�X�T�R�C��k�1�1�3�s��	�	�#�� ���A��$�T�*���$�$�&� #� 9� 9�+� F� K� K�
��'�'�(8�H�
4�����%�*�*�=�9�:���5�z�S��]�*�*�*�4�3����s%�
D�A#D
�D�

D�D�
D*	�impl)�
pkg_resources�ns)zmyns.nc
���Sn[R"X#S3US9n[R"X#S3US9nUS-RUSS9 US-RUSS9 USSn	U	RS	5 UR	S
SSS
[U5/U	Q5 UR	S
SSS
S[U5/U	Q5 UR	S
SSUSUS3/5 UR	/SQ5 g)a
Installing two packages sharing the same namespace, one installed
naturally using pip or `--single-version-externally-managed`
and the other installed in editable mode should leave the namespace
intact and both packages reachable by import.
(Ported from test_develop).
zq        [build-system]
        requires = ["setuptools"]
        build-backend = "setuptools.build_meta"
        z.pkgA)r}z.pkgBr+r>r?Nr;r7r8r9r:r<rSzimport z.pkgA; import )r7rSzimport pkg_resources)rrirJ�appendrHrF)
rsrLrKrr}r&�build_system�pkg_A�pkg_B�optss
          r%�!test_namespace_package_importable�6TestLegacyNamespaces.test_namespace_package_importables���$��
�2�2�8�t�5�\�PT�U���2�2�8�t�5�\�PT�U��	�!�	!�-�-�l�W�-�M�	�!�	!�-�-�l�W�-�M��Q������*�+����(�D�%��C��J�F��F�G����(�D�%��D�#�e�*�L�t�L�M����(�D�G�B�4�~�b�T��"G�H�I����9�:r'�N)
�__name__�
__module__�__qualname__�__firstlineno__r{rg�mark�parametrizer��__static_attributes__r�r'r%r[r[�sM��+�4�[�[����	
���[�[���T�;�/�;�0��;r'r[c�&�\rSrSrSrSrSrSrg)�TestPep420Namespacesi-c
�8�[R"US5n[R"US5nUSSnURS5 URSSSS[	U5/UQ5 URSSSSS	[	U5/UQ5 UR/S
Q5 g)z�
Installing two packages sharing the same namespace, one installed
normally using pip and the other installed in editable mode
should allow importing both packages.
r`raNr;r7r8r9r:r<)r7rSz&import myns.n.pkgA; import myns.n.pkgB)r�build_pep420_namespace_packager�rHrF)rsrLrKr&r�r�r�s       r%r��6TestPep420Namespaces.test_namespace_package_importable.s����9�9�(�M�R���9�9�(�M�R���Q������*�+����(�D�%��C��J�F��F�G����(�D�%��D�#�e�*�L�t�L�M����K�Lr'c
���S[S5SS0S.0n[RRXBS9 US-n[R
"US5n[R
"US5nUS	S	nUR
S
5 URSSS
S[U5/UQ5 URSSS
SS[U5/UQ5 URSSS
SS[U5/UQ5 UR/SQ5 g	)z@Currently users can create a namespace by tweaking `package_dir`�pkgAat                    [build-system]
                    requires = ["setuptools", "wheel"]
                    build-backend = "setuptools.build_meta"

                    [project]
                    name = "pkgA"
                    version = "3.14159"

                    [tool.setuptools]
                    package-dir = {"myns.n.pkgA" = "src"}
                    r)�a = 1)r+r-r5razmyns.n.pkgCNr;r7r8r9r:r<)r7rSz#from myns.n import pkgA, pkgB, pkgC)	rrCrDrErr�r�rHrF)	rsrLrKr&r2r�r��pkg_Cr�s	         r%�&test_namespace_created_via_package_dir�;TestPep420Namespaces.test_namespace_created_via_package_dir=s���
�"(��
#�&�w�/��
��&	�����%��1��6�!���9�9�(�M�R���9�9�(�M�R���Q������*�+����(�D�%��C��J�F��F�G����(�D�%��D�#�e�*�L�t�L�M����(�D�%��D�#�e�*�L�t�L�M����H�Ir'c�r�S[S5SSSSS.S.[SS	.0n[RR	X2S
9 US-nS/nURSS
SSSS[
U5/UQ5 UR/SQ5nUR5S:XdeSnURSS[U5/5nSU;deg)aSometimes users might specify an ``include`` pattern that ignores parent
packages. In a normal installation this would ignore all modules inside the
parent packages, and make them namespaces (reported in issue #3504),
so the editable mode should preserve this behaviour.
r�ar                    [build-system]
                    requires = ["setuptools", "wheel"]
                    build-backend = "setuptools.build_meta"

                    [project]
                    name = "pkgA"
                    version = "3.14159"

                    [tool.setuptools]
                    packages.find.include = ["mypkg.*"]
                    �zb = 1r�)r)zpkgA.py)r)zother.py�nr,)r+r(r,r5r;r7r8r9�-vr:r<)r7rSz'from mypkg.n import pkgA; print(pkgA.a)�1z}        try:
            import mypkg.other
        except ImportError:
            print("mypkg.other not defined")
        rSzmypkg.other not definedN)r�EXAMPLErCrDrErHrFrI)rsrLrKr2r�r��outrNs        r%�0test_namespace_accidental_config_in_lenient_mode�ETestPep420Namespaces.test_namespace_accidental_config_in_lenient_mode_s���
�"(��
#�$&� '�')�#*��� '�}�5�/�
��6	�����%��1��6�!��'�'�����(�D�%��y�$��E�
�R�T�R�S��h�h�R�S���y�y�{�c�!�!�!����h�h��$��s��4�5��(�C�/�/�/r'r�N)r�r�r�r�r�r�r�r�r�r'r%r�r�-s��
M� J�D00r'r�c
���US-n[RVs/sH\nSU;dMUR[R5(dM1U[	U5R[R5-PM^ nnUHnUR
SS9 M [U5 [[R[RR[[U55S9n[RSSSS	[U5S
[U5S/	UQn[ R""X�S9 [$R&"5S
:XaSOSn	X9-S-n
[ R""U
/US9 gs snf)z6
Editable install to a prefix should be discoverable.
r6z
site-packagesT)�parents)�
PYTHONPATHr8r9r:z
--editablez--prefixr;)�env�Windows�Scripts�bin�sampleN)�sysrD�
startswithr6r�relative_torB�_addsitedirs�dict�os�environ�pathsep�join�maprF�
executable�
subprocess�
check_call�platform�system)rK�sample_projectr&r6rD�site_packages_all�spr�rNr��exes           r%�test_editable_with_prefixr��s8����
 �F�
�H�H���D��d�"�	4�'+���s�z�z�'B�	4���d��'�'��
�
�3�3���� ��
������ ��"�#�
�r�z�z�b�j�j�o�o�c�#�?P�6Q�&R�
S�C�����
����N����F����
��C����#�'� ���(�I�5�)�5�C�
�,��
!�C����3�%�S�)��=s�
E�"E�/Ec�Z�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrg)�TestFinderTemplatei���This test focus in getting a particular implementation detail right.
If at some point in time the implementation is changed for something different,
this test can be modified or even excluded.
c�4�0n[XU5 US"5 g)Nr:)�exec)rs�finder�locs   r%�install_finder�!TestFinderTemplate.install_finder�s�����V�#���I��r'c���SSSS0S.0SS0S.n[RRX!S	9 [US
-5[US-5S.n[	[[55U05n[R"5 [R"5 S
H#n[RRUS5 M% URU5 [S5n[S5n[S5nURS:XdeURS:Xde[US-R55n	[!X�5 SSS5 SSS5 g!,(df   N=f!,(df   g=f)N�pkg1r��mod1.pyza = 42)r)�subpkg�mod2.pyza = 43��src1�src2r5z	src1/pkg1z	src2/mod2)r��mod2)r��pkg1.subpkg�pkg1.subpkg.mod1r�r�r�r��*�+zsrc1/pkg1/subpkg)rCrDrErFrrr�
save_paths�save_sys_modulesr��modules�popr�r�a�resolve�assert_path)
rsrKr2�mapping�template�mod�mod1r�r��expecteds
          r%�
test_packages� TestFinderTemplate.test_packages�s;���#%�(�(�3�����)�
��	�����%��1���;�.�/���;�.�/�
��$�C���L�'�2�>��
�
 �
 �
"�H�$=�$=�$?�J��������T�*�K�
����)� �!3�4�D� ��(�D�"�=�1�F��6�6�R�<��<��6�6�R�<��<��H�'9�9�B�B�D�E�H���)�%@�
"�
"�$?�$?��
"�
"�s%�<E�B'E
�9E�

E	�E�
E)c���SSSS.0n[RRX!S9 S[US-50nS/0n[	[[55X45n[R"5 [R"5 SH#n[RRUS5 M% URU5 [S5n[R"U5S	-n[US-R!55n	[#Xy5 UR$S
:XdeUR'SS9S:XdeSSS5 SSS5 g!,(df   N=f!,(df   g=f)
NrR�a = 13�abc)r)�text.txtr5�ns.othernamer�rr�r��
r>r?)rCrDrErFrrrr�r�r�r�r�r�r�importlib_resourcesr2r�r�r��	read_text)
rsrKr2r�rr�r�rR�textr�s
          r%�test_namespace�!TestFinderTemplate.test_namespace�s����e�D�E�������%��1�!�3�x�%�'7�#8�9���B�Z�
�#�C���L�'�F��
�
 �
 �
"�H�$=�$=�$?�-��������T�*�.�
����)���/�C�&�,�,�S�1�J�>�D��H�u�,�5�5�7�8�H���&��5�5�B�;��;��>�>�7�>�3�u�<�<�<�%@�
"�
"�$?�$?��
"�
"�s%�+E�B-E�/E�
E	�
E�
Ec��SSSS000SSS00S.n[RRX!S9 [US	-5[US
-5S.nS[US-5[US
-5/0n[	[[55X45n[R"5 [R"5 SH#n[RRUS5 M% URU5 [S5n[S5n[US	-R55n	[Xy5 UR S:XdeUR"S:XdeSSS5 SSS5 g!,(df   N=f!,(df   g=f)Nrr�r)r�r��b = 37r�r5zsrc1/ns/pkg1zsrc2/ns)�ns.pkgArr�r�)rr��ns.mod2r�r�r��%)rCrDrErFrrrr�r�r�r�r�r�rr�r�r��b)
rsrKr2r��namespaces_r�r�r�r�r�s
          r%�test_combine_namespaces�*TestFinderTemplate.test_combine_namespaces�sJ���F�]�H�$=�>�?��I�x�0�1�
��	�����%��1��8�n�4�5��h��*�+�
���c�(�V�"3�4�c�(�V�:K�6L�M�N��#�C���L�'�G��
�
 �
 �
"�H�$=�$=�$?�3��������T�*�4�
����)� ��+�D� ��+�D��H�~�5�>�>�@�A�H���'��6�6�R�<��<��6�6�R�<��<�%@�
"�
"�$?�$?��
"�
"�s%�E/�0BE�
E/�
E,	�(E/�/
E=c�z�SSS00SSS00S.n[RR5nURU5 [RR	U5 SS	S
S.SS
/S.n[U5n[
U[[555n[SUR555nSSS5 [R"5 [R"5 WSH#n[RR!US5 M% UR#W5 [%S5n	[%S5n
[US-R'55n[[)U	R*5R'55U:Xde[US-R'55n[[)U
R*5R'55U:XdeU	R,S:XdeU
R.S:XdeSSS5 SSS5 g!,(df   GN`=f!,(df   N)=f!,(df   g=f)zw
Users may attempt to combine namespace packages in a nested way via
``package_dir`` as shown in pypa/setuptools#4248.
�
my_packagezmy_module.pyr��my_package2z
my_module2.pyr�)r-r��	%PEP 517%zsrc/my_packagezsrc2/my_package2)�different_name�different_name.subpkgr�r�)�script_name�package_dir�packagesc3�Z# �UH!upURS5(dMUv� M# g7f)z.pyN��endswith)�.0�k�vs   r%�	<genexpr>�DTestFinderTemplate.test_combine_namespaces_nested.<locals>.<genexpr>/s"���W�&A�d�a�Q�Z�Z�PU�EV���&A�s�+�	+Nrzdifferent_name.my_modulez different_name.subpkg.my_module2zsrc/my_package/my_module.pyzsrc2/my_package2/my_module2.pyr�r�)rCrD�DirectoryStackrjrErrrFr�next�get_implementationrr�r�r�r�r�r�rr�r�__file__r�r�)rsrKr2�stack�attrsryr��coder�r�r�r�s            r%�test_combine_namespaces_nested�1TestFinderTemplate.test_combine_namespaces_nesteds���!�>�8�"<�=�"�_�h�$?�@�
��
���*�*�,��
�]�]�8�
$��K�K���e�$�*�&6�-?� �.�/F�G�
�E� ��&�D�$�T�3�u�w�<�8�F��W�f�&?�&?�&A�W�W�D�%��
 �
 �
"�H�$=�$=�$?��Z�(��������T�*�)�
����%� �!;�<�D� �!C�D�D��H�'D�D�M�M�O�P�H��t�D�M�M�*�2�2�4�5��A�A�A��H�'G�G�P�P�R�S�H��t�D�M�M�*�2�2�4�5��A�A�A��6�6�R�<��<��6�6�R�<��<�%@�
"�
"�%�
$��%@�$?��
"�
"�s1�A3H	�
H,�#DH�8H,�	
H�
H)	�%H,�,
H:c�t�SSSS000SSSS000SSSS000S	.n[RRX!S
9 0nS[US-5/0n[	[[55X45nSS
5n[R"5 [R"5 SSS/UQ7H#n[RRUS5 M% URU5 [S5nURS:Xde[R "["5 [S5 SSS5 [RR%[US-55 [S5n	U	RS:Xde[R "["5 [S5 SSS5 [RR%[US-55 [S5n
U
RS:XdeSSS5 SSS5 g!,(df   N�=f!,(df   Ny=f!,(df   N9=f!,(df   g=f)N�parent�childzone.py�x = 1ztwo.py�x = 2zthree.pyzx = 3)�project1�project2�project3r5zproject1/parentc3�,# �UH
nSU3v� M g7f)z
parent.child.Nr�)rrns  r%r�CTestFinderTemplate.test_dynamic_path_computation.<locals>.<genexpr>Ns���K�3J�4�-��v�&�3J�s�)�one�two�threezparent.childzparent.child.onerzparent.child.twor�zparent.child.threer�)rCrDrErFrrrr�r�r�r�r�r�r�xrg�raises�ImportErrorr�)rsrKr2r�r�r��modsr�rrrs           r%�test_dynamic_path_computation�0TestFinderTemplate.test_dynamic_path_computationBs���"�G�h��-@�#A�B�!�G�h��-@�#A�B�!�G�j�'�-B�#C�D�
��
	�����%��1����#�h�1B�&B�"C�!D�E��#�C���L�'�G��K�3J�K��
�
 �
 �
"�H�$=�$=�$?� �.�.�H�4�H��������T�*�I�
����)�� 2�3�C��5�5�A�:��:����{�+��0�1�,�
�H�H�O�O�C��:� 5�6�7�� 2�3�C��5�5�A�:��:����{�+��2�3�,�
�H�H�O�O�C��:� 5�6�7�!�"6�7�E��7�7�a�<��<�+%@�
"�
"�,�+��,�+��!%@�$?��
"�
"�sW�H)�A8H�G6�A*H�H�AH�%H)�6
H�H�
H�H�
H&	�"H)�)
H7c�@�SSS00n[RRX!S9 S[US-50n[	[[55U05n[R"5 [R"5 [RRSS5 URU5 [R"[SS9 [!S5 SSS5 SSS5 SSS5 g!,(df   N=f!,(df   N(=f!,(df   g=f)NrRr)zfrom . import pkgr5r^�rCrDrErFrrrr�r�r�r�r�r�rgr#r$r�rsrKr2r�r�s     r%�test_no_recursion�$TestFinderTemplate.test_no_recursionfs���
��2��
��
	�����%��1�
�3�x�%�'�(�
��$�C���L�'�2�>��
�
 �
 �
"�H�$=�$=�$?��K�K�O�O�E�4�(�����)����{�%�8��e�$�9�	%@�
"�
"�9�8��	%@�$?��
"�
"�s=�'D�=AC>�C-�C>�D�-
C;�7C>�>
D	�D�
Dc��SSSS0S.0n[RRX!S9 S[US-50n[	[[55U05n[R"5 [R"5 [RRSS5 [RRSS5 URU5 [R"[SS9 [!S5 SSS5 SSS5 SSS5 g!,(df   N=f!,(df   N(=f!,(df   g=f)	N�foor�r))r)�barr5zfoo.barr=r^r)r*s     r%�test_similar_name�$TestFinderTemplate.test_similar_name{s����!�!�2���
��	�����%��1�
�3�x�%�'�(�
��$�C���L�'�2�>��
�
 �
 �
"�H�$=�$=�$?��K�K�O�O�E�4�(��K�K�O�O�I�t�,�����)����{�(�;��h�'�<�%@�
"�
"�
<�;��%@�$?��
"�
"�s=�*D2�A+D!�+D�7D!�?D2�
D�D!�!
D/	�+D2�2
Ec��SSSSSS.S.0n[RRX!S9 S[US-50n[	[[55U05n[R"5 [R"5 [RRSS5 URU5 [R"[SS	9 [!S
5 SSS5 [R"[SS	9 [!S5 SSS5 [R"[S
S	9 [!S5 SSS5 [R"[SS	9 [!S5 SSS5 [R"[SS	9 [!S5 SSS5 [!S5nUR"S:Xde[!S5nUR"S:XdeSSS5 SSS5 g!,(df   GN=f!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   Nm=f!,(df   g=f)Nr.r�rr)r)�lowercase.py)r)r3r/r5z'FOO'r^�FOOz'foo\.LOWERCASE'z
foo.LOWERCASEz'foo\.bar\.Lowercase'zfoo.bar.Lowercasez
'foo\.BAR'zfoo.BAR.lowercasezFOO.bar.lowercasez
foo.lowercaserzfoo.bar.lowercaser )rCrDrErFrrrr�r�r�r�r�r�rgr#r$rr")rsrKr2r�r�r�s      r%�test_case_sensitivity�(TestFinderTemplate.test_case_sensitivity�s����!� '�#%�$+���	
��	�����%��1��3�x�%�'�(�
��$�C���L�'�2�>��
�
 �
 �
"�H�$=�$=�$?��K�K�O�O�E�4�(�����)����{�'�:��e�$�;����{�2E�F��o�.�G����{�2K�L��1�2�M����{�-�@��1�2�A����{�'�:��1�2�;� ��0�C��5�5�A�:��:�� 3�4�C��5�5�A�:��:�/%@�
"�
"�;�:��G�F��M�L��A�@��;�:��!%@�$?��
"�
"�s��,I�AH7�
G!�!H7�:G3�!H7�'H�3!H7�H� !H7�H&�
AH7�I�!
G0�+H7�3
H�=H7�
H�H7�
H#�H7�&
H4�0H7�7
I	�I�
Ic�T�SSSSS.S.0n[RRX!S9 S[US-50nS	/0n[	[[55X45n[R"5 [R"5 S
H#n[RRUS5 M% URU5 [S5n[US-R55n[Xx5 UR S:Xde[S5n	U	R"S
:Xde[S5n
U
R$S:Xde[&R("[*SS9 [S5 SSS5 [&R("[*SS9 [S5 SSS5 [&R("[*SS9 [S5 SSS5 SSS5 SSS5 g!,(df   Ny=f!,(df   N]=f!,(df   NA=f!,(df   NJ=f!,(df   g=f)NrRr�r�zc = 42)r)zbar.py)r)r.r5r�rr�r�zns.othername.foor�zns.othername.foo.barr�z'NS'r^zNS.othername.fooz'ns\.othername\.FOO\'zns.othername.FOOz'ns\.othername\.foo\.BAR\'zns.othername.foo.BAR)rCrDrErFrrrr�r�r�r�r�r�rr�r�r�r��crgr#r$)rsrKr2r�rr�r�rRr�r.r/s           r%�test_namespace_case_sensitivity�2TestFinderTemplate.test_namespace_case_sensitivity�s����'�#+�&���
��	�����%��1�!�3�x�%�'7�#8�9���B�Z�
�#�C���L�'�F��
�
 �
 �
"�H�$=�$=�$?�-��������T�*�.�
����)���/�C��H�u�,�5�5�7�8�H���&��5�5�B�;��;�� 2�3�C��5�5�B�;��;�� 6�7�C��5�5�B�;��;����{�&�9��0�1�:����{�2L�M��0�1�N����{�2R�S��4�5�T�-%@�
"�
"� :�9��N�M��T�S��-%@�$?��
"�
"�sm�.H�CH�G�"!H�G&�!H�0G7�<H�H�
G#�H�&
G4�0H�7
H�H�
H	�H�
H'c���SSSSSSS0S.00n[RRX!S	9 S[US
-50n[	[[55U05n[R"5 [R"5 SH#n[RRUS5 M% URU5 [S
5nURS:Xde[S5nURS:Xde[ R""[$5 [S5 SSS5 SSS5 SSS5 g!,(df   N=f!,(df   N(=f!,(df   g=f)zp
The finder should not import ``fullname`` if the intermediate segments
don't exist (see pypa/setuptools#4019).
r-r(r�r�zb = 13�	config.pyza = 37)r)r<z
helloworld.py�
componentsr5z	src/mypkg)r(zmypkg.config�mypkg.helloworldzmypkg.components�mypkg.components.config�mypkg.components.helloworldNr?r�r>r�r@)rCrDrErFrrrr�r�r�r�r�r�rr�r�rgr#r$)rsrKr2r�r�r�rd�
helloworlds        r%�test_intermediate_packages�-TestFinderTemplate.test_intermediate_packages�s,��
��#%�!)�%-�#�X�#�	�	�
��	�����%��1��C��;� 6�7�8��#�C���L�'�2�>��
�
 �
 �
"�H�$=�$=�$?���������T�*��
����)�"�#<�=�F��8�8�r�>�!�>�&�'9�:�J��<�<�2�%�%�%����{�+��;�<�,�'%@�
"�
"�&,�+��'%@�$?��
"�
"�s=�.E�BE	�D8�E	�'E�8
E�E	�	
E	�E�
E(r�N)r�r�r�r��__doc__r�r�r�r�rr&r+r0r5r9rBr�r�r'r%r�r��sC���
�
*�@=�. �6) �V" �H%�*(�0'�R'6�R*=r'r�c
���SS0SS.SSS0S.SS	SS
000SS0SS0SS
0S.n[RRXS9 SSSS.n/SQn[X2U5nU[	US-5[	US-5[	US-5[	US-5[	US-5[	US-5S.:Xde[[
[X4555nUSS1:Xde[[U55nU1Sk:Xdeg)r�r)zab = 1r�)r�r)zd = 1zde = 1)r)�e�g�hzfgh = 1zabc = 1z
abcxyz = 1z	mnopq = 1)r��d�f�other�another�yet_anotherr5rKrLrM)�a.b.c�a.b.c.x.y.z�	m.n.o.p.q)r��a.brN�	a.b.c.x.yrOrIzd.erJ�f.gzf.g.hrPr�rIrJ)r�rNrOrIrJrPrS>�mrQ�m.n�m.n.o�a.b.c.x�m.n.o.prRN)	rCrDrErrF�setr�rr)rKr2rr�rootsrs      r%�test_pkg_rootsr[s5��"�8�,�W�
E�$�M�8�+D�
E��C�-��3�4�
5���+�!�<�0�%�{�3�

�E��K�K���e��-�� �"��K�
�H�
 ��x�@�E��
��C��
 ��X��'�(��8�i�/�0�
��C��
 �
��C��
 ���M�1�2�
����

�T�"�8�3�
4�	5�B�
�#�u�����	�
%�e�
,�	-�B�
�P�P�P�Pr'c
���\rSrSr%Sr\"\5\SSSSSSSS.S	.S
.rS\S'\\"\5\SSS
\S
0S.\"\5\"S5-\SSS\S
SS.\S
SS.\"\5\SSS
\S
S\S
SS.0S.S.r	\
RR\
RS:HSS9\
RRS\	R!55S55rSrg)�TestOverallBehaviouriCz�        [build-system]
        requires = ["setuptools"]
        build-backend = "setuptools.build_meta"

        [project]
        name = "mypkg"
        version = "3.14159"
        r,r�zvar = 42zvar = 13�resource 39)r)r�zresource_file.txt)r)r��
subpackage)r+r,�otherfile.pyr(zdict[str, Any]�FLAT_LAYOUTr()r+r,r`r-z�                [tool.setuptools]
                packages = ["mypkg", "mypkg.subpackage"]

                [tool.setuptools.package-dir]
                "mypkg.subpackage" = "other"
                r�)r)r�r_)r+r,r`r(rK)r�r_)�flat-layout�
src-layout�
custom-layout�	namespacer.r/r0�layoutc���[SX!URU/UQ76upVSnURSS[U5/5nSU;deSn	URSS[U	5/5nSU;deSn
URSS[U
5/5nS	U;de[	URS
55n[	URS55n[	URS55n
UR
S
SS9 UR
SSS9 U
R
SSS9 URSS[U	5/5nSU;deSU;deURSS[U
5/5nS	U;deSU;deg)Nr(zj        try:
            import otherfile
        except ImportError as ex:
            print(ex)
        r7rSzNo module named 'otherfile'zy        import mypkg, mypkg.mod1, mypkg.subpackage.mod2
        print(mypkg.mod1.var, mypkg.subpackage.mod2.var)
        z42 13z�        import mypkg.subpackage
        from setuptools._importlib import resources as importlib_resources
        text = importlib_resources.files(mypkg.subpackage) / "resource_file.txt"
        print(text.read_text(encoding="utf-8"))
        r^�
**/mod1.py�
**/mod2.py�**/resource_file.txtzvar = 17r>r?z	var = 781zresource 374z17 781)�install_project�EXAMPLESrHrrrqrJ)rsrKrLrfr&rM�_�cmd_import_errorr��cmd_get_vars�cmd_get_resourcer�r��
resource_files              r%�test_editable_install�*TestOverallBehaviour.test_editable_install�s���%��T�T�]�]�6�%:�
�=J�
�
��
���h�h��$��/?�(@�A�B��,��3�3�3����h�h��$��|�(<�=�>���#�~��~����h�h��$��/?�(@�A�B����#�#�#��G�L�L��.�/���G�L�L��.�/���W�\�\�*@�A�B�
����
�W��5�����g��6�� � ��'� �B��h�h��$��|�(<�=�>���c�!�!�!��3�����h�h��$��/?�(@�A�B���C�'�'�'���$�$�$r'r�N)r�r�r�r��	PYPROJECTrr�ra�__annotations__rlrgr��xfailr�r�r��keysrrr�r�r'r%r]r]Cs\���I�!��+��}�-���!�!�%�%2��
�	
#�K��
� #�$�Y�/�"�=�1���[��1�2�	
�%�Y�/����	�#�=�1��!�&�w�/�	�:��!��)�,�7�#
�(%�Y�/�"�=�1���*�7�3�I�>�"-�g�"6�|�"D���	

�7&�H�P�[�[���s�|�|�x�/�8N��O��[�[���X�x�}�}��7�0%�8�P�0%r'r]c��\rSrSr\"\RS5r\S==\"S5-
ss'S\SSS'S	r	S
r
Srg)
�TestLinkTreei�rcr+a[        [tool.setuptools]
        # Temporary workaround: both `include-package-data` and `package-data` configs
        # can be removed after #3260 is fixed.
        include-package-data = false
        package-data = {"*" = ["*.txt"]}

        [tool.setuptools.packages.find]
        where = ["src"]
        exclude = ["*.subpackage*"]
        r�r-r(�resource.not_in_manifestc�d�[RRURUS9 [	U5 Sn[SS05nUR
5 [5nUS-nUS-nUR5 UR5 URS5nSUl
[U5UlUR5 UR5nUR5n	[!X2XV5n
U
"XHU	5 [#UR%S	55nUS
-n['X�5 [#UR%S5S5be[#UR%S5S5be[#UR%S
5S5be[#UR%S5S5beSSS5 g!,(df   g=f)Nr5z
mypkg-3.14159r�r�z.auxz.build�build_pyTrhzsrc/mypkg/mod1.pyz
**/subpackagerirjz**/resource.not_in_manifest)rCrDrE�FILES�_Pathr�parse_config_filesr
rB�get_command_obj�
editable_moderF�	build_lib�ensure_finalized�get_outputs�get_output_mappingrrrq�assert_link_to)
rsrKrnry�wheel�auxrEr|�outputs�output_mapping�	make_treer�r�s
             r%�test_generated_tree� TestLinkTree.test_generated_tree�su�������$�*�*�X��6�
�8�_�"�D���� <�=�D��#�#�%��F�E��V�#�C��x�'�E��I�I�K��K�K�M��+�+�J�7�H�%)�H�"�!$�U��H���%�%�'��*�*�,�G�%�8�8�:�N�!�$�c�9�I��e�n�5������.�/�D��"5�5�H��4�*������1�4�8�@�@�@������.��5�=�=�=�����!7�8�$�?�G�G�G�����!>�?��F�N�N�N�;�_�_�s�E#F!�!
F/c��SS/n[SX!UR/UQ76 UR/SQ5nSU;deSnURSS[U5/5nS	U;deS
nURSS[U5/5nSU;deSU;deg)
Nr!r"r(�r7rSz(import mypkg.mod1; print(mypkg.mod1.var)rbzv        try:
            from mypkg import subpackage
        except ImportError as ex:
            print(ex)
        r7rS�cannot import name 'subpackage'a8        import mypkg
        from setuptools._importlib import resources as importlib_resources
        try:
            text = importlib_resources.files(mypkg) / "resource.not_in_manifest"
            print(text.read_text(encoding="utf-8"))
        except FileNotFoundError as ex:
            print(ex)
        zNo such file or directoryrz)rkr}rHr)rsrKrLr�r�rnrps       r%�test_strict_install� TestLinkTree.test_strict_install�s���#�%;�<��������C�d�C��h�h�S�T���s�{��{����h�h��$��/?�(@�A�B��0�C�7�7�7����h�h��$��/?�(@�A�B��*�c�1�1�1�)�S�0�0�0r'r�N)r�r�r�r�rr]rlr}rr�r�r�r�r'r%ryry�sW���)�2�2�<�@�A�E�	�
��v�
	� ���9>�E�%�L���4�5� O�D1r'ryz9ignore:.*compat.*:setuptools.SetuptoolsDeprecationWarningc�T�SS/n[RSn[SXU/UQ76 UR/SQ5nSU;de[	[U55nSH'n[	URSS	U/55nXT;aM'e S
nURSS	[
U5/5nSU;deg)Nr!zeditable-mode=compatrdr(r�rb)z"import otherfile; print(otherfile)zimport other; print(other)zimport mypkg; print(mypkg)r7rSzc    try:
        from mypkg import subpackage;
    except ImportError as ex:
        print(ex)
    r�)r]rlrkrH�comparable_pathrFr)rKrLr�r2r��
expected_pathrNs       r%�test_compat_installr�s���
 �!7�8�D� �)�)�/�:�E��G�T�U�:�T�:�
�(�(�O�
P�C��3�;��;�#�C��M�2�M���
�d�h�h��$��'<�=�>���#�#�#�
��C��(�(�H�d�F�3�K�0�
1�C�,��3�3�3r'c�(�[S5[S5[S5SSS.SS0S	.nUR/S
Q5 [R"SS9 [	S
XU/UQ76 SSS5 UR/SQ5nSU;deg!,(df   N*=f)z3Ensure editable installs work with pbr, issue #3500z�            [build-system]
            requires = ["setuptools"]
            build-backend = "setuptools.build_meta"
            z�            __import__('setuptools').setup(
                pbr=True,
                setup_requires=["pbr"],
            )
            z~            [metadata]
            name = mypkg

            [files]
            packages =
                mypkg
            r�zprint('Hello world!'))r)zhello.pyztest.txtzAnother file in here.)r+r3z	setup.cfgr(rK)r7r8r9r:�pbrz0.42)�PBR_VERSIONr(N)r7rSzimport mypkg.hellozHello world!)rrHr�environmentrk)rKrLr&r2r�s     r%�test_pbr_integrationr�/s���!�
�
��
�
��
�	
��/�
��5�6�=
�E�@	�H�H�
6�7�	�	�	�&�	1�����G��G�
2��(�(�9�
:�C��S� � � �	
2�	1�s�B�
Bc�T�\rSrSrSr0\RSES\"S50ErSr	Sr
g)	�TestCustomBuildPyiZa
Issue #3501 indicates that some plugins/customizations might rely on:

1. ``build_py`` not running
2. ``build_py`` always copying files to ``build_lib``

During the transition period setuptools should prevent potential errors from
happening due to those assumptions.
rbr3af            import pathlib
            from setuptools import setup
            from setuptools.command.build_py import build_py as orig

            class my_build_py(orig):
                def run(self):
                    super().run()
                    raise ValueError("TEST_RAISE")

            setup(cmdclass={"build_py": my_build_py})
            c��[SX!UR5up4SU;deSU;deUR/SQ5nSU;deg)z>Ensure that errors in custom build_py are reported as warningsr(rzValueError: TEST_RAISEr�rbN)rkr}rH)rsrKrLrmr�s     r%�test_safeguarded_from_errors�.TestCustomBuildPy.test_safeguarded_from_errorsysO��!��$�$�*�*�E���-��4�4�4�'�3�.�.�.��h�h�S�T���s�{��{r'r�N)r�r�r�r�rDr]rlrr}r�r�r�r'r%r�r�Zs:���
�
�
'�
'�
�
6�
��F�
�

�
�E�$r'r�c� �\rSrSrSrSrSrg)�TestCustomBuildWheeli�c�X�URS5n"SSU5nX1RS'g)N�bdist_wheelc�(^�\rSrSrU4SjrSrU=r$)�ETestCustomBuildWheel.install_custom_build_wheel.<locals>.MyBdistWheeli�c�d>�URRS5(aSn[TU]
5$)Nzmacosx-zmacOS platform)�	plat_namer��super�get_tag)rsrm�	__class__s  �r%r��MTestCustomBuildWheel.install_custom_build_wheel.<locals>.MyBdistWheel.get_tag�s,����>�>�,�,�Y�7�7�(�A��w��(�(r'r�)r�r�r�r�r�r��
__classcell__)r�s@r%�MyBdistWheelr��s
���
)�
)r'r�)�get_command_class�cmdclass)rsry�bdist_wheel_clsr�s    r%�install_custom_build_wheel�/TestCustomBuildWheel.install_custom_build_wheel�s,���0�0��?��	)�?�	)�(4�
�
�m�$r'c�f�[RRSS05 [5nSUlUR5 UR
U5 [U5nUR5 UR5 [[[5RS555nSU;deg)N�	module.pyrAr3�
dist/*.whl�editable)rCrDrErr��set_defaultsr�rr�rHrFrrrq)rs�
tmpdir_cwdryrN�
wheel_files     r%�test_access_plat_name�*TestCustomBuildWheel.test_access_plat_name�s���	�����;��1�2��~��%��������'�'��-��T�"���������	���d�f�k�k�,�7�8�9�
��Z�'�'�'r'r�N)r�r�r�r�r�r�r�r�r'r%r�r��s��4�(r'r�c�t�\rSrSrSr\RR\RS:gSS9S5r
Srg)	�TestCustomBuildExti�c�B�SSKJn "SSU5nX1RS'g)Nr)�	build_extc��\rSrSrSrg)�ITestCustomBuildExt.install_custom_build_ext_distutils.<locals>.MyBuildExti�r�N)r�r�r�r�r�r�r'r%�
MyBuildExtr��s��r'r�r�)�distutils.command.build_extr�r�)rsry�
build_ext_clsr�s    r%�"install_custom_build_ext_distutils�5TestCustomBuildExt.install_custom_build_ext_distutils�s��J�	��	�&0�
�
�k�"r'�linuxz(compilers may fail without correct setupr0c�^�[RRSS05 S[SS/5/0n[	U5nSUlUR
5 URU5 [U5nUR5 UR5 [[[5RS555nSU;de[5RS5Vs/sHofRS	:wdMUPM nn[!U5S
:XdeUSR"m[%U4Sj[&55(degs snf)
Nzmodule.cr��ext_modules�moduler3r�r�zmodule.*z.crrc3�F># �UHnTRU5v� M g7f�Nr)r�extrns  �r%r�HTestCustomBuildExt.test_distutils_leave_inplace_files.<locals>.<genexpr>�s����D�1C�#�4�=�=��%�%�1C�s�!)rCrDrErrr�r�r�rr�rHrFrrrq�suffixrrrn�anyr)	rsr�rryrNr��pr2rns	        @r%�"test_distutils_leave_inplace_files�5TestCustomBuildExt.test_distutils_leave_inplace_files�s���	�����:�r�*�+��I�h���=�>�
���E�"��%��������/�/��5��T�"���������	���d�f�k�k�,�7�8�9�
��Z�'�'�'� �F�K�K�
�3�H�3�q�x�x�4�7G��3��H��5�z�Q�����Q�x�}�}���D�1C�D�D�D�D�D��Is�D?�6D?r�N)r�r�r�r�r�rgr��skipifr�r�r�r�r�r'r%r�r��s@��0��[�[��������(R���E��Er'r�c��[RRSS05 [5nSUlUR5 [
U5nUR5 [S[405n[U"5S9nURUSU5 Sn[R"U5 [R"[US9 UR!5 S	S	S	5 S	S	S	5 g	!,(df   N=f!,(df   g	=f)
z7Make sure to display useful debugging tips to the user.r�rAr3�SimulatedErr)�side_effectrmz-following steps are recommended to help debugr^N)rCrDrErr�r�rr��type�	Exceptionr
�setattrrgr#rhr
rH)r�rtryrNr��simulated_failure�expected_msgs       r%�test_debugging_tipsr��s���
�K�K���{�H�-�.��>�D�!�D������
��
�C���������b�9�L����8������4�6G�H�B�L�	���|�	$�f�l�l�>��&V����	�'W�	$�	$�&V�&V��	$�	$�s$�)C6�C%�C6�%
C3	�/C6�6
D�errorc�H�[S5n[U[5(deg)z>Ensure _encode_pth function does not produce encoding warningsutkmilan_ç_utf8N)r�
isinstance�bytes)�contents r%�test_encode_pthr��s"���+�,�G��g�u�%�%�%�%r'c���X -nUR5 [RRX5S9 /UQSPnUR	SSSSSS[U5/UQ[RS	9nXV4$)
Nr5r;r7r8r9r�r:r<)�stderr)rBrCrDrErHrFr��STDOUT)rnrLrKr2r�rMr�s       r%rkrk�sx���o�G��M�M�O�
�K�K���e��,�*�T�*�)�*�D�
�(�(�	�4���i��s�7�|�K�d�K�� � ���C��<�r'c�x�SRS[SU55-5nUSS-RUSS9 g)	a%To use this function, it is necessary to insert new_dir in front of sys.path.
The Python process will try to import a ``sitecustomize`` module on startup.
If we manipulate sys.path/PYTHONPATH, we can force it to run our code,
which invokes ``addsitedir`` and ensure ``.pth`` files are loaded.
�
)zimport sitec3�X# �UH nS[R"U5<S3v� M" g7f)zsite.addsitedir(�)N)r��fspath)r�new_dirs  r%r�_addsitedirs.<locals>.<genexpr>�s$���S�(�w�"�2�9�9�W�#5�"8��:�(�s�(*rzsitecustomize.pyr>r?N)r��tuplerJ)�new_dirsr�s  r%r�r��sH���i�i��
�S�(�S�
S�	T��G��a�[�%�%�1�1�'�G�1�Lr'c���UR(aP[[UR5S5nU(a)[[	U5R55U:Xdegggr�)�__path__r�iterrFrr�)rRr�rDs   r%r�r��sK��
�|�|��D����&��-����t�D�z�)�)�+�,��8�8�8��r'c��UR5(a7[UR55[UR55:XdegUR5nUR5nU[RU[R:XdeU[R
U[R
:Xdegr�)�
is_symlinkrFr��stat�ST_INO�ST_DEV)�filerK�	file_stat�
other_stats    r%r�r��s���������4�<�<�>�"�c�%�-�-�/�&:�:�:�:��I�I�K�	��Z�Z�\�
�����%��D�K�K�)@�@�@�@�����%��D�K�K�)@�@�@�@r'c�~�UR5R[RS5RSS5$)N�/z//)�lower�replacer��sep)�
str_with_paths r%r�r�s/����� �(�(�����5�=�=�d�C�H�Hr')r�rrKr�return�None)rrFrrF)T�
__future__rr�r�r�r�r��copyr�	importlibr�importlib.machineryr�pathlibr�textwrapr�typingr	�
unittest.mockr
�uuidr�jaraco.envsrC�jaraco.pathrgrDr~�setuptools._importlibrr��!setuptools.command.editable_wheelr
rrrrrrrr�setuptools.distr�setuptools.extensionr�setuptools.warningsrr�rr�distutils.corer�fixturer&rIr��SETUP_SCRIPT_STUBr�rvr�rOrVrYr[r�r�r�r[r]ry�filterwarningsr�r�r�r�r�r�r�rkr�r�r�r�r�r'r%�<module>rs?��"�	����
��#�2��������
��B�
�
�
�)�*�<�"�$�����)�,�-��.���	��<�	���e�g�(�6��!��
�"��	��%�/
��SD��N7�������3�<�<�8�+�4J��K�������2�7�2�J� 1�2����>��L�>�2%*�P#(�L?;�?;�Db0�b0�J%*�PU=�U=�p
.Q�bu%�u%�pP1�P1�f�����W�X�4�Y�4�@(!�V'�'�T(�(�:E�E�@�$�����G�$�&�%�&�	�
M� 9�A�Ir'

Youez - 2016 - github.com/yon3zu
LinuXploit