403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.202
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python315/Lib/test/test_pathlib/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python315/Lib/test/test_pathlib/__pycache__/test_pathlib.cpython-315.pyc
R
>lqj�sc��]PHs]PHs]PHs]PHs]PHs]PHs]PHs]PHs]PH s]PH$s	]PH(s
]PH,s]PH0s]PH4s
]QH4Gs]QH<Gs]QHDGs]QHDGs]QHDGsGsGs]QHDGs]QHDGs]QHDGs]Q	HDGs]Q
HlGsGsGs]PH~s]PH�s!]PH�s"]PH�s#Qs$\%2s&\%2s'\%2s(Qs)Q
s*Qs+QQ\
OX2s-QQ\
OX2s.QQ\
OX2s/QQ\/2s0QQ\/2s1QQ\/2s2QQ\/2s3QQ\
OX2s4\
Oj\OlQ6HQ 2Q!Q"\3\022s7\
Oj\OlQ6gQ#2Q$Q%\3\122s8Q&Q'\32s9Q(Q)\
OX2s:\;Q*6Xc\
Ox2P!P!\ cPsCKUh9h\ c	P9s!s"CK^h9h\ cPs#CKih9h)+�)�mock)�pathname2url)�
import_helper)�cpython_only)�
is_emscripten�is_wasi�	is_wasm32)�infinite_recursion)�	os_helper)�requires_root_user)�requires_non_root_user)�TESTFN�FS_NONASCII�FakePathc� ``�QnUU1QkoU!)c�:�[[OQV2g)zCross-device link)�OSError�errno�EXDEV)�self�targets&&�3C:\Python315\\Lib\test\test_pathlib\test_pathlib.py�new_replace�"patch_replace.<locals>.new_replace)s���e�k�k�#6��E�E�c�:�UOOoRUOmRU2VOmP!XOmh9h�N)�cls�replace)r�old_replacer�old_tests& ��r�new_test�patch_replace.<locals>.new_test,s?����h�h�&�&��&�����	+��T�N�*�H�H���{�H�H��s�A�A�)r r!rsf @r�
patch_replacer$(s���F�+��Orc�F�[OUO2U!)zFDecorator that marks a test as requiring a POSIX-flavoured path class.)�_tests_needing_posix�add�__name__��fns&r�needs_posixr+:s�����R�[�[�)�
�Irc�F�[OUO2U!)zHDecorator that marks a test as requiring a Windows-flavoured path class.)�_tests_needing_windowsr'r(r)s&r�
needs_windowsr.?s�����r�{�{�+�
�Irc�F�[OUO2U!)zMDecorator that marks a test as requiring a path class that supports symlinks.)�_tests_needing_symlinksr'r(r)s&r�needs_symlinksr1Ds��������,�
�Irc�(`�\sQs]KsnQsQsUsP!)�UnsupportedOperationTestc��UO[O[2UO	[O2[2P!r)�assertIsSubclass�pathlib�UnsupportedOperation�NotImplementedError�assertIsInstance�rs&r�test_is_notimplemented�/UnsupportedOperationTest.test_is_notimplementedLs3�����g�:�:�<O�P����g�:�:�<�>Q�Rrr#)r(�
__module__�__qualname__�__firstlineno__r;�__static_attributes__�__classdictcell__��
__classdict__s@rr3r3Ks����S�Srr3c�2`�\sQs]Qsn\Q2sQsUsP!)�LazyImportTestc�:�[OQQQ.2P!)r6�glob�shutil)r�ensure_lazy_importsr:s&r�test_lazy_import�LazyImportTest.test_lazy_importRs���)�)�)�f�h�5G�Hrr#)r(r=r>r?rrJr@rArBs@rrErEQs�����I��IrrEc� `�\sQs][sn\O
s\OO\
2sQ,QINQ,QJN-sQs
QsQs\Q2sQsQs\Q	2sQ
sQsQsQ
sQs\Q2sQsQsQsQsQsQs Qs!Qs"Qs#Qs$Qs%Qs&Qs'Qs(QKQks)Qs*Q s+Q!s,Q"s-Q#s.\Q$2s/Q%s0\1Q&2s2\Q'2s3Q(s4Q)s5\Q*2s6Q+s7\Q,2s8Q-s9Q.s:Q/s;Q0s<\1Q12s=\Q22s>\1Q32s?\1Q42s@\1Q52sA\1Q62sB\1Q72sCQ8QL,Q9,QMNQ:,QNNQ;QO,Q<QPQQ,-sD\Q=2sE\Q>2sF\Q?2sG\Q@2sH\QA2sI\1QB2sJ\QC2sKQDsL\QE2sMQFsN\QG2sOQHsPUsQP!)R�PurePathTest�a/b�/b/c/dc���UO2OQ2P*oU[7c0UOO[
IcUO
Q2U[7c0UOO[
IcUO
Q2UOQ2oUOUmUOOUmUOOUm	P!)�.z#requires POSIX-flavoured path classz%requires Windows-flavoured path class�a)
�id�splitr&r�parser�	posixpath�skipTestr-�sep�altsep)r�name�ps&  r�setUp�PurePathTest.setUpqs����w�w�y���s�#�B�'���'�'�D�H�H�O�O�9�,L��M�M�?�@��)�)�d�h�h�o�o��.J��M�M�A�B��H�H�S�M���h�h����;�;�?�?����k�k�(�(��rc��`�QQ[2nUOoUU1QkU2oUOV2U2UOFD"oUO	[U2[2J$	P!)c��\sQs]�sQsP!)�5PurePathTest._check_str_subclass.<locals>.StrSubclassr#�r(r=r>r?r@r#rr�StrSubclassr`�s��rrbc3�@:�SF �DoRU2w�	J	P!3hrr#)�.0�xrbs& �r�	<genexpr>�3PurePathTest._check_str_subclass.<locals>.<genexpr>�s������1��A����s�)�strr�assertEqual�parts�assertIs�type)r�args�Pr[�partrbs&*   @r�_check_str_subclass� PurePathTest._check_str_subclass|s\���	�#�	��H�H��
�-��-�.������A�t�H�%��G�G�D��M�M�$�t�*�c�*�rc��UOP2UOQ2UOQ2UOQ2UOQ2P!)�rQrRza/b.txtz/a/b.txt�rpr:s&r�test_str_subclass_common�%PurePathTest.test_str_subclass_common�sH��� � ��$�� � ��%�� � ��%�� � ��+�� � ��,rc�\�UOQ2UOQ2UOQ2UOQ2UOQ2UOQ2UOQ2UOQ2UOQ2UOQ	2P!)
z.\a:b�c:�c:az	c:a\b.txt�c:\�c:\az
c:\a\b.txtz\\some\sharez\\some\share\az\\some\share\a\b.txtrtr:s&r�test_str_subclass_windows�&PurePathTest.test_str_subclass_windows�s���� � ��*�� � ��&�� � ��'�� � ��.�� � ��(�� � ��)�� � ��0�� � �!2�3�� � �!5�6�� � �!<�=rc��UOUoUO[U2UOQUO22P!��/)rrirhrrX)r�expectedrmr[s&&& r�
_check_str�PurePathTest._check_str�s4���H�H�d�O������Q���!1�!1�#�t�x�x�!@�Arc�@�QFDoUOV12J	P!�rR�rRrN�a/b/cr��/a/b�/a/b/c)r�)r�pathstrs& r�test_str_common�PurePathTest.test_str_common�s��C�G��O�O�G�Z�0�Drc��UOQ2oUO[U2Q2UOQ2oUO[U2Q2UOQ2oUO[U2Q2UOQ2oUO[U2Q2UOQ2oUO[U2Q	2P!)
r�za\b\czc:/a/b/czc:\a\b\c�//a/bz\\a\b\�//a/b/cz\\a\b\c�	//a/b/c/dz	\\a\b\c\d)rrirh�rr[s& r�test_str_windows�PurePathTest.test_str_windows�s����H�H�W�������Q���+��H�H�Z� ������Q���/��H�H�W�������Q���.��H�H�Y�������Q���/��H�H�[�!������Q��!1�2rc� �UO[OIc7[OQ6Xc[O
L[OoLUOoUOQ2oUO[U2U2P!��ntrR)	rr6�PurePath�osrZ�PureWindowsPath�
PurePosixPathrkrl�rr�r[s&  r�test_concrete_class� PurePathTest.test_concrete_class�sY���8�8�w�'�'�'�24�'�'�T�/�w�.�.�w�G\�G\�H��x�x�H��H�H�S�M���
�
�d�1�g�x�(rc��UO[OIc[oL5UO[OIc[
oL[OoUOQ2oUOUOU2P!�rR)
rr6r�rVr��ntpathr��pathrkrUr�s&  r�test_concrete_parser�!PurePathTest.test_concrete_parser�sX���8�8�w�,�,�,� �H�
�X�X��0�0�
0��H��w�w�H��H�H�S�M���
�
�a�h�h��)rc���UOQ2oUO[Ic[OQ2oL[O
Q2oUO
V2P!r�)rrUrVr6r�r��assertNotEqual�rr[�qs&  r�test_different_parsers_unequal�+PurePathTest.test_different_parsers_unequal�sI���H�H�S�M���8�8�y� ��'�'��,�A��%�%�c�*�A����A�!rc��UOQ2oUO[Ic[OQ2oL[O
Q2oUO
[29^tt^2V6PPP2UO
[29^tt^2V6*PPP2UO
[29^tt^2V6�PPP2UO
[29^tt^2V6�PPP2P!)%fhK�9h)%fhKy9h)%fhKb9h)%fhP!9hr�)rrUrVr6r�r��assertRaises�	TypeErrorr�s&  r� test_different_parsers_unordered�-PurePathTest.test_different_parsers_unordered�s����H�H�S�M���8�8�y� ��'�'��,�A��%�%�c�*�A�
�
�
�y�
)�
)�
�E�*�
�
�
�y�
)�
)�
�F�*�
�
�
�y�
)�
)�
�E�*�
�
�
�y�
)�
)�
�F�*�
)�
*�
)��
)�
)��
)�
)��
)�
)�
)�sH�1C>�D�D$�/D7�>D	�D	�D!	�D!	�$D4	�-D4	�7E	�E	c	���UOoU[Q22UOUUQ22UQ22UOUUQ2Q2UQ22UOUUQ2UQ22UQ22UOUUQ2UQ2UQ22U[Q222UOUUQ22UQ22P!)r�rR�brN�c�./a:b)rrri�rrns& r�test_constructor_nested�$PurePathTest.test_constructor_nested�s����H�H��	�(�7�
������1�S�6��A�c�F�+�����1�S�6�3���5��2�����1�S�6�1�S�6�*�A�e�H�5�����1�S�6�1�S�6�1�S�6�2�A�h�w�6G�4H�I�����1�W�:���'�
�3rc�D�[OQ2o[OQQ2oUOV2UOUOU2UOQ22UOUOU2UOQ22P!)zb/c:\d�b/zc:\dzb/c:/d)r6r�rir)r�p1�p2s&  r�'test_constructor_nested_foreign_flavour�4PurePathTest.test_constructor_nested_foreign_flavour�sv���
"�
"�9�
-��
�
"�
"�4��
1������ �������"��t�x�x��'9�:�������"��t�x�x��'9�:rc�d�UOOoUOOUO	QU22oUOVB2UOO9o%c?UOOUO	QU22oUOVB2P!P!r)rUrXr�_parse_pathrrirY)r�raw_pathr�rX�actualrYs&&*   r�_check_parse_path�PurePathTest._check_parse_path�s����k�k�o�o�����%�%�h�&6�&6�s�C�&@�A������*��[�[�'�'�'�6�'��X�X�)�)�(�*:�*:�3��*G�H�F����V�.�(rc��UOoUOOoUPPP,2UQPPQ,2UQPPQ,2UQPPQQ,2UQPPQQ,2UQPP,Q
N2UQPP,Q
N2UQPP,Q
N2UQPP,2UQ	PPQ,2UQ
PPQQ,2UQPPQ,2UQPUQQ,2P!)rsrR�a/rNr��a/b/za/b/c/dza/b//c/drQz././bza/./bza/./.r�)rRr�r��d)r�rUrX)r�checkrXs&  r�test_parse_path_common�#PurePathTest.test_parse_path_common�s����&�&���k�k�o�o��
�b�"�b�"�%�
�c�"�b�3�%�(�
�d�"�b�3�%�(�
�e�"�b�3��*�-�
�f�"�b�3��*�-�
�i�"�b�"6�7�
�j�"�b�"6�7�
�i�"�b�"6�7�
�c�"�b�"�%�
�g�"�b�3�%�(�
�g�"�b�3��*�-�
�g�"�b�3�%�(�
�f�"�c�C��:�.rc��UOP2oUO[U2Q2UOQQ2P!)rsrQ�rs)rrirhr�r�s& r�test_empty_path�PurePathTest.test_empty_paths1���H�H�R�L������Q���%�����U�#rc��UOoUQ2OUQ22oUOV!Q22P!�rNr�r�)r�joinpathri�rrnr[s&  r�test_join_nested�PurePathTest.test_join_nesteds7���H�H��
�e�H���a��f�%������A�g�J�'rc�x�UOoUQ2UQ2*oUOV!Q22P!r�)rrir�s&  r�test_div_nested�PurePathTest.test_div_nesteds1���H�H��
�e�H�q��v�������A�g�J�'rc�`�UOoQFCDoUOUQ59^tt^2UU2o[][O]*2FD�o[O
V42o[OU2oUOUOUO2UOVc2UO[U2[U22UO[U2[U22J�	PPP2CJ	P!)%fhCJ9h)rR�r�)rRr�rNr�r�r�r�za/b/c/)r�subTest�range�pickle�HIGHEST_PROTOCOL�dumps�loadsrk�	__class__ri�hashrh)rrnr�r[�proto�dumped�pps&      r�test_pickling_common�!PurePathTest.test_pickling_commons����H�H��S�G����g��.�.��g�J��"�1�f�&=�&=��&A�B�E�#�\�\�!�3�F����f�-�B��M�M�"�,�,����<��$�$�R�+��$�$�T�"�X�t�A�w�7��$�$�S��W�c�!�f�5�
C�/�.�T�.�.�.�s�CD	�D-
�$D-
c�x�Qo[OU2oUOU[O2P!)s2��'�pathlib._local��
PurePosixPath���)R�.)r�r�r9r6r�)r�datar[s&  r�test_unpicking_3_13� PurePathTest.test_unpicking_3_13%s.��L���L�L�������a��!6�!6�7rc	��QFD�oUOUQ59^tt^2UOU2oUOOo[	U2oUOVCQ*2UO
UQ2U[U2]*PoUO[U2UO22PPP2J�	P!)%fhJ�9h)rRr��(�)r�)r�rr�r(�repr�assertStartsWith�assertEndsWith�lenri�eval�as_posix)rr�r[�clsname�r�inners&     r�test_repr_common�PurePathTest.test_repr_common+s���C�G����g��.�.��H�H�W�%���+�+�.�.����G���%�%�a�3��7��#�#�A�s�+��#�g�,��*�R�0��� � ��e��a�j�j�l�;�/�.�D�.�.�.�s�BC	�C
�C
c��UOoUQ2oUOUO2Q2UO[OU2Q2P!)rN)rN)rr��
__fspath__r��fspathr�s&  r�test_fspath_common�PurePathTest.test_fspath_common7s>���H�H��
�e�H����������1�����	�	�!��h�/rc��UOoUO[29^tt^2UQ2PPP2UO[29^tt^2UQQ2PPP2UO[29^tt^2UQQ2PPP2UO[29^tt^2UQ2OQ2PPP2UO[29^tt^2UQ2Q*PPP2UO[29^tt^2QUQ2*PPP2UO[29^tt^2UQ2O	Q2PPP2UO[29^tt^2UQ2OQ2PPP2UO[29^tt^2UQ2O
Q2PPP2UO[29^tt^2UQ2OQ2PPP2UO[29^tt^2UQ2OQ2PPP2P!)%fhCKI9h)%fhCK.9h)%fhCK9h)%fhCK�9h)%fhCK�9h)%fhCK�9h)%fhCK9h)%fhCKV9h)%fhCK-9h)%fhCK9h)%fhP!9h)�ar�rR�b)	rr�r�r��match�relative_to�	with_name�	with_stem�with_suffixr�s& r�
test_bytes�PurePathTest.test_bytes=s���H�H��
�
�
�y�
)�
)�
�d�G�*�
�
�
�y�
)�
)�
�d�C�L�*�
�
�
�y�
)�
)�
�c�4�L�*�
�
�
�y�
)�
)�
�c�F�O�O�D�!�*�
�
�
�y�
)�
)�
�c�F�T�M�*�
�
�
�y�
)�
)��1�S�6�M�*�
�
�
�y�
)�
)�
�c�F�L�L���*�
�
�
�y�
)�
)�
�c�F���t�$�*�
�
�
�y�
)�
)�
�c�F���T�"�*�
�
�
�y�
)�
)�
�c�F���T�"�*�
�
�
�y�
)�
)�
�c�F���t�$�*�
)�)*�
)�
)��
)�
)�
)��
)�
)�
)��
)�
)�
)��
)�
)�
)��
)�
)�
)��
)�
)�
)��
)�
)�
)��
)�
)�
)��
)�
)�
)��
)�
)�
)�s��	I4�
J�
J�7J0�4K�)K�K,�L�L�L(�L<�4J	�=J	�J	�J	�J-	�%J-	�0K	�9K	�K	�
K	�K)	�!K)	�,K=	�5K=	�L	�	L	�L%	�L%	�(L9	�1L9	�<M
	�M
	c��UOoQoUO[U29^tt^2UQ2PPP2UO[U29^tt^2UQQ2PPP2UO[U29^tt^2UQQ2PPP2P!)%fhKr9h)%fhKU9h)%fhP!9h)z^argument should be a str or an os\.PathLike object where __fspath__ returns a str, not 'bytes'r�r�rRr�)r�assertRaisesRegexr�)rrn�messages&  r�test_bytes_exc_message�#PurePathTest.test_bytes_exc_messageVs����H�H��B��
�
#�
#�I�w�
7�
7�
�d�G�8�
�
#�
#�I�w�
7�
7�
�d�C�L�8�
�
#�
#�I�w�
7�
7�
�c�4�L�8�
7�	8�
7��
7�
7��
7�
7�
7�s5�	B!�
B4�
C�!B1	�*B1	�4C	�=C	�C	�C	c��[OUO2oUOoUO	[UQ22QU*Q*2P!)rNr�r�)r��fsencoderXrri�bytes)rrXrns&  r�test_as_bytes_common�!PurePathTest.test_as_bytes_commonas>���k�k�$�(�(�#���H�H������q��x��$��*�t�*;�<rc��UOoQFD)oUOUU2O2U2J+	P!r�)rrir�)rrnr�s&  r�test_as_posix_common�!PurePathTest.test_as_posix_commonfs3���H�H��C�G����Q�w�Z�0�0�2�G�<�Drc�T�UOoUOUQ2UQ22UOUQ2UQQ22UOUQ2UQ22UOUQ2UQ22UOUQ2U22UOUQ2UQ22UOU2UQ22UOU2P2UOU2-2UOU2[2P!)rNrRr�r�r�)rrir��intr�s& r�test_eq_common�PurePathTest.test_eq_commonls����H�H������5��1�U�8�,�����5��1�S�#�;�/����A�e�H�a��f�-����A�e�H�a��i�0����A�e�H�a�c�*����A�f�I�q��v�.����A�C��3��(����A�C��$����A�C��$����A�C��%rc�`�Ue
ROoUO2FCDKvq#UOQRO2oUOROQ2oVE6wc\SSTt,tFD4o[9PIc,U1QkU2DMJ	3LU1QkU22MJ6	to*oUOU12RO
U2oSFD�oROUoROV�QOU22RO[U2[U22RO[U2U2ROUO2U2J�	CJN	P!ttoh)Nr�c3�f:�SF �D!pOQRO2w�	J#	P!3hr)rrX)rdrors& �rrf�1PurePathTest.test_equivalences.<locals>.<genexpr>�s ��!���!�$�,�,�s�D�H�H�5�5�!�s�)1zfailed with args {})�equivalences�itemsrrX�tuple�appendrri�formatr�rhr�)	rr�k�tuples�canon�posix�t�pcanonr[s	f&       r�test_equivalences�PurePathTest.test_equivalencesys.������,�,�L�%�+�+�-�-�I�A��I�I�c�4�8�8�,�E��I�I�d�h�h��,�E��~��#�#�#���E�D�!�D�E�E�D�!�D�D�#�#����
�
�u�i�(��X�X�e�_�F����H�H�a�L��� � ��,A�,H�,H��,K�L�� � ��a��$�v�,�7�� � ��Q���/�� � �����u�5��.��#s�,E6
�>*E6
c��`�U1QkoROoUQ2oUQ2oUQ2oUQ2oUV42UV52UV62UVE2UVV2ROoUQ2oUQ2oUQ2oUQ2oUV42UV52UV62UVE2UVV2RO[29^tt^2U2-6PPP2P!)%fhP!9h)	c�N:�ROV2ROV2P!r)�
assertLess�
assertGreater�rRr�rs&&�rr)�5PurePathTest.test_ordering_common.<locals>.assertLess�s����O�O�A�!����q�$rrRrN�abcr��/ar�z/abcz/b)rr�r�)rr)rnrRr�r�r�sf      r�test_ordering_common�!PurePathTest.test_ordering_common�s����	%�
�H�H��
�c�F��
�e�H��
�e�H��
�c�F���1���1���1���1���1���H�H��
�d�G��
�f�I��
�f�I��
�d�G���1���1���1���1���1��
�
�
�y�
)�
)�
�C�"�H�*�
)�
)�
)�s�C#�#C4	�,C4	c��[U[O2%cUO2!UO	[
29^tt^2UO2ttPPP2!)%fhP!9hr)�
isinstancer6�Path�as_uri�assertWarns�DeprecationWarning)rr�s&&r�make_uri�PurePathTest.make_uri�sI���d�G�L�L�)�)��;�;�=� �
�
�
�0�
1�
1��;�;�=�2�
1�
1�
1�s�A*�*A;	�3A;	c�`�UOoUO[29^tt^2UOUQ22PPP2UO[29^tt^2UOU22PPP2P!)%fhKN9h)%fhP!9hr�)rr��
ValueErrorr7r�s& r�test_as_uri_common�PurePathTest.test_as_uri_common�sk���H�H��
�
�
�z�
*�
*��M�M�!�C�&�!�+�
�
�
�z�
*�
*��M�M�!�#��+�
*�+�
*��
*�
*�
*�s#�B	�(B�	B	�B	�B-	�%B-	c	��QFD�oUOUQ59^tt^2UOU2o[U2o[U[O
2oUO
UOUO2UOVB2UO[U2U2PPP2J�	P!)%fhJ�9h)rRr�r�)	r�rr�r�r6�__dict__rkr�ri)rr�r[r�r�s&    r�test_repr_roundtrips�!PurePathTest.test_repr_roundtrips�s���C�G����g��.�.��H�H�W�%����G����G�,�,�-���
�
�a�k�k�1�;�;�7�� � ��&�� � ��a��!�,�/�.�D�.�.�.�s�B	B9	�9C

�C

c���UOoUOUQ2OP2UOUQ2OP2UOUP2OP2P!)rNr��rri�driver�s& r�test_drive_common�PurePathTest.test_drive_common�sS���H�H������5�����,�����6����"�-�����2����b�)rc�@�UOoUOUQ2OQ2UOUQ2OQ2UOUQ2OQ2UOUQ2OQ2UOUQ2OQ2UOUQ2OQ2UOUQ2OQ2UOUQ2OP2P!)	rx�c:a/b�c:/�c:/a/b/r��\\a\b�//a/b/r�z./c:arBr�s& r�test_drive_windows�PurePathTest.test_drive_windows�s����H�H������4�����-�����7��)�)�4�0�����5�����.�����9��+�+�T�2�����7��)�)�:�6�����8��*�*�J�7�����;��-�-�z�:�����7��)�)�2�.rc�H�UOoUOoUOUP2OP2UOUQ2OP2UOUQ2OU2UOUQ2OU2P!)rsrNr�r�)rrXri�root)rrnrXs&  r�test_root_common�PurePathTest.test_root_common�st���H�H���h�h������2����R�(�����5�����+�����3����c�*�����6�����-rc��UOoUOUQ2OQ2UOUQ2OQ2P!)r�r�r��//�rrirOr�s& r�test_root_posix�PurePathTest.test_root_posix�s;���H�H������6�����-�����7����$�/rc��UOoUOUQ2OP2UOUQ2OP2UOUQ2OQ2UOUQ2OQ2UOUQ2OQ2UOUQ2OQ2UOUQ2OQ2P!)rxrGrH�\rIr�rKr�rTr�s& r�test_root_windows�PurePathTest.test_root_windows�s����H�H������4����r�*�����7����"�-�����5�����-�����9��*�*�D�1�����7����$�/�����8��)�)�4�0�����;��,�,�d�3rc���UOoUOUP2OP2UOUQ2OP2UOUQ2OQ2P!)rsrQz/a/b/.r�)rrirZr�s& r�test_name_empty�PurePathTest.test_name_empty�sU���H�H������2����R�(�����3����b�)�����8��)�)�3�/rc��UOoUOUP2OP2UOUQ2OP2P!)rsrQ)rri�stemr�s& r�test_stem_empty�PurePathTest.test_stem_empty�s;���H�H������2����R�(�����3����b�)rc�~�UOoUO[UQ2OQ2UO[UQ2OQ2UO[UQ2OQ2UO	[UQ2OQ22Q2UO	[UQ2OQ22Q2UO	UQ	2OQ2UQ
22UO	UQ	2OQ2UQ22P!)rx�d.xmlzc:\\z
\\My\SharerR�d:�.\d:�d:e�.\d:ezc:a\bzc:a\d:zc:a\d:e)rr�r:rrirhr�s& r�test_with_name_windows�#PurePathTest.test_with_name_windows�s����H�H�����*�a��h�&8�&8�'�B����*�a��j�&:�&:�G�D����*�a�
�&6�&@�&@�'�J�����Q�s�V�-�-�d�3�4�g�>�����Q�s�V�-�-�e�4�5�x�@�����8��.�.�t�4�a�	�l�C�����8��.�.�u�5�q��}�Erc��UOoUO[UP2OQ2UO[UQ2OQ2UO[UQ2OQ2UO[UQ2OP2UO[UQ2OQ2P!)rsrcrQr�rN)rr�r:rr�s& r�test_with_name_empty�!PurePathTest.test_with_name_emptys����H�H�����*�a��e�o�o�w�?����*�a��f�&6�&6��@����*�a��f�&6�&6��@����*�a��h�&8�&8�"�=����*�a��h�&8�&8�#�>rc�~�UOoUO[UQ2OQ2UO[UQ2OQ2UO[UQ2OQ2UO	[UQ2OQ22Q2UO	[UQ2OQ22Q2UO	UQ	2OQ2UQ
22UO	UQ	2OQ2UQ22P!)rxr�rHz
//My/SharerRrdrerfrgrGzc:a/d:zc:a/d:e)rr�r:rrirhr�s& r�test_with_stem_windows�#PurePathTest.test_with_stem_windows
s����H�H�����*�a��g�&7�&7��=����*�a��h�&8�&8�#�>����*�a��o�&?�&?��E�����Q�s�V�-�-�d�3�4�g�>�����Q�s�V�-�-�e�4�5�x�@�����7��-�-�d�3�Q�x�[�A�����7��-�-�e�4�a�	�l�Crc��UOoUO[UP2OQ2UO[UQ2OQ2UO[UQ2OQ2UO[UQ2OP2UO[UQ2OQ2P!)rsr�rQr�rN)rr�r:rr�s& r�test_with_stem_empty�!PurePathTest.test_with_stem_emptys����H�H�����*�a��e�o�o�s�;����*�a��f�&6�&6��<����*�a��f�&6�&6��<����*�a��h�&8�&8�"�=����*�a��h�&8�&8�#�>rc�`�UOoUOUQ2OQP	Q52UOUQ2OQP
Q52UOUQ2OQP	Q52UOUQ2OQP
Q52P!)�A.py�a.PY��case_sensitive�	c:/a/B.Py�	C:/A/*.pY�	/a/b/c.py�	/A/*/*.Py)r�assertFalse�
full_match�
assertTruer�s& r�test_full_match_case_sensitive�+PurePathTest.test_full_match_case_sensitive!s����H�H������6��-�-�f�T�-�J�K�����&�	�,�,�V�E�,�J�K�����;��2�2�;�t�2�T�U�����+��1�1�+�e�1�T�Urc��UOoUO[UQ2OP2UO[UQ2OQ2P!)rRrQ)rr�r:r�r�s& r�test_match_empty�PurePathTest.test_match_empty(s?���H�H�����*�a��f�l�l�B�7����*�a��f�l�l�C�8rc�H
�UOoUOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ	2OQ22UOUQ2OQ22UOUQ
2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ
2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQP	Q52UOUQ2OQP
Q52UOUQ2OQP	Q52UOUQ2OQP
Q52UOUP2OQ22UOUP2OQ22UOUP2OQ22P!)�b.pyza/b.pyz/a/b.pyza.pyzb/pyz/a.pyzb.py/cz*.pyzb.pyczb./pyzab/c.pyza*/*.pyz
/d/ab/c.pyz	/dab/c.pyz	ab/c.py/d�/b.py�/*.pyz/a/*.pyz/ab.pyrzz/**/*.pyz
/a/**/*.pyrtrurvrxryr{�*�**�**/*�rr~r�r|r�s& r�test_match_common�PurePathTest.test_match_common-s����H�H������&�	����/�0�����(��)�)�&�1�2�����)��*�*�6�2�3�����6�����0�1�����6�����0�1�����7��)�)�&�1�2�����8��*�*�6�2�3�����&�	����/�0�����(��)�)�&�1�2�����)��*�*�6�2�3�����7��)�)�&�1�2�����7��)�)�&�1�2�����8��*�*�6�2�3�����)��*�*�9�5�6�����,��-�-�i�8�9�����6�����3�4�����;��-�-�i�8�9�����;��-�-�i�8�9�����'�
�(�(��1�2�����6�����1�2�����8��*�*�7�3�4�����9��+�+�G�4�5�����)��*�*�9�5�6�����8��*�*�9�5�6�����;��-�-�i�8�9�����;��-�-�j�9�:�����+��,�,�\�:�;�����6�������E�F�����&�	����u��E�F�����;��-�-�k�$�-�O�P�����+��,�,�[��,�O�P�����2����S�)�*�����2����T�*�+�����2����V�,�-rc�l�UOoUOUQ2OQ22P!)rtru)rr|r�r�s& r�test_match_posix�PurePathTest.test_match_posixZs&���H�H������6�����0�1rc��UOoUOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ	2OQ
22UOUQ	2OQ22UOUQ2OQ22UOUQ
2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ2OQ22UOUQ	2OQ22P!)zc:/b.pyz*:/*.pyzc:/*.pyzd:/b.pyr�r�zc:*.pyzc:b.pyr�z//some/share/a.pyz
//*/*/*.pyz//some/share/*.pyz//other/share/a.pyz//some/share/a/b.pyzB.pyzb.PYrxryz//Some/Share/B.Pyz//somE/sharE/*.pYr�r�s& r�test_match_windows�PurePathTest.test_match_windows_sI���H�H������)��*�*�9�5�6�����)��*�*�9�5�6�����9��+�+�I�6�7�����6�����1�2�����6�����2�3�����6�����3�4�����8��*�*�7�3�4�����8��*�*�9�5�6�����7��)�)�(�3�4�����7��)�)�)�4�5�����-�.�4�4�\�B�C�����-�.�4�4�5H�I�J�����/�0�6�6�7J�K�L�����0�1�7�7�8K�L�M�����&�	����/�0�����+��,�,�[�9�:�����-�.�4�4�5H�I�J�����9��+�+�G�4�5�����9��+�+�H�5�6�����.�/�5�5�g�>�?rc��UOoUQPQQQ,2UQPQQQ,2UQPQQQ,2UQPPQ,2UQPPQ,2UQ	PPQ	,2P!)
r�rSrRr�z///a/br�z////a/bryr{z\a�r��rr�s& r�test_parse_path_posix�"PurePathTest.test_parse_path_posix{su���&�&��	�g��T�C��:�.�
�h��S�3��*�-�
�i��S�3��*�-�
�e��R�%��*�
�g��R�'��,�
�e��R�%��*rc���UOoUOUQ2UQ22UOUQ2UQ22UOUQ2UQ22P!)rN�A/br.z///a�//a)rr�rir�s& r�
test_eq_posix�PurePathTest.test_eq_posix�sS���H�H�����A�e�H�a��h�/�����4��!�F�)�,����A�d�G�Q�u�X�.rc�
�UOoUOUOUQ22Q2UOUOUQ22Q2UOUOUQ22Q2P!)r�zfile:///z/a/b.cz
file:///a/b.cz/a/b%#czfile:///a/b%25%23c)rrir7r�s& r�test_as_uri_posix�PurePathTest.test_as_uri_posix�sc���H�H��������q��v�.�
�;�������q��{�3�_�E�������q��|�4�6J�Krc	�.�]QHGoUOo[OQ2UOUOUQ22QU[OQ22*2P![
cSO
Q2Khh9h)r��quote_from_bytes�éz1\xe9 cannot be encoded to the filesystem encodingu/a/bézfile:///a/b)	�urllib.parser�rr�r�UnicodeEncodeErrorrWrir7)rr�rns&  r�test_as_uri_non_ascii�"PurePathTest.test_as_uri_non_ascii�sw��1��H�H��	P��K�K���	
������q��}�5�&�)9�"�+�+�f�:M�)N�N�	P��"�	P��M�M�N�O�	P�s�A5�5	B�?B�Bc��UOoUQQQ2oU[OQ22oUOV#2P!)rxrRr��c:\a\b)rr6r�ri)rrnr[r�s&   r�test_parse_windows_path�$PurePathTest.test_parse_windows_path�s<���H�H��
�d�C����
�w�&�&�z�2�
3������rr�ry�c:/arKr�c�>�UOUO2P!r)r%�windows_equivalencesr:s&r�test_equivalences_windows�&PurePathTest.test_equivalences_windows�s�����t�8�8�9rc�p�UOoUQQP,2UQQQ,2UQPQ,2UQQPQ,2UQQQQ,2UQPQQ,2UQQ	P,2UQ
QP,2UQQ
P,2UQQQ,2UQQQ,2UQQQQ,2UQQQ,QAN2UQQQQ,2UQQP,2UQQQ,2UQQQQ,2UQQP,2UQQ P,2UQ!Q"P,2UQ#Q$P,2UQ%Q&P,2UQ'Q(P,2UQ)Q*Q,2UQ+Q*Q,2UQ,Q*QQ,2UQ-Q.Q,2UQ/Q0Q,2UQ1Q2P,2UQ3Q4Q,2UQ5Q6P,2UQ7PPQ8,2UQ9PPQ9,2UQ:Q;PQ8,2UQ<Q;QQ8,2UQ=Q>PQQ?,2UQ@Q>QQQ?,2P!)BrxrHrXr�ryrRr�r.rSz\\r�z\\az//a/z\\a\r�rJrKr�r�zZ://b//c/d/zZ:r�z//b/c//dz\\b\cz//./c:z\\.\c:z//?/c:/z\\?\c:z//?/c:/az//?z\\?z//?/z\\?\z//?/UNCz\\?\UNC�//?/UNC/z\\?\UNC\z	//?/UNC/bz	\\?\UNC\bz
//?/UNC/b/z
\\?\UNC\b\z//?/UNC/b/cz\\?\UNC\b\cz//?/UNC/b/c/z
//?/UNC/b/c/dz//./BootPartition/z\\.\BootPartitionz//?/BootPartition/z\\?\BootPartitionz//./PhysicalDrive0z\\.\PhysicalDrive0z
//?/Volume{}/z\\?\Volume{}z//./nulz\\.\nulz./c:szc:szcc:szC:c:szC:zC:/c:szD:a/c:bzD:zc:bzD:/a/c:b)r�r�r�r�r�s& r�test_parse_path_windows�$PurePathTest.test_parse_path_windows�s<���&�&��
�d�T�2�r�2�
�e�T�4��4�
�c�R��r�2�
�e�T�2��u�5�
�f�T�4�#��7�
�d�R���u�5�
�d�V�R��4�
�e�W�b�"�5�
�f�Y��B�7�
�g�Z��r�:�
�h�Z��r�:�
�i�Z���u�=�
�m�T�4��A�
�j�Z���u�=�
�h�[�"�b�9�
�i�[�$��;�
�j�[�$���>�
�e�W�b�"�5�
�f�Y��B�7�
�i�\�2�r�:�
�j�^�R��<�
�k�_�b�"�=�
�l�%6��B�?�
�m�%7��r�B�
�n�%7��r�B�
�o�%7���u�E�
�"�%;�T�2�F�
�"�%;�T�2�F�
�"�%<�b�"�E�
�o�%6��b�A�
�i�\�2�r�:�
�g�R��e�W�5�
�f�R��f�X�6�
�g�T�2��w�7�
�h�T�4�%��9�
�i�T�2��U�|�<�
�j�T�4�#�u��>rc�@�UOoUOUQ2UQ22UOUQ2UQQQ22UOUQ2UQ22UOUQ2UQ22UOUQ2UQ22UOUQ2UQ22UOUQ	2UQ
22UOUQ2UQ22UOUQ
2UQ22P!)rGrxrRr�zd:a/b�c:/a/br�za/Br��C:a/B�c:A/b�//Some/SHARE/a/Bz//somE/share/A/buİui̇)rrir�r�s& r�test_eq_windows�PurePathTest.test_eq_windows�s����H�H������7��Q�w�Z�0�����7��Q�t�S�#�%6�7����A�g�J��'�
�3����A�g�J��(��4����A�f�I�q��{�3�����5��1�U�8�,�����7��Q�w�Z�0�����-�.��2D�0E�F�����8��a�	�l�3rc��UOoUO[29^tt^2UOUQ22PPP2UO[29^tt^2UOUQ22PPP2UO	UOUQ22Q2UO	UOUQ22Q2UO	UOUQ22Q2UO	UOUQ22Q	2UO	UOUQ
22Q2]QHGoU[O[22oUO	UOUQ
[*22QU*2UO	UOUQ[*22QU*2P!)%fhCK�9h)%fhCK�9h)r�rGrHzfile:///c:/zc:/a/b.czfile:///c:/a/b.cz	c:/a/b%#czfile:///c:/a/b%25%23cz
//some/share/zfile://some/share/z//some/share/a/b.czfile://some/share/a/b.cr�r�zfile:///c:/a/bz//some/share/a/b%#czfile://some/share/a/b%25%23c)
rr�r:r7rir�r�r�rr)rrnr��QUOTED_FS_NONASCIIs&   r�test_as_uri_windows� PurePathTest.test_as_uri_windows�s{���H�H��
�
�
�z�
*�
*��M�M�!�F�)�$�+�
�
�
�z�
*�
*��M�M�!�G�*�%�+�������q��x�0�-�@�������q��}�5�7I�J�������q��~�6�8O�P�������q��'9�:�<P�Q�������q�)=�'>�?�2�	4�	2�-�b�k�k�+�.F�G��������q��K�)?�'@�A�)�,>�>�	@�������q�)>��)L�'M�N�7�:L�L�	N�+�
*�
*��
*�
*�
*�s#�G%�(G9�%G6	�.G6	�9H
	�H
	c�&`�U1QkoROoUQ2oUQ2oUV42ROV462ROV46�2UQ2oUQ2oUV42ROV462ROV46�2P!)c�N:�ROV2ROV2P!r)�assertLessEqual�assertGreaterEqualr+s&&�r�assertOrderedEqual�>PurePathTest.test_ordering_windows.<locals>.assertOrderedEquals���� � ��&��#�#�A�)rr�r�z//some/Share/A/br�)rr|)rr�rnr[r�sf    r�test_ordering_windows�"PurePathTest.test_ordering_windows
s����	*�
�H�H��
�g�J��
�g�J���1� �������������
� �!��
� �!���1� ������������rc�p�UOoUOUP2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22P!)rsrRr�r�r.�/a/b/r�r��rr|�is_absoluter~r�s& r�test_is_absolute_posix�#PurePathTest.test_is_absolute_posixs����H�H������2��*�*�,�-�����3��+�+�-�.�����6��.�.�0�1�����#��*�*�,�-�����$��+�+�-�.�����'�
�.�.�0�1�����%��,�,�.�/�����'�
�.�.�0�1rc���UOoUOU2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ	2O22UOUQ
2O22UOUQ2O22UOUQ2O22UOUQ
2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22UOUQ2O22P!)rRr�r�r.r�rxryzc:a/b/rHr�rIrSr�r�rKr�r�r�z//?/UNC/spamr�r�s& r�test_is_absolute_windows�%PurePathTest.test_is_absolute_windows+s���H�H���������*�+�����3��+�+�-�.�����6��.�.�0�1�����3��+�+�-�.�����4��,�,�.�/�����7��/�/�1�2�����4��,�,�.�/�����5��-�-�/�0�����8��0�0�2�3�����%��,�,�.�/�����&�	�-�-�/�0�����)��0�0�2�3�����$��+�+�-�.�����%��,�,�.�/�����'�
�.�.�0�1�����(��/�/�1�2�����)��0�0�2�3�����+��2�2�4�5�����*�
�1�1�3�4�����.�)�5�5�7�8rc�:�UOoUQ2oUO[UO2UO[UOQ2UO	UOUP22UQ22UO	UOP2UQ22UO	UOUQ22UQ22UO	UOQ2UQ22UO	UOQ2UQ22UO	UOUQ22UP22UO	UOQ2UP22UO	UOUP2P	Q5UQ22UO	UOPP	Q5UQ22UO	UOUQ2P	Q5UQ22UO	UOQP	Q5UQ22UO	UOQP	Q5UQ22UO	UOUQ2P	Q5UP22UO	UOQP	Q5UP22UO	UOUQ2P	Q5UQ22UO	UOQP	Q5UQ22UO	UOUQ2P	Q5UQ	22UO	UOQP	Q5UQ	22UO	UOUQ
2P	Q5UQ22UO	UOQ
P	Q5UQ22UO[
UOUQ
22UO[
UOUQ22UO[
UOUQ22UO[
UOUQ22UO[
UOUQ
22UO[
UOUQ22UO[
UOUQ22UO[
UOUQ2P	Q5UO[
UOUQ2P	Q5UO[
UOUQ
2P	Q5UO[
UOUQ2P	Q5UO[
UOUQ2P	Q5UQ2oUO	UOUQ22UQ22UO	UOQ2UQ22UO	UOUQ22UQ22UO	UOQ2UQ22UO	UOQ2UQ22UO	UOUQ22UP22UO	UOQ2UP22UO	UOUQ2P	Q5UQ22UO	UOQP	Q5UQ22UO	UOUQ2P	Q5UQ22UO	UOQP	Q5UQ22UO	UOQP	Q5UQ22UO	UOUQ2P	Q5UP22UO	UOQP	Q5UP22UO	UOUQ2P	Q5UQ22UO	UOQP	Q5UQ22UO	UOUQ2P	Q5UQ	22UO	UOQP	Q5UQ	22UO	UOUQ2P	Q5UQ22UO	UOQP	Q5UQ22UO[
UOUQ22UO[
UOUQ22UO[
UOUQ22UO[
UOUP22UO[
UOP2UO[
UOUQ22UO[
UOUQ
22UO[
UOUQ22UO[
UOUQ22UO[
UOUP2P	Q5UO[
UOUQ2P	Q5UO[
UOUQ
2P	Q5UO[
UOUQ2P	Q5UO[
UOUQ2P	Q5P!)rNr�rRr�r���walk_up�a/cz../br��..r�z../a/br.z../aza/..z/a/..r�r��/a/�/a/cr��/c)rr�r�rrir:r�s&  r�test_relative_to_common�$PurePathTest.test_relative_to_commonEsQ���H�H��
�e�H�����)�Q�]�]�3����)�Q�]�]�D�9�������q��u�-�q��x�8�������r�*�A�e�H�5�������q��v�.��#��7�������s�+�Q�s�V�4�������t�,�a��f�5�������q��x�0�!�B�%�8�������u�-�q��u�5�������q��u�d��;�Q�u�X�F�������r�4��8�!�E�(�C�������q��v�t��<�a��f�E�������s�D��9�1�S�6�B�������t�T��:�A�c�F�C�������q��x���>��"��F�������u�d��;�Q�r�U�C�������q��x���>��&�	�J�������u�d��;�Q�v�Y�G�������q��z�4��@�!�D�'�J�������w���=�q��w�G�������q��v�t��<�a��k�J�������s�D��9�1�X�;�G����*�a�m�m�Q�s�V�<����*�a�m�m�Q�w�Z�@����*�a�m�m�Q�u�X�>����*�a�m�m�Q�t�W�=����*�a�m�m�Q�v�Y�?����*�a�m�m�Q�v�Y�?����*�a�m�m�Q�w�Z�@����*�a�m�m�Q�s�V�T��J����*�a�m�m�Q�t�W�d��K����*�a�m�m�Q�v�Y���M����*�a�m�m�Q�v�Y���M����*�a�m�m�Q�w�Z���N�
�f�I��������q��v�.��%��9�������s�+�Q�u�X�6�������q��w�/��3��8�������t�,�a��f�5�������u�-�q��v�6�������q��y�1�1�R�5�9�������v�.��"��6�������q��v�t��<�a��h�G�������s�D��9�1�U�8�D�������q��w���=�q��v�F�������t�T��:�A�c�F�C�������u�d��;�Q�s�V�D�������q��y�$��?��2��G�������v�t��<�a��e�D�������q��y�$��?��6��K�������v�t��<�a��i�H�������q��{�D��A�1�T�7�K�������x���>��$��H�������q��w���=�q��{�K�������t�T��:�A�h�K�H����*�a�m�m�Q�t�W�=����*�a�m�m�Q�x�[�A����*�a�m�m�Q�v�Y�?����*�a�m�m�Q�r�U�;����*�a�m�m�R�8����*�a�m�m�Q�s�V�<����*�a�m�m�Q�v�Y�?����*�a�m�m�Q�v�Y�?����*�a�m�m�Q�w�Z�@����*�a�m�m�Q�r�U�D��I����*�a�m�m�Q�s�V�T��J����*�a�m�m�Q�v�Y���M����*�a�m�m�Q�v�Y���M����*�a�m�m�Q�w�Z���Nrc���UOoUQ2oUOUOUQ22UQ22UOUOQ2UQ22UOUOUQ22UQ22UOUOQ2UQ22UOUOQ2UQ22UOUOUQ22U22UOUOQ2U22UOUOUQ2P	Q5UQ22UOUOQP	Q5UQ22UOUOUQ2P	Q5UQ22UOUOQP	Q5UQ22UOUOQP	Q5UQ22UOUOUQ2P	Q5U22UOUOQP	Q5U22UOUOUQ2P	Q5UQ	22UOUOUQ
2P	Q5UQ22UOUOUQ2P	Q5UQ
22UO[UOU22UO[UOP2UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOUQ
22UO[UOU2P	Q5UO[UOPP	Q5UO[UOUQ2P	Q5UO[UOUQ2P	Q5UO[UOUQ2P	Q5UO[UOUQ2P	Q5UO[UOUQ2P	Q5UQ2oUOUOUQ22UQ22UOUOQ2UQ22UOUOUQ22UQ22UOUOQ2UQ22UOUOQ2UQ22UOUOUQ22U22UOUOQ2U22UOUOUQ2P	Q5UQ22UOUOQP	Q5UQ22UOUOUQ2P	Q5UQ22UOUOQP	Q5UQ22UOUOQP	Q5UQ22UOUOUQ2P	Q5U22UOUOQP	Q5U22UOUOQP	Q5UQ22UOUOQP	Q5UQ	22UOUOQP	Q5UQ22UO[UOQ2UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOUQ22UO[UOQP	Q5UO[UOUQ2P	Q5UO[UOUQ2P	Q5UO[UOUQ2P	Q5UO[UOUQ2P	Q5UO[UOUQ2P	Q5UO[UOUQ2P	Q5UO[UOUQ2P	Q5UQ2oUOUOUQ 22UQ22UOUOQ 2UQ22UOUOQ!2UQ22UOUOUQ"22UQ22UOUOQ"2UQ22UOUOQ#2UQ22UOUOUQ$22U22UOUOQ$2U22UOUOUQ 2P	Q5UQ22UOUOQ P	Q5UQ22UOUOQ!P	Q5UQ22UOUOUQ"2P	Q5UQ22UOUOQ"P	Q5UQ22UOUOQ#P	Q5UQ22UOUOUQ$2P	Q5U22UOUOQ$P	Q5U22UOUOUQ%2P	Q5UQ22UOUOQ%P	Q5UQ22UO[UOUQ&22UO[UOUQ'22UO[UOUQ(22UO[UOUQ)22UO[UOUQ&2P	Q5UO[UOUQ'2P	Q5UO[UOUQ(2P	Q5UO[UOUQ)2P	Q5P!)*�	C:Foo/BarrxzFoo/Bar�c:foO�Bar�c:foO/�	c:foO/baRr��
C:Foo/Bar/Bazr��	C:Foo/Bazz../Barz	C:Baz/Barz
../../Foo/Barrdr��Foo�/Foo�C:/Foo�
C:/Foo/BarrH�c:/foO�c:/foO/�
c:/foO/baR�C:/Bazz
../Foo/Bar�C:/Foo/Bar/Baz�
C:/Foo/Baz�C:Foo�d:/�//C/Foo�//Server/Share/Foo/Bar�//sErver/sHare�//sErver/sHare/�//sErver/sHare/Foo�//sErver/sHare/Foo/�//sErver/sHare/Foo/Barz//sErver/sHare/bar�/Server/Share/Foo�c:/Server/Share/Foo�
//z/Share/Foo�//Server/z/Foo)rrirr�r:r�s&  r�test_relative_to_windows�%PurePathTest.test_relative_to_windows�s����H�H��
�k�N��������q��w�/��9��>�������t�,�a�	�l�;�������q��z�2�A�e�H�=�������w�/��5��:�������x�0�!�E�(�;�������q��~�6���<�������{�3�Q�S�9�������q��w���=�q��|�L�������t�T��:�A�i�L�I�������q��z�4��@�!�E�(�K�������w���=�q��x�H�������x���>��%��I�������q��~�t��D�a�c�J�������{�D��A�1�3�G�������q��'9�4��H�!�D�'�R�������q��~�t��D�a��k�R�������q��~�t��D�a��FX�Y����*�a�m�m�Q�S�9����*�a�m�m�R�8����*�a�m�m�Q�t�W�=����*�a�m�m�Q�s�V�<����*�a�m�m�Q�u�X�>����*�a�m�m�Q�v�Y�?����*�a�m�m�Q�x�[�A����*�a�m�m�Q��5G�H����*�a�m�m�Q�{�^�D����*�a�m�m�Q�S�$��G����*�a�m�m�R���F����*�a�m�m�Q�t�W�d��K����*�a�m�m�Q�s�V�T��J����*�a�m�m�Q�u�X�t��L����*�a�m�m�Q�v�Y���M����*�a�m�m�Q�x�[�$��O�
�l�O��������q��x�0�!�I�,�?�������u�-�q��|�<�������q��{�3�Q�u�X�>�������x�0�!�E�(�;�������y�1�1�U�8�<�������q���7���=�������|�4�a�c�:�������q��x���>��)��M�������u�d��;�Q�y�\�J�������q��{�D��A�1�U�8�L�������x���>��%��I�������y�$��?��5��J�������q�����E�q�s�K�������|�T��B�A�C�H�������x���>��,��P�������'7���F��$��P�������|�T��B�A�h�K�P����*�a�m�m�T�:����*�a�m�m�Q�t�W�=����*�a�m�m�Q�x�[�A����*�a�m�m�Q�7G�5H�I����*�a�m�m�Q�|�_�E����*�a�m�m�Q�w�Z�@����*�a�m�m�Q�t�W�=����*�a�m�m�Q�u�X�>����*�a�m�m�Q�s�V�<����*�a�m�m�Q�v�Y�?����*�a�m�m�Q�y�\�B����*�a�m�m�T�4��H����*�a�m�m�Q�t�W�d��K����*�a�m�m�Q�w�Z���N����*�a�m�m�Q�t�W�d��K����*�a�m�m�Q�u�X�t��L����*�a�m�m�Q�s�V�T��J����*�a�m�m�Q�v�Y���M����*�a�m�m�Q�y�\�4��P�
�&�'��������q�)9�':�;�Q�y�\�J�������'7�8�!�I�,�G�������'8�9�1�Y�<�H�������q�)=�'>�?��5��J�������';�<�a��h�G�������'<�=�q��x�H�������q�)A�'B�C�Q�S�I�������'?�@�!�#�F�������q�)9�':�D��I�1�Y�<�X�������'7���F��)��U�������'8�$��G��9��V�������q�)=�'>���M�q�QV�x�X�������';�T��J�A�e�H�U�������'<�d��K�Q�u�X�V�������q�)A�'B�D��Q�ST�SV�W�������'?���N�PQ�PS�T�������q�)=�'>���M�q�Q]��_�������';�T��J�A�l�O�\����*�a�m�m�Q�7J�5K�L����*�a�m�m�Q�7L�5M�N����*�a�m�m�Q��5G�H����*�a�m�m�Q�7G�5H�I����*�a�m�m�Q�7J�5K�UY��Z����*�a�m�m�Q�7L�5M�W[��\����*�a�m�m�Q��5G�QU��V����*�a�m�m�Q�7G�5H�RV��Wrc�6�UOoUQ2oUO[UO2UO[UOQ2UO	UOUP222UO	UOP22UO	UOUQ222UO	UOQ22UO	UOUQ222UO	UOQ22UOUOUQ222UOUOUQ222UOUOUQ222UOUOUQ222UQ2oUO	UOUQ	222UO	UOQ	22UO	UOUQ222UO	UOQ22UO	UOQ
22UO	UOUQ222UO	UOQ22UOUOUQ222UOUOUQ222UOUOUQ
222UOUOUP222UOUOP22UOUOUQ222P!)rNr�rRr�r�r�r�r.r�r�r�r�r�r�)rr�r��is_relative_tor~r|r�s&  r�test_is_relative_to_common�'PurePathTest.test_is_relative_to_common�s����H�H��
�e�H�����)�Q�%5�%5�6����)�Q�%5�%5�t�<�����(�(��2��/�0�����(�(��,�-�����(�(��3��0�1�����(�(��.�/�����(�(��5��2�3�����(�(��/�0�����)�)�!�C�&�1�2�����)�)�!�G�*�5�6�����)�)�!�E�(�3�4�����)�)�!�D�'�2�3�
�f�I������(�(��3��0�1�����(�(��-�.�����(�(��4��1�2�����(�(��.�/�����(�(��/�0�����(�(��6��3�4�����(�(��0�1�����)�)�!�D�'�2�3�����)�)�!�H�+�6�7�����)�)�!�F�)�4�5�����)�)�!�B�%�0�1�����)�)�"�-�.�����)�)�!�C�&�1�2rc�v�UOoUQ2oUOUOUQ222UOUOQ22UOUOUQ222UOUOQ22UOUOQ22UOUOUQ222UOUOQ22UOUOU222UOUOP22UOUOUQ222UOUOUQ222UOUOUQ222UOUOUQ222UOUOUQ	222UOUOUQ
222UOUOUQ222UQ2oUOUOUQ
222UOUOUQ222UOUOQ22UOUOUQ222UOUOQ22UOUOQ22UOUOUQ222UOUOUQ222UOUOUQ222UOUOUQ222UOUOUQ222UOUOUQ222UOUOUQ222UOUOUQ222UOUOUQ222UQ2oUOUOUQ222UOUOQ22UOUOQ22UOUOUQ222UOUOQ22UOUOQ22UOUOUQ222UOUOQ22UOUOUQ222UOUOUQ222UOUOUQ222UOUOUQ 222P!)!r�rxr�r�r�rdr�r�r�r�r�r�r�rHr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�)rr~r�r|r�s&  r�test_is_relative_to_windows�(PurePathTest.test_is_relative_to_windowss����H�H��
�k�N������(�(��4��1�2�����(�(��.�/�����(�(��7��4�5�����(�(��1�2�����(�(��2�3�����(�(��;��8�9�����(�(��5�6�����)�)�!�#�.�/�����)�)�"�-�.�����)�)�!�D�'�2�3�����)�)�!�C�&�1�2�����)�)�!�E�(�3�4�����)�)�!�F�)�4�5�����)�)�!�H�+�6�7�����)�)�!�O�*<�=�>�����)�)�!�K�.�9�:�
�l�O������(�(��5��2�3�����(�(��8��5�6�����(�(��3�4�����(�(��<��9�:�����(�(��6�7�����)�)�$�/�0�����)�)�!�H�+�6�7�����)�)�!�,<�*=�>�?�����)�)�!�L�/�:�;�����)�)�!�G�*�5�6�����)�)�!�D�'�2�3�����)�)�!�E�(�3�4�����)�)�!�C�&�1�2�����)�)�!�F�)�4�5�����)�)�!�I�,�7�8�
�&�'������(�(��+;�)<�=�>�����(�(�)9�:�;�����(�(�):�;�<�����(�(��+?�)@�A�B�����(�(�)=�>�?�����(�(�)>�?�@�����(�(��+C�)D�E�F�����(�(�)A�B�C�����)�)�!�,?�*@�A�B�����)�)�!�,A�*B�C�D�����)�)�!�O�*<�=�>�����)�)�!�,<�*=�>�?r)rYrUrX)
)rRr�)r�r�)rRr�)r�r�)r�)za//b)za//b//)rsrRr�)rRrsr�)rRr�rs))rR�/b/cr�)r.rr�)r�r�rszc/d)r�rszb/c/d)rsrOr)r�))rxrR)rxr�)rQrxrR))rHrR)rxr�rR)rxr.)z/zrHrR)z//x/yrHrR)r�)r�r�)rKr�)Rr(r=r>r?r6r�rr�r��realpathr
�baserr\rprur.r|r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr	rrrr%r/r7r;r?rDrLrPr+rUrYr\r`rhrkrnrqrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr@rArBs@rrMrM[s9����
�
�
�C��7�7���F�#�D�
	��	���L�	)�
+�-��
>��
>�B�1��
3��
3�)�*�"�
�4��;��;�/�/�"$�(�
(�
6�8�
<�0�%�2	�=�
=�&�6�(�8!��	-�*��	/��	/�.��0��0��4��4�0�*�
�	F��	F�?��	D��	D�?�V�9�
+.�Z�2��2��@��@�6�
+��
+��/��/��L��L��P��P�� �� �	�:��
�>���	�J�.���O�����:��:��.?��.?�`�4��4��N��N�(� �� �"�	2��	2��9��9�2IO�V�gX��gX�R3�@�3@��3@rrMc�0�\sQsQs\O
sQsP!)�PurePosixPathTestiQr#)r(r=r>r?r6r�rr@r#rrrrQs
��
�
�
�Crrc�0�\sQsQs\O
sQsP!)�PureWindowsPathTestiUr#)r(r=r>r?r6r�rr@r#rrr
r
Us
��
�
!�
!�Crr
c�F�\sQsQsQQ\O
2sPsQsP!)�PurePathSubclassTestiYc��\sQsQsQsP!)�PurePathSubclassTest.clsiZr#rar#rrrrZ���rrr#)	r(r=r>r?r6r�rr?r@r#rrrrYs��
�g���
� �rrc��``�\sQsQsnQs\Os\O2s	U1Qks
QsQsQs
QsQsQ	sQ
sQsQsQ
sQs\O.\PIQQ5Q2s\O.\Q2Q2sQsQsQsQs\ Q2s!\ Q2s"\OFQ2s$\ Q2s%\ Q2s&\ Q2s'\ Q2s(\ Q2s)\ Q 2s*\ Q!2s+\ Q"2s,\ Q#2s-\ Q$2s.\ Q%2s/\ Q&2s0Q's1\O.\2OfQ(6H9%f\2OfQ)6HQ*2\4Q+22s5Q,s6\OFQ-2s7\ Q.2s8\ Q/2s9\ Q02s:\ Q12s;\ Q22s<Q3s=\>Q42s?Q5s@\>Q62sAQ7sB\>Q82sCQ9sDQ:sE\>Q;2sFQ<sG\>Q=2sHQ>sIQ?sJ\>Q@2sK\>\ QA22sL\>\ QB22sM\>\ QC22sN\>\ QD22sO\>\ QE22sPQFsQ\>QG2sRQHsS\>QI2sT\ QJ2sU\ QK2sV\ QL2sWQMsXQ�QNksY\Y9sZs[\ QO2s\\ QP2s]QQs^\_\ QR22s`QSsa\ QT2sb\O.\c\dQU2QV2QW2se\O�QX2sg\_\O�QY22shQZsi\O�\Q[2Q\2sk\O�\Q[2\lQ]22smQ^sn\O�\oQ_2Q`2sp\O�\oQ_2\lQa22sqQbsrQcssQdstQesuQfsvQgsw\ Qh2sx\ Qi2sy\O.\2OfQj*Qk6HQl2\O�\O�Qm222s{\|Qn2s}\|Qo2s~\O�\c\dQp2Qq2\O.\2OfQr6HQs2Qt22sQus�\COQv2s�\O.\c\dQw2Qx2Qy2s�Qzs�Q{s�Q|s�Q}s�Q~s�Qs�Q�s�Q�s�Q�s�\|Q�2s�Q�s�Q�s�Q�s�\O.\�9%f\Q�2\O.\2OfQ�6HQ�2Q�22s�\O.\�9%f\Q�2\O.\2OfQ�6HQ�2Q�22s�\O.\�9%f\Q�2\O.\2OfQ�6HQ�2Q�22s�\O.\�9%f\Q�2\O.\2OfQ�6HQ�2Q�22s�\O.\�9%f\Q�2\O.\2OfQ�6HQ�2Q�22s�\ Q�2s�\O.\c\dQ�2Q�2Q�2s�Q�s�Q�s�Q�s�\ Q�2s�Q�s�Q�s�\ Q�2s�\ Q�2s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�\O�\c\dQp2Q�2\O.\2OfQr6HQs2Q�22s�Q�s�\O�\c\�Q�2Q�2\O.\�Q�2\O.\Q�2Q�222s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�\ Q�2s�\_Q�2s�\|Q�2s�Q�s�Q�s�Q�s�Q�s�Q�s�\ Q�2s�\O.\Q�2Q�2s�Q�s�Q�s�\ Q�2s�\ Q�2s�Q�s�\_Q�2s�\|Q�2s�\ Q�2s�\ Q�2s�\ Q�2s�\_Q�2s�\O.\�Q�2\_Q�22s�\_Q�2s�\O.\�Q�2\_Q�22s�\O�\c\Q�2Q�2\O.\2OfQr6HQ�2\_Q�222s�\O.\2OfQ�6gQ�2\_Q�22s�\_Q�2s�\_Q�2s�\|Q�2s�\|Q�2s�\|Q�2s�\|Q�2s�\|Q�2s�\|Q�2s�Q�s�Us�U9s�!)��PathTestiez?Tests for the FS-accessing functionalities of the Path classes.c��:�UO2OQ2P*oU[7c$UO%fUO	Q2[
RU_2[OUO2[O[OOUOQ22[O[OOUOQ22[O[OOUOQ22[O[OOUOQQ22[O[OOUOQ22[[OOUOQ2Q29^tt^2oUOQ	2PPP2[[OOUOQQ
2Q29^tt^2oUOQ2PPP2[[OOUOQQ2Q29^tt^2oUOQ
2PPP2[[OOUOQQ2Q29^tt^2oUOQ2PPP2[[OOUOQQQ2Q29^tt^2oUOQ2PPP2[O[OOUOQ2]2UO%Cc�[OQ[OOUOQ22[OQ[OOUOQ22[OQ[OOUOQ2P	Q5[O[OOQQ2[OOUOQQ2P	Q5[O[OOQQ2[OOUOQQ2P	Q5[OQ[OOUOQ22P!P!)%fhCK�9h)%fhCK?9h)%fhCK�9h)%fhCK�9h)%fhCKu9h)rQ�requires symlinks�dirA�dirB�dirC�dirD�dirE�fileA�wbsthis is file A
�fileBsthis is file B
�fileCsthis is file C
�	novel.txtsthis is a novel
�fileDsthis is file D
�linkA�non-existing�
brokenLink�linkB��target_is_directoryr��linkC�linkD�brokenLinkLoop)rSrTr0�can_symlinkrW�superr\r��mkdirrr��join�open�write�chmod�symlink)rrZ�fr�s&  �rr\�PathTest.setUpjsm����w�w�y���s�#�B�'���*�*�4�3C�3C�3C��M�M�-�.�
��
��
�������
��������d�i�i��0�1�
��������d�i�i��0�1�
��������d�i�i��0�1�
��������d�i�i���8�9�
��������d�i�i��0�1�
�"�'�'�,�,�t�y�y�'�2�D�
9�
9�Q�
�G�G�'�(�:�
�"�'�'�,�,�t�y�y�&�'�:�D�
A�
A�Q�
�G�G�'�(�B�
�"�'�'�,�,�t�y�y�&�'�:�D�
A�
A�Q�
�G�G�'�(�B�
�"�'�'�,�,�t�y�y�&�+�>��
E�
E��
�G�G�(�)�F�
�"�'�'�,�,�t�y�y�&�&�'�B�D�
I�
I�Q�
�G�G�'�(�J�
��������d�i�i��0�!�4������J�J�w������T�Y�Y�� @�A��J�J�~�r�w�w�|�|�D�I�I�|�'L�M��J�J�v��w�w�|�|�D�I�I�w�7�+/�
1�
�J�J�r�w�w�|�|�D�&�1��w�w�|�|�D�I�I�v�w�?�+/�
1�
�J�J�r�w�w�|�|�D�&�1��w�w�|�|�D�I�I�v�w�?�+/�
1�
�J�J�'������d�i�i�AQ�)R�S��:�
9�
9��
A�
A�
A��
A�
A�
A��
E�
E�
E��
I�
I�
I�sZ�8V�V�&V+�=V?�W�V	�V	�V(	� V(	�+V<	�4V<	�?W	�W	�W$	�W$	c���[O[OOUOQ2Q2[
OUO2P!)r�)r�r.r�r+rr
�rmtreer:s&r�tearDown�PathTest.tearDown�s5��
��������d�i�i��0�%�8�������#rc���UO[29^tt^2oUU-U@PPP2UOWOO[O
2P!)%fhKF9hr)r��FileNotFoundErrorri�	exceptionr�ENOENT)r�funcrm�kwargs�cms&&*, r�assertFileNotFound�PathTest.assertFileNotFound�sO��
�
�
�0�
1�
1�R��$�!�&�!�2�������+�+�U�\�\�:�2�
1�s�
A'�'A7	�0A7	c�p�UOOoUOUU2UU22P!r)rU�normcaseri)r�path_a�path_brAs&&& r�assertEqualNormCase�PathTest.assertEqualNormCase�s+���;�;�'�'������&�)�8�F�+;�<rc���[O[OQ[O
2Q52oUO
[OU2U!)z-dirD)�suffix�dir)r
�	_longpath�tempfile�mkdtempr��getcwd�
addCleanupr4)rr�s& r�tempdir�PathTest.tempdir�sE������ 0� 0��57�Y�Y�[�!B�
C�����	�(�(�!�,��rc�|�[[OO2Tt.tFDp]*Q6wfJUjJ	ooSFDloUQ6XcJ[	UO
U2o[	[OOU2oUO
UOUO2Jn	P!ttoh)r�_rU)rHr6�types�
_WritablePath�getattrrri�__doc__)rrZ�
path_names�	attr_name�our_attr�	path_attrs&     r�$test_matches_writablepath_docstrings�-PathTest.test_matches_writablepath_docstrings�s���'*�7�=�=�+F�+F�'G�Z�'G�t�PQ�7�VY�>�d�d�'G�
�Z�#�I��H�$���t�x�x��3�H���
�
� ;� ;�Y�G�I����X�-�-�y�/@�/@�A�$��[s
�B9�B9c� �UO[OIc7[OQ6Xc[O
L[OoLUOoUOQ2oUO[U2U2P!r�)	rr6r3r�rZ�WindowsPath�	PosixPathrkrlr�s&  rr��PathTest.test_concrete_class�sW���8�8�w�|�|�#�.0�g�g��o�w�*�*�7�CT�CT�H��x�x�H��H�H�S�M���
�
�d�1�g�x�(rc���UOO[OIcUO	Q2P!UO[OUO2P!)zpath parser is supported)rrUr�r�rWr�r6r7r:s&r�test_unsupported_parser� PathTest.test_unsupported_parser�s=���8�8�?�?�b�g�g�%��M�M�4�5����g�:�:�D�H�H�Erc�@�UO[O22oUOV2UO	[U2[U22UO
[U2[U22UOUO22P!r)
rr�rLrirDrhrkrlr~r�r�s&& r�	_test_cwd�PathTest._test_cwd�sd���H�H�R�Y�Y�[�!�������� � ��Q���Q��0��
�
�d�1�g�t�A�w�'�����
�
��(rc�^�UOO2oUOU2P!r)r�cwdrdr�s& r�test_cwd�PathTest.test_cwd�s���H�H�L�L�N�����q�rc��UOo[OQ29^tt^2oUOUmUO[
U2O22UO2UO[
UQ2O22UO2UO[
UQ2O22[OOUOQ22UO[
UQQQ2O22[OOUOQQQ22UO[
UQQ2O22[OOUOQQ22UO[
UQ2O22[OOUOQ22UO[
UQ2O22[OOUOQ22UO[
UQ	2O22[OOUOQ	22UO[
UQQ	2O22[OOUOQQ	22UO[
UQ	Q2O22[OOUOQ	Q22PPP2P!)%fhP!9h)
�	os.getcwdrQrRr�r�r"rr!r'r�)rr�patchr�return_valuerirh�absoluter�r�r+)rrnrLs&  r�test_absolute_common�PathTest.test_absolute_common�sK���H�H��
�Z�Z��
$�
$��"&�)�)�F��
���S������0�$�)�)�<����S��3����!2�3�T�Y�Y�?����S��3����!2�3�R�W�W�\�\�$�)�)�S�5Q�R����S��3��S�!1�!:�!:�!<�=�r�w�w�|�|�D�I�I�WZ�\_�ad�?e�f�
���S��7�G�!4�!=�!=�!?�@�"�'�'�,�,�t�y�y�Za�cj�Bk�l����S��<��!9�!9�!;�<�b�g�g�l�l�4�9�9�Vb�>c�d����S��#3�!4�!=�!=�!?�@�"�'�'�,�,�t�y�y�Zj�Bk�l�
���S��4��!1�!1�!3�4�b�g�g�l�l�4�9�9�d�6S�T����S��3���!6�!6�!8�9�2�7�7�<�<��	�	�SV�X\�;]�^����S��4���!6�!6�!8�9�2�7�7�<�<��	�	�SW�Y\�;]�^�#%�
$�
$�
$�s�MM;�;N	�N	c�T�UO[OOQ22oUO	V2UO[
U2[
U22UO[U2[U22UOUO22P!)�~)rr�r��
expanduserrirDrhrkrlr~r�r�s&& r�
_test_home�PathTest._test_home�sm���H�H�R�W�W�'�'��,�-�������� � ��Q���Q��0��
�
�d�1�g�t�A�w�'�����
�
��(rz(Test requires pwd module to get homedir.)�reasonc�F�[O29^tt^2oUOUOO	22UO2[OOUOQ2UQ$UOUOO	22[OOUOQ2UQ$UOUOO	22PPP2P!)%fhP!9h)�userprofile�USERPROFILE�home�HOME)
r
�EnvironmentVarGuardrtrrz�clearr�r�r+r)r�envs& r�	test_home�PathTest.test_home�s����
*�
*�
,�
,���O�O�D�H�H�M�M�O�,��I�I�K�!#�����d�i�i��!G�C�
���O�O�D�H�H�M�M�O�,��'�'�,�,�t�y�y�&�9�C��K��O�O�D�H�H�M�M�O�,�-�
,�
,�
,�s�C&D�D 	�D 	zWASI has no user accounts.c���UOoUQ2oUOUO2U[OOQ222UQ2oUOUO2U2UQ2oUOUO2U2UQ2oUOUO2U2UUP2O2O2Q*oUOUO2U2UQ2oUOUO2U[OOQ2Q22P!)rr�foo�/~�../~z~/a:br�)rrirsr�r�rn�anchorr�s&  r�test_expanduser_common�PathTest.test_expanduser_common�s���H�H��
�c�F����������2�7�7�+=�+=�c�+B�)C�D�
�e�H����������+�
�d�G����������+�
�f�I����������+�
�a��e�n�n��%�%�&��,����������+�
�g�J����������2�7�7�+=�+=�c�+B�G�)L�Mrc��QQUO2oUUO]*Q5oUO]*UO2O2UO]*UO2O2[%f:UO]*UOQ2O2O2UO]*UQ*OUQ*2O2UO]*UQ*OUQ*2O2UO%c2UO]*UQ*O2O2UO2FDoUO]*UO2J!	UOQ2FDoUO]*UO2J!	UOQ2FDoUO]*UO2J!	UO!2FD"vqEoUO]*UO2J$	P!)c�:``�\sQsQsnU1QksQsQsUsU9s!)�&PathTest.test_with_segments.<locals>.Pic�4:�[RU_UVmP!r)r)�__init__�
session_id)rr��pathsegmentsr�s&$*�rr��/PathTest.test_with_segments.<locals>.P.__init__s����� �,�/�",�rc�<�[U2UQUO-!�r�)rlr�)rr�s&*r�
with_segments�4PathTest.test_with_segments.<locals>.P.with_segments
s���D�z�<�L�D�O�O�L�Lrr�)	r(r=r>r?r�r�r@rA�
__classcell__�r�rCs@@rrnr�s����
-�
M�
Mrrnr�rrrrrr�)rrrirnr��resolverr�rs�renamerr(�readlink�iterdirrG�rglob�walk)rrnr[r��dirpath�dirnames�	filenamess&      r�test_with_segments�PathTest.test_with_segmentss���	M����	M�
�d�i�i�B�'������Q�Z�Z�\�4�4�5�����Q�Y�Y�[�3�3�4��w����R�����!5�!@�!@�!B�!M�!M�N�����a�'�k�1�1�!�g�+�>�I�I�J�����a�'�k�2�2�1�w�;�?�J�J�K��������R�!�g�+�!7�!7�!9�!D�!D�E��I�I�K�D����R����1� ��F�F�3�K�D����R����1� ��G�G�C�L�D����R����1�!�,-�F�F�H�(�G�y����R��!3�!3�4�-5rc�L�UOUO2oUQ*OQ29^tt^2oUOU[O
2UO
UO2Q2PPP2UQ*OQ29^tt^2oUOU[O2UO
UO2O2Q2PPP2P!)%fhK�9h)%fhP!9h)rr�zthis is file A
�rb�this is file A)
rrr,r9�io�
TextIOBaseri�read�BufferedIOBase�strip�rr[r0s&  r�test_open_common�PathTest.test_open_commons����H�H�T�Y�Y����'�k�
�
��
$�
$���!�!�!�R�]�]�3����Q�V�V�X�'9�:�%��'�k�
�
��
%�
%���!�!�!�R�%6�%6�7����Q�V�V�X�^�^�-�/@�A�&�
%�%�
$��&�
%�
%�s%�AC?�&AD�?D	�D	�D#	�D#	c�X�UOUO2oUQ*OQ]Q59^tt^2oUOU[O
2UO
UO2O2Q2PPP2P!)%fhP!9h)rr�)�	bufferingr�)	rrr,r9r��	RawIOBaserir�r�r�s&  r�test_open_unbuffered�PathTest.test_open_unbuffered'sq���H�H�T�Y�Y����'�k�
�
���
�
2�
2�a��!�!�!�R�\�\�2����Q�V�V�X�^�^�-�/@�A�3�
2�
2�
2�s�AB�B)	�!B)	c��UOUO2oUQ*o[[Q2%c;[OU[
O[
O*2[[Q2%c<[[
Q2%c&[OU[
O2UO2oUQ*oUOUP	Q5UOUO22UOUO2UO22UO2oUOUO UO 2UOUO"UO"2UOUO$UO$2[UQ2%c)UOUO&UO&2P!P!)rr.�chflags�	UF_NODUMP�copyA��preserve_metadata�st_flags)rr�hasattrr�r.�stat�S_IRWXU�S_IRWXOr�r��copyr~�existsri�	read_textr��st_atime�st_mtime�st_moder��rr�source�	source_str�	target_sts&     r� test_copy_file_preserve_metadata�)PathTest.test_copy_file_preserve_metadata-sU���x�x��	�	�"�������2�w����H�H�V�T�\�\�D�L�L�8�9��2�y�!�!�g�d�K�&@�&@��J�J�v�t�~�~�.��K�K�M�	��������F�d��3�����
�
��(�����)�)�+�V�-=�-=�-?�@��K�K�M�	����Y�/�/��1C�1C�D����Y�/�/��1C�1C�D�����*�*�I�,=�,=�>��9�j�)�)����Y�/�/��1C�1C�D�*rc��UOUO2oUQ*Q*oUQ*oUQ*oUOU2oUOVS2UO	UO22UO	UO
22UO	UO22UOUO
22UOUO2UO22P!)rrrr�	rrr�rir~r��
is_symlinkr|r��rrr�r�real_target�results&     r�"test_copy_file_to_existing_symlink�+PathTest.test_copy_file_to_existing_symlink@s����x�x��	�	�"������(�������W�n�����V�$������(�����
�
��(�����)�)�+�,�����*�*�,�-�����/�/�1�2�����)�)�+�[�-B�-B�-D�Erc��UOUO2oUQ*Q*oUQ*oUQ*oUOUP
Q5oUOVS2UO	UO22UO	UO
22UO	UO22UOUO
22UOUO2UO22P!)rrrr��follow_symlinksr�r�s&     r�8test_copy_file_to_existing_symlink_follow_symlinks_false�APathTest.test_copy_file_to_existing_symlink_follow_symlinks_falseNs����x�x��	�	�"������(�������W�n�����V�U��;������(�����
�
��(�����)�)�+�,�����*�*�,�-�����/�/�1�2�����)�)�+�[�-B�-B�-D�Erc��UOUO2oUQ*o[OUQQ2UQ*oUO	UP	Q5UO[OUQ2Q2P!)r�user.foo�42r�r�)rrr��setxattrr�ri�getxattr�rrr�rs&   r�'test_copy_file_preserve_metadata_xattrs�0PathTest.test_copy_file_preserve_metadata_xattrs\sa���x�x��	�	�"������
���F�K��/��������F�d��3�������V�[�9�5�Arc�~�UOUO2oUQ*oUQ*oUOU2oUOVC2UO	UO22UO
UO22UOUO2UO22P!)rr�)	rrr�rir~r�r|r�r��rrr�rr�s&    r�&test_copy_symlink_follow_symlinks_true�/PathTest.test_copy_symlink_follow_symlinks_truees����x�x��	�	�"�������������V�$������(�����
�
��(�����*�*�,�-�����)�)�+�V�-=�-=�-?�@rc��UOUO2oUQ*oUQ*oUOUP
Q5oUOVC2UO	UO22UO	UO
22UOUO2UO22P!)rr�r��rrr�rir~r�r�r�r�s&    r�'test_copy_symlink_follow_symlinks_false�0PathTest.test_copy_symlink_follow_symlinks_falsep����x�x��	�	�"�������������V�U��;������(�����
�
��(�����)�)�+�,�������*�F�O�O�,=�>rc��UOUO2oUQ*oUO[UOU2P!�r�rrr�rr��rrr�s&  r�test_copy_symlink_to_itself�$PathTest.test_copy_symlink_to_itself{�3���x�x��	�	�"���������'�6�;�;��7rc�J�UOUO2oUQ*oUQ*oUOUQ*2UOUQ*2UO[UO
U2UO[UO
UP
Q5P!��
copySource�
copyTargetrrr��rr�
symlink_tor�rr�r�s&   r�%test_copy_symlink_to_existing_symlink�.PathTest.test_copy_symlink_to_existing_symlink��}���x�x��	�	�"����$����$�����$��.�)����$��-�(����'�6�;�;��7����'�6�;�;����Nrc�J�UOUO2oUQ*oUQ*oUOUQ*2UOUQ*2UO[UO
U2UO[UO
UP
Q5P!r�r�r�s&   r�/test_copy_symlink_to_existing_directory_symlink�8PathTest.test_copy_symlink_to_existing_directory_symlink�r�rc��UOUO2oUQ*oUQ*oUOUP
Q5oUOVC2UO	UO22UO	UO
22UOUO2UO22P!)r"r�r�r�r�s&    r�1test_copy_directory_symlink_follow_symlinks_false�:PathTest.test_copy_directory_symlink_follow_symlinks_false�r�rc���UOUO2oUQ*oUO[UOU2UO[UOUP
Q5P!)r"r�r�r�s&  r�%test_copy_directory_symlink_to_itself�.PathTest.test_copy_directory_symlink_to_itself�sN���x�x��	�	�"���������'�6�;�;��7����'�6�;�;����Nrc�6�UOUO2oUQ*oUQ*Q*oUO[UOU2UO[UOUP
Q5UOUO
22P!)r"�copyBr�)rrr�rr�r|r�r�s&   r�'test_copy_directory_symlink_into_itself�0PathTest.test_copy_directory_symlink_into_itself�sp���x�x��	�	�"���������'�)�����'�6�;�;��7����'�6�;�;����N��������)rc�J�UOUO2oUQ*oUQ*oUOUQ*2UOUQ*2UO[UO
U2UO[UO
UP
Q5P!)r�r�rrr��rrr�r��FileExistsErrorr�r�s&   r�/test_copy_directory_symlink_to_existing_symlink�8PathTest.test_copy_directory_symlink_to_existing_symlink�s~���x�x��	�	�"����$����$�����$��-�(����$��.�)����/�6�;�;��?����/�6�;�;��PU��Vrc�X�UOUO2oUQ*oUQ*oUOUQ*Q*2UOUQ*2UO[UO
U2UO[UO
UP
Q5P!)r�r�rrr�rr�s&   r�9test_copy_directory_symlink_to_existing_directory_symlink�BPathTest.test_copy_directory_symlink_to_existing_directory_symlink�s����x�x��	�	�"����$����$�����$��-�&�0�1����$��-�(����/�6�;�;��?����/�6�;�;��PU��Vrc�6�UOUO2oUQ*oUQ*oUO2UOQ2O	Q2UO[UOU2UQ*oUOUP
Q5oUOVT2UOUOQ2O22UOUOQ2O2UOQ22P!)r�r�link�nonexistent�target2r�)rrr*r�r�r�r8r�rir~r�r�)rrr�rrr�s&     r�test_copy_dangling_symlink�#PathTest.test_copy_dangling_symlink�s����x�x��	�	�"�������������������*�*�=�9����+�V�[�[�&�A���"�����W�e��<������)�����(�(��0�;�;�=�>�����)�)�&�1�:�:�<�d�h�h�}�>U�Vrc�<�UOUO2oUQ*o[[Q2%c;[OU[
O[
O*2[[Q2%c<[[
Q2%c&[OU[
O2UO2oUQ*oUOUP
P	Q5UOUO22UOUO22UOUO!2UO!22UO2oUO#UO$UO$2UO#UO&UO&2UOUO(UO(2[UQ2%c)UOUO*UO*2P!P!)r�lchmod�lchflagsr�r�)r�r�r�)rrr�r�rr�r�r�rr��lstatr�r~r�r�rir�r�r�r�r�r�r�s&     r� test_copy_link_preserve_metadata�)PathTest.test_copy_link_preserve_metadata�sh���x�x��	�	�"�������2�x� � ��I�I�f�d�l�l�T�\�\�9�:��2�z�"�"�w�t�[�'A�'A��K�K�����/��L�L�N�	��������F�E�T��J�����
�
��(�����)�)�+�,�������*�F�O�O�,=�>��L�L�N�	����Y�/�/��1C�1C�D����Y�/�/��1C�1C�D�����*�*�I�,=�,=�>��9�j�)�)����Y�/�/��1C�1C�D�*rc
�"�QoUOUO2oUQ*oUQ*o[O29^tt^2o[%cQ[[Q2%c;UO
[OQU[O222[%cQ[[Q2%c;UO
[OQU[O222[[Q2%c;UO
[OQU[O222[[Q	2%c;UO
[OQ
U[O222UOU2UO!UO#22UO%UO'2UO'22PPP2[%c[[Q2%cQoLY[%c[[Q2%cQoL4[[Q2%cQoL[[Q	2%cQ
oLP![OVa[O(229^tt^2UO+[,UOU2PPP2P!)%fhK�9h)%fhP!9h)c�`�U1QkoU!)c�F:�[R[OR22gr)rr��strerror)rmr<�errs*,�r�raiser�FPathTest.test_copy_error_handling.<locals>.make_raiser.<locals>.raiser�s����c�2�;�;�s�#3�4�4rr#)rrsf r�make_raiser�6PathTest.test_copy_error_handling.<locals>.make_raiser�s
���
5��Mrrr��FICLONEzfcntl.ioctl�
_fcopyfilezposix._fcopyfile�copy_file_rangezos.copy_file_range�sendfilezos.sendfile)rr�
contextlib�	ExitStack�fcntlr��
enter_contextrrlrrr"�ENOTSUPr��ENOTSOCKr�r~r�rir�r:r�r8)rrrr�r�ctx�
patchpoints&      r�test_copy_error_handling�!PathTest.test_copy_error_handling�s���	�
�x�x��	�	�"�����������
!�
!�
#�
#�s��u���	�2�2��!�!�$�*�*�]�K����<T�"U�V��u����5�5��!�!�$�*�*�-?��U�]�]�A[�"\�]��r�,�-�-��!�!�$�*�*�-A�;�u�{�{�C[�"\�]��r�:�&�&��!�!�$�*�*�]�K����<W�"X�Y��K�K����O�O�F�M�M�O�,����V�-�-�/��1A�1A�1C�D�$��5�W�U�I�.�.�&�J�
�U�w�u�l�3�3�+�J�
�R�*�
+�
+�-�J�
�R��
$�
$�&�J��
�Z�Z�
�K����$=�
>�
>����/����f�E�?�
>�3$�
#��2?�
>�
>�sL�K*�K*�2AK*�8K*�AK*�AK*�.BK*�>"K=�*K:	�3K:	�=L	�L	�win32�wasiz3directories are always readable on Windows and WASIc���UOUO2oUQ*oUQ*oUO[UOU2UOUO
22P!)r�copyE)rrr��PermissionErrorr�r|r�r�s&   r� test_copy_dir_no_read_permission�)PathTest.test_copy_dir_no_read_permissionsR���x�x��	�	�"�������������/�6�;�;��?��������)rc�<�UOUO2oUQ*o[[Q2%cB[OUQ*[
O[
O*2[[Q2%cC[[
Q2%c-[OUQ*[
O2UQ*o,Q	NoSTt,tFD!pROU2O2MJ#	ooUOUP	Q5STt,tFD!pSOU2O2MJ#	oo[Vg2FD�vq�UOUOU	O2UOUOU	O2UO!UO"U	O"2[UQ2%fJ�UO!UO$U	O$2J�	P!ttohttoh)
rr.rr�r�rr�r�r�)rQrr�
dirD/fileD)rrr�r�r.r�r�r�r�r�r�r��zipr�r�r�rir�r�)
rrr�r�subpaths�subpath�
source_sts�
target_stsr�r�s
&         r�test_copy_dir_preserve_metadata�(PathTest.test_copy_dir_preserve_metadatasx���x�x��	�	�"�������2�w����H�H�V�f�_�d�l�l�T�\�\�&A�B��2�y�!�!�g�d�K�&@�&@��J�J�v��'����8�����7��EM�N�X�'�o�o�g�.�3�3�5�X�
�N����F�d��3�EM�N�X�'�o�o�g�.�3�3�5�X�
�N�$'�
�$?� �I�� � ��!3�!3�Y�5G�5G�H�� � ��!3�!3�Y�5G�5G�H����Y�.�.�	�0A�0A�B��y�*�-�-�� � ��!3�!3�Y�5G�5G�H�%@��	O��Ns�%)H�&)Hc�N�UOUO2oUQ*oUOQQ2o[OUQQ2UQ*oUOUP	Q5UOQQ2oUO
[OUQ2Q2P!)rrrr�r�r�r�)rrr�r�r�r�rir�)rrr��source_filer�target_files&     r�&test_copy_dir_preserve_metadata_xattrs�/PathTest.test_copy_dir_preserve_metadata_xattrs/s����x�x��	�	�"�������o�o�f�g�6��
���K��e�4��������F�d��3��o�o�f�g�6��������[�+�>��Frc��UOUO2oUQ*oUO2oUQ*oUOU2oUO	VT2UOUO
22UOUO22UO	V4O22P!)r�linkA_moved�	rrr��moverir|r�r~r��rrr��source_readlinkrr�s&     r�test_move_file_symlink�PathTest.test_move_file_symlink:����x�x��	�	�"������ �/�/�+���
�%�����V�$������(��������)�����)�)�+�,�����/�/�*;�<rc��UOUO2oUQ*oUO[UOU2P!r��rrr�rrFr�s&  r� test_move_file_symlink_to_itself�)PathTest.test_move_file_symlink_to_itselfFr�rc��UOUO2oUQ*oUO2oUQ*oUOU2oUO	VT2UOUO
22UOUO22UO	V4O22P!)r"�linkB_movedrErGs&     r�test_move_dir_symlink�PathTest.test_move_dir_symlinkLrKrc��UOUO2oUQ*oUO[UOU2P!)r"rMr�s&  r�test_move_dir_symlink_to_itself�(PathTest.test_move_dir_symlink_to_itselfXr�rc��UOUO2oUQ*oUO2oUQ*oUOU2oUO	VT2UOUO
22UOUO22UO	V4O22P!)r!�brokenLink_movedrErGs&     r�test_move_dangling_symlink�#PathTest.test_move_dangling_symlink^s����x�x��	�	�"����$�� �/�/�+���*�*�����V�$������(��������)�����)�)�+�,�����/�/�*;�<rc��UOUO2oUQ*oUO2oUQ*oUOU2oUO	VT2UOUO
22UOUO
22UO	V4O22P!)r�fileA_moved�rrr�rFrir|r�r~�rrr��source_textrr�s&     r�test_move_file�PathTest.test_move_filejs����x�x��	�	�"�������&�&�(���
�%�����V�$������(��������)�����
�
��(�����&6�&6�&8�9rc�(�UO2P!r)r`r:s&r�test_move_file_other_fs� PathTest.test_move_file_other_fsu������rc��UOUO2oUQ*oUO2oUQ*Q*oUOU2oUO	VT2UOUO
22UOUO
22UO	V4O22P!)rrrr]r^s&     r�test_move_file_to_file�PathTest.test_move_file_to_fileys����x�x��	�	�"�������&�&�(������(�����V�$������(��������)�����
�
��(�����&6�&6�&8�9rc�(�UO2P!r)rgr:s&r�test_move_file_to_file_other_fs�(PathTest.test_move_file_to_file_other_fs�s���#�#�%rc��UOUO2oUQ*oUQ*oUO[UOU2P!)rrrMr�s&   r�test_move_file_to_dir�PathTest.test_move_file_to_dir�s<���x�x��	�	�"�������������'�6�;�;��7rc�(�UO2P!r)rmr:s&r�test_move_file_to_dir_other_fs�'PathTest.test_move_file_to_dir_other_fs�s���"�"�$rc��UOUO2oUQ*oUO[UOU2P!�rrMr�s&  r�test_move_file_to_itself�!PathTest.test_move_file_to_itself�s3���x�x��	�	�"���������'�6�;�;��7rc��UOUO2oUQ*oUQ*oUOU2oUOVC2UO	UO22UO
UO22UO
UOQ2O22UO
UOQQ2O22UOUOQQ2O2Q2UO
UOQ2O22UO
UOQ2O2Q2P!)r�
dirC_movedrrzthis is file D
rzthis is file C
)rrrFrir|r�r~�is_dirr��is_filer�r�s&    r�
test_move_dir�PathTest.test_move_dir�s���x�x��	�	�"��������$�����V�$������(��������)�����
�
��(��������/�6�6�8�9���������8�@�@�B�C���������9�C�C�E�+�	-��������0�8�8�:�;��������0�:�:�<�*�	,rc�(�UO2P!r)rzr:s&r�test_move_dir_other_fs�PathTest.test_move_dir_other_fs�s�����rc� �UOUO2oUQ*oUQ*oUO[UOU2UOUO
22UOUO
22P!)rr�rrr�rrFr~r�r�s&   r�test_move_dir_to_dir�PathTest.test_move_dir_to_dir�s`���x�x��	�	�"�������������'�6�;�;��7�����
�
��(�����
�
��(rc�(�UO2P!r)r�r:s&r�test_move_dir_to_dir_other_fs�&PathTest.test_move_dir_to_dir_other_fs�s���!�!�#rc���UOUO2oUQ*oUO[UOU2UOUO
22P!)rr�r�s&  r�test_move_dir_to_itself� PathTest.test_move_dir_to_itself�sE���x�x��	�	�"���������'�6�;�;��7�����
�
��(rc�.�UOUO2oUQ*oUQ*Q*oUO[UOU2UOUO
22UOUO
22P!)r�bar)rrr�rrFr~r�r|r�s&   r�test_move_dir_into_itself�"PathTest.test_move_dir_into_itself�sg���x�x��	�	�"����������&�����'�6�;�;��7�����
�
��(��������)rc�(�UO2P!r)r�r:s&r�"test_move_dir_into_itself_other_fs�+PathTest.test_move_dir_into_itself_other_fs�����&�&�(rc�(�UO2P!r)rIr:s&r�test_move_file_symlink_other_fs�(PathTest.test_move_file_symlink_other_fs�s��	
�#�#�%rc�(�UO2P!r)rNr:s&r�)test_move_file_symlink_to_itself_other_fs�2PathTest.test_move_file_symlink_to_itself_other_fs�s��	
�-�-�/rc�(�UO2P!r)rRr:s&r�test_move_dir_symlink_other_fs�'PathTest.test_move_dir_symlink_other_fs�s��	
�"�"�$rc�(�UO2P!r)rUr:s&r�(test_move_dir_symlink_to_itself_other_fs�1PathTest.test_move_dir_symlink_to_itself_other_fs�s��	
�,�,�.rc�(�UO2P!r)rYr:s&r�#test_move_dangling_symlink_other_fs�,PathTest.test_move_dangling_symlink_other_fs�s��	
�'�'�)rc��UOUO2oUQ*oUO2oUQ*oUOU2oUO	VTQ*2UOUO
22UOUO
22UO	V5O22P!)rr)rrr��	move_intorir|r�r~)rrr�r_�
target_dirr�s&     r�test_move_into�PathTest.test_move_into�s����x�x��	�	�"�������&�&�(���F�]�
��!�!�*�-������g�!5�6��������)�����
�
��(�����&6�&6�&8�9rc�(�UO2P!r)r�r:s&r�test_move_into_other_os� PathTest.test_move_into_other_os�rerc��UOP2oUOoUO[UOU2P!r�)rrr�r:r�)rr�r�s&  r�test_move_into_empty_name�"PathTest.test_move_into_empty_name�s0�����"����Y�Y�
����*�f�&6�&6�
�Crc�(�UO2P!r)r�r:s&r�"test_move_into_empty_name_other_os�+PathTest.test_move_into_empty_name_other_os�r�rc�>�UOUO2P!r)�_check_complex_symlinksrr:s&r�test_complex_symlinks_absolute�'PathTest.test_complex_symlinks_absolute�s���$�$�T�Y�Y�/rc�*�UOQ2P!)rQ)r�r:s&r�test_complex_symlinks_relative�'PathTest.test_complex_symlinks_relative�s���$�$�S�)rc�^�UOUOOQQ22P!)rr�)r�rUr+r:s&r�&test_complex_symlinks_relative_dot_dot�/PathTest.test_complex_symlinks_relative_dot_dots!���$�$�T�[�[�%5�%5�f�d�%C�Drc��UOoUOUO2oUOQ2O	UOQQ2P	Q5UOQ2O	UOQQ2P	Q5UOQ2O	UOQQ2P	Q5UOQ2O	UP	Q5UQ*O
2oUOVC2UO[U2UO2UQ*O
2oUOVC2UO[U2UO2UQ*O
2oUOVC2UO[U2UO2UQ*O
2oUOVC2UO[U2UO2[O2o[OUO2UOQ2O
2oUOVC2UO[U2UO2UOQ2O
2oUOVC2UO[U2UO2UOQ2O
2oUOVC2UO[U2UO2UOQ2O
2oUOVC2UO[U2UO2[OU2P![OS2h9h)�link1�link0r#�link2�link3)
rUrrr�r�r+r�rirDrhr�rL�chdir)r�link0_targetrUrnr[�old_paths&&    rr�� PathTest._check_complex_symlinkss��������H�H�T�Y�Y���	�
�
�7��&�&�v�{�{�7�G�'D�Z^�&�_�	�
�
�7��&�&�v�{�{�7�G�'D�Z^�&�_�	�
�
�7��&�&�v�{�{�7�G�'D�Z^�&�_�	�
�
�7��&�&�|��&�N���[�!�!�#�������� � ��Q�����3�
��[�!�!�#�������� � ��Q�����3�
��[�!�!�#�������� � ��Q�����3�
��[�!�!�#�������� � ��Q�����3��9�9�;��
�������	�����!�)�)�+�A����Q�"��$�$�S��V�T�Y�Y�7�����!�)�)�+�A����Q�"��$�$�S��V�T�Y�Y�7�����!�)�)�+�A����Q�"��$�$�S��V�T�Y�Y�7�����!�)�)�+�A����Q�"��$�$�S��V�T�Y�Y�7��H�H�X���B�H�H�X��s
�EN7�7Oc�L�UOU2oUOVB2P!r)r�ri)rr[r��strictr�s&&&& r�_check_resolve�PathTest._check_resolve0s��
�I�I�f�������%rc�t	�UOoUUOQ2oUO[29^tt^2oUO	P	Q5PPP2UOWOO[O2UOoUO[UO	P
Q52UOUOQ22UUOQQQ2oUO[UO	P
Q52UOUOQQQ22UUOQQQQ2oUO[UO	P
Q52UOUOUO2QQQ22UUOQQ2oUOV"2UUOQ2oUOV!UOQ22UUOQ	Q
Q2oUOV!UOQQ22UUOQQQ2oUOV!UOQQ22UUOQ	Q
QQQQ2oUOV!UOQQQQQ2P
2UUOQ	Q
QQQQ2oUOO[Ic(UOV!UOQ	QQQ2P
2L%UOV!UOQQQ2P
2UO!2oUUOQ	Q2O#U2UUO[U2Q
2O#UOOUOQ22UUOQ	QQ
Q2oUO%V!UOQQ22UUOQ	QQ
QQQ2oUOV!UOQQQQ2P
2UUOQ	QQ
QQQQ2oUOO[IcUOV!UQQQ2P
2P!UOV!UOQQQ2P
2P!)%fhCK^9h)r��r��in�spamr�rrrrrr%r&�linkX�linkY)rrr�rr�rir9rr:rUrDrhr+�dirname�_check_resolve_relativerVrNr��_check_resolve_absolute)rrnr[r=rUr�s&     r�test_resolve_common�PathTest.test_resolve_common7s����H�H��
�d�i�i����
�
�
�w�
'�
'�2�
�I�I�T�I�"�(�������+�+�U�\�\�:������ � ��Q�Y�Y�e�Y�%<�!=�!'���T�Y�Y��!>�	@�
�d�i�i���f�-��� � ��Q�Y�Y�e�Y�%<�!=�!'���T�Y�Y��t�V�!L�	N�
�d�i�i��u�d�F�3��� � ��Q�Y�Y�e�Y�%<�!=�!'���V�^�^�D�I�I�-F��t�U[�!\�	^�
�d�i�i���)���$�$�Q�*�
�d�i�i��!���$�$�Q��$�)�)�W�(=�>�
�d�i�i���'�2���$�$�Q��$�)�)�V�W�(E�F�
�d�i�i���'�2���$�$�Q��$�)�)�V�W�(E�F�
�d�i�i���'�5�$��G���$�$�Q��$�)�)�V�W�e�T�*0�)2�38�	:�
�d�i�i���$��t�V�D���8�8�?�?�)�+�
�(�(��A�d�i�i����.4�-6�7<�
>�

�(�(��A�d�i�i���f�,M�u�U��L�L�N��	�$�)�)�V�W�%�0�0��3�	�$�)�)�S��V�W�%�0�0����1A�1A�$�)�)�V�1T�U�
�d�i�i���'�7�;���$�$�Q��$�)�)�V�W�(E�F�
�d�i�i���'�5�$��G���$�$�Q��$�)�)�V�U�D�&�(Q�%*�	,�
�d�i�i���'�4���f�M���8�8�?�?�)�+�
�(�(��A�a���f�,E�u�M�
�(�(��A�d�i�i���f�,M�u�U�m(�
'�
'�s�R&�&R7	�/R7	c�|�UOoUOUO2oUOQ2O	QP	Q5UOQ2O	UOQQ2P	Q5UOQ2O	UOQQ2P	Q5UQ*oUO
UOP	Q5U2UQ*Q*oUO[UOP	Q5UO
UOP
Q5UQ*Q*2P!)�0rQr#�1�2r��3�4)
rUrrr�r�r+rir�r�r8)rrUr[r�r�s&    r�test_resolve_dot�PathTest.test_resolve_dotss��������H�H�T�Y�Y���	�
�
�3��"�"�3�D�"�A�	�
�
�3��"�"�6�;�;�s�C�#8�d�"�S�	�
�
�3��"�"�6�;�;�s�C�#8�d�"�S�
��G��������$��/��3�
��G�c�M�����+�Q�Y�Y�t��D�������%��0�!�c�'�C�-�@rc�(�UOUoUO[29^tt^2oUOP	Q5PPP2UO	WO
O[O2P!)%fhKF9h)Tr�)rr�rr�rir9r�ELOOP)rrmr�r=s&*  r�_check_symlink_loop�PathTest._check_symlink_loop�s\���x�x����
�
�
�w�
'�
'�2��L�L��L�%�(�������+�+�U�[�[�9�(�
'�s�B�B	�
B	c�0�UOUOQ2OQ2UOUOQ2UOUOQ2OQ2UOUOQ2UOUOQ2OQ2UOUOQ2UOUOQQ2oUO	UOP
Q5U2UOUOQ2OUOOUOQ22UOUOQ2UOUOQ	2OUOOUOQ	22UOUOQ	2UOUOQ
2OUOOUOQ22UOUOQ
2UOUOQ
Q2oUO	UOP
Q5U2P!)r�zlinkX/insider��linkZzlinkZ/../linkZr�r��linkUzlinkU/inside�linkV�linkWzlinkW/../linkW)rrr�r�rir�rUr+r�s&  r�test_resolve_loop�PathTest.test_resolve_loop�s���	
������G�$�/�/��?�� � ����G�4�������G�$�/�/��8�� � ����G�4�������G�$�/�/�0@�A�� � ����G�4��H�H�T�Y�Y���/��������%��0�!�4�������G�$�/�/����0@�0@����N�0[�\�� � ����G�4�������G�$�/�/����0@�0@����G�0T�U�� � ����G�4�������G�$�/�/����0@�0@����L\�0]�^�� � ����G�4��H�H�T�Y�Y���/��������%��0�!�4rc�n�UOQQ2o[O2o[OUO2UOUO
2UOUOU22[OU2P![OS2h9h)�non�exist)rr�rLr�rrir�)rr[�old_cwds&  r�)test_resolve_nonexist_relative_issue38671�2PathTest.test_resolve_nonexist_relative_issue38671�sp���H�H�U�G�$���)�)�+��
�������	����Q�Y�Y�[�$�(�(�4�9�9�a�*@�A��H�H�W���B�H�H�W��s�
:B�B4c��UOUO2oUOUQ*O2UOQ22UOUQ*O2UOQ22UOUQ*O2UOQ22UOUQ*Q*O2UOQ22UO	[
29^tt^2UQ*O2PPP2P!)%fhP!9h)rrr!r r"rr&z../dirB)rrrir�r�rr�s& r�
test_readlink�PathTest.test_readlink�s����H�H�T�Y�Y������!�g�+�/�/�1�4�8�8�G�3D�E����!�l�*�4�4�6����.�1�	3����!�g�+�/�/�1�4�8�8�F�3C�D����!�g�+��/�9�9�;�T�X�X�i�=P�Q�
�
�
�w�
'�
'�
��[�"�"�$�(�
'�
'�
'�s�D;�;E	�E	r�zos.readlink() is presentc��UOUO2oUQ*oUO[O29^tt^2[
O
U2PPP2P!)%fhP!9hrs)rrr�r6r7r�r�r�s&  r�test_readlink_unsupported�"PathTest.test_readlink_unsupported�sN���H�H�T�Y�Y���
��K��
�
�
�w�;�;�
<�
<�
�J�J�q�M�=�
<�
<�
<�s�
A-�-A>	�6A>	c��UOUO2Q*oUO2OoUQ*oUO	U2UOUO2OU2U]�*oUO	U2UOUO2OU2P!)r�m���)rrr�r�r.ri)rr[�mode�new_modes&   r�
test_chmod�PathTest.test_chmod�s����H�H�T�Y�Y��'�)���v�v�x�����&�=��	������������)�)�8�4��%�<��	������������)�)�8�4rc��UOUO2Q*oUO2oUO2OoUQ*oUOUP	Q5UO
UO2OU2U]�*oUOUP	Q5UO
UO2OU2P!)rr�r�)rrr�r�r�r.ri)rr[r�r�r�s&    r�test_chmod_follow_symlinks_true�(PathTest.test_chmod_follow_symlinks_true�s���
�H�H�T�Y�Y��'�)��
�I�I�K���v�v�x�����&�=��	����$��/��������)�)�8�4��%�<��	����$��/��������)�)�8�4rc��[OU2O![cSO	QS*2P!h9h)z4user %d doesn't have an entry in the system database)�pwd�getpwuid�pw_name�KeyErrorrW)r�uids&&r�_get_pw_name_or_skip_test�"PathTest._get_pw_name_or_skip_test�sC��	N��<�<��$�,�,�,���	N��M�M�F��L�
N�	N���#�	A
�A
�	A
z&the pwd module is needed for this testc���UOUO2Q*oUO2OoUO	U2oUOV1O
22P!rs)rrr��st_uidr�ri�owner)rr[�expected_uid�
expected_names&   r�
test_owner�PathTest.test_owner��L���H�H�T�Y�Y��'�)���v�v�x�����6�6�|�D�
�������	�2rc�l�[O2Tt,tFDpOMJ	oo[U2]6cUO	Q2UOUO2Q*oUOUO2Q*oUQ*vqV[OV5P2[OVFPP
Q5UOP
Q5OoUOU2oUOVv2UOV�OP
Q52P!ttoh)�ztest needs more than one userrr�Nr
Nr�)r��getpwall�pw_uidr�rWrrr��chownr�rr�rir)	r�u�	all_usersrr�uid_1�uid_2rrs	&        r�test_owner_no_follow_symlinks�&PathTest.test_owner_no_follow_symlinks�s���(+�|�|�~�6�~�!�X�X�~�	�6��y�>�A���M�M�9�:����$�)�)�$�w�.���x�x��	�	�"�W�,�� ��}���
�����#�
����b�%�8��y�y��y�7�>�>���6�6�|�D�
�����-�����
�
�5�
�(I�J��7s�D1c��[OU2O![cSO	QS*2P!h9h)z5group %d doesn't have an entry in the system database)�grp�getgrgid�gr_namer�rW)r�gids&&r�_get_gr_name_or_skip_test�"PathTest._get_gr_name_or_skip_test�sC��	O��<�<��$�,�,�,���	O��M�M�G�#�M�
O�	O�rz&the grp module is needed for this testc���UOUO2Q*oUO2OoUO	U2oUOV1O
22P!rs)rrr��st_gidrri�group)rr[�expected_gidrs&   r�
test_group�PathTest.test_grouprrc�p�[O2Tt,tFDpOMJ	oo[U2]6cUO	Q2UOUO2Q*oUOUO2Q*oUQ*vqV[OUPU2[OUPUP
Q5UOP
Q5OoUOU2oUOVv2UOV�OP
Q52P!ttoh)r
ztest needs more than one grouprrrr�)r�getgrall�gr_gidr�rWrrr�rr�rrrir)	r�g�
all_groupsrr�gid_1�gid_2rrs	&        r�test_group_no_follow_symlinks�&PathTest.test_group_no_follow_symlinks
s���),����7��1�h�h��
�7��z�?�Q���M�M�:�;����$�)�)�$�w�.���x�x��	�	�"�W�,��!�"�~���
�����U�#�
����r�5�%�8��y�y��y�7�>�>���6�6�|�D�
�����-�����
�
�5�
�(I�J��8s�D3c���UOUO2Q*oUO2UOUO2UOUO2P!rs)rr�unlinkr>r�r�s& r�test_unlink�PathTest.test_unlink!sF���H�H�T�Y�Y��'�)��	���
�������'�������)rc��UOUO2Q*oUOUO2UOP	Q5P!)�fileAAA)�
missing_ok)rrr>r,r�s& r�test_unlink_missing_ok�PathTest.test_unlink_missing_ok's9���H�H�T�Y�Y��)�+��������)�	���D��!rc�(�UOUO2Q*oUO2FDoUO2J	UO	2UOUO2UOUO2P!)r)rrr�r,�rmdirr>r�r�s&  r�
test_rmdir�PathTest.test_rmdir,s_���H�H�T�Y�Y��&�(������A�
�H�H�J��	���	�������'�������)rc���UOUO2Q*oUO2UOUO	22UOUO2P!rs)rr�_deleter|r�r>r�s& r�test_delete_file�PathTest.test_delete_file4sH���H�H�T�Y�Y��'�)��	�	�	���������$�����	�	�*rc��UOUO2oUOQ2O2UO	UOQ2O22UO	UOQQ2OP
Q52UOQ2O2UO	UOQ2O22UO	UOQQ2O22UO	UOQQ2OP
Q52UOQ2O2UO	UOQ2O22UO	UOQQ2O22UO	UOQQQ2O22UO	UOQQ	2O22UO	UOQQ
2O22P!)rr%r�rrr&rrrrr)rrr�r9r|r�)rrs& r�test_delete_dir�PathTest.test_delete_dir:s����x�x��	�	�"���
�
�f��%�%�'�������v�.�5�5�7�8�������v�w�7�>�>�!�?�#�	$��
�
�f��%�%�'�������v�.�5�5�7�8�������v�w�7�>�>�@�A�������v�w�7�>�>�!�?�#�	$��
�
�f��%�%�'�������v�.�5�5�7�8�������v�v�6�=�=�?�@�������v�v�w�?�F�F�H�I�������v�w�7�>�>�@�A�������v�{�;�B�B�D�Erc��UOUOQ2oUO2UQ*oUO[UO
2P!)�deleter�)rrr*r�r8r9)r�tmp�filenames&  r�test_delete_missing�PathTest.test_delete_missingLs?���h�h�t�y�y�(�+���	�	����;�����+�X�-=�-=�>rc�f�UOUOQ2oUO2UQ*oUO2UQ*oUOU2UO	2UOUO
22UOUO
P
Q52P!)r@rHrr�)rrr*r�r9r~r�r|)rrA�dir_rs&   r�test_delete_symlink�PathTest.test_delete_symlinkSsz���h�h�t�y�y�(�+���	�	���U�{���
�
���V�|�����������������
�&�������U��;�<rc�x�UOUOQ2oUO2UQ*oUQ*oUQ*oV#U1FDoUO2J	UQ*oUOQ2UQ*oUO	U2UQ*oUO	U2UQ*o	U	O	U2UO2UO
UO22UOUO22UOUO22P!)	r@�dir1�dir2�dir3�file1r�r�r�r�)	rrr*�
write_textr�r9r|r�r~)
rrArJrKrLr�rMr�r�r�s
&         r�test_delete_inner_symlink�"PathTest.test_delete_inner_symlink_s����h�h�t�y�y�(�+���	�	���V�|���f�}���V�|���T�!�A�
�G�G�I�"��g�
��
������w���
������w���
������w���
����������������'�������
�&��������'r:N�N�cygwinz2This test can't be run on Cygwin (issue #1071513).c�*�UOUOQ2oUO2UQ*oUQ*oUOP2UO2UO	2O
oUO	2O
oUO	2O
o[O[O*oUOU2UOU2UOU2UO[UO2UOU2UOU2UOU2P!SOS2SOS2SOS2h9h)r@rRr�)rrr*rNr�r��S_IREAD�S_IEXECr.r�r2r9)rrA�child_file_path�child_dir_path�old_dir_mode�old_child_file_mode�old_child_dir_moder�s&       r�test_delete_unwritable�PathTest.test_delete_unwritablevs3��
�h�h�t�y�y�(�+���	�	����)���s����"�"�2�&������x�x�z�)�)��-�2�2�4�<�<��+�0�0�2�:�:���<�<�$�,�,�.��		5��!�!�(�+�� � ��*��I�I�h�����o�s�{�{�;��I�I�l�#��!�!�"5�6�� � �!3�4��
�I�I�l�#��!�!�"5�6�� � �!3�4�s
�AE�5Fc���]PHoUOUOQ2oUO2UQ*oUQ*oUQ*oV4U1FDoUO2J	UQ*oUO	Q2UQ*oUO[
U2[
U22UQ*o	UO[
U2[
U	22UQ	*o
UO[
U2[
U
22UO2UOUO22UOUO22UOUO22P!)
rr@rJrKrLrMr�r�r�r���_winapirrr*rN�CreateJunctionrhr9r|r�r~)rr_rArJrKrLr�rMr�r�r�s&          r�test_delete_inner_junction�#PathTest.test_delete_inner_junction�s����h�h�t�y�y�(�+���	�	���V�|���f�}���V�|���T�!�A�
�G�G�I�"��g�
��
������w������s�4�y�#�e�*�5��w������s�4�y�#�e�*�5��w������s�5�z�3�u�:�6������������'�������
�&��������'rc��]PHoUOUOQ2oUO2UQ*oUQ*oUO2UQ*oUO	P2UO[
U2[
U22UO2UOUO22UOUO22UOUO22P!)rr@�cheese�shopr�r^)rr_rA�src�dstr�s&     r�test_delete_outer_junction�#PathTest.test_delete_outer_junction�s�����h�h�t�y�y�(�+���	�	���H�n���F�l���	�	���V�|����������s�3�x��S��2����
��������&�������
�&�����
�
��%r�mkfifozrequires os.mkfifo()�vxworksz%fifo requires special path on VxWorksc��UOUOQ2o[OU2UO	2UOUO
22UOUOQ2oUO2[OUQ*2UO	2UOUO
22P!)�piperH�mypipe)rrr�rjr9r|r�r*r�s& r�test_delete_on_named_pipe�"PathTest.test_delete_on_named_pipe�s���
�H�H�T�Y�Y��'��
�	�	�!��	�	�	���������$��H�H�T�Y�Y��&��	���	�
�	�	�!�h�,��	�	�	���������$rc�4``�[OnUOUOQ2nUU1QkoU[mRO	2RQ*oUOP2RO
2R[mP!R[mh9h)r@c�8:�UR6wc[2gRU2!r)r)r*rmr<�
orig_lstatrAs&*,��rr�DPathTest.test_delete_does_not_choke_on_failing_lstat.<locals>.raiser�s�����9�!�)�O�%�b�>�)rr�)r�rrrr*rNr9)rrr�rsrAs&  @@r�+test_delete_does_not_choke_on_failing_lstat�4PathTest.test_delete_does_not_choke_on_failing_lstat�si���	"����J��(�(�4�9�9�h�/�C�
*��B�H��I�I�K���+�C��N�N�2���K�K�M�!�B�H��z�B�H�s�A8B
�

Bc���UOUO2oUQ*oUO2OoUQ*Q*oUO	U2UOUO2OU2UO
[OOV$22UO
UO22UQ*Q*oUOO[Q2oUO	U2UO[OU2OU2UO
UO22P!�rr�fileAAr0)rrr��st_size�hardlink_torir~r�r��samefiler�rUr+r
)rrnr�sizerr�rs&      r�test_hardlink_to�PathTest.test_hardlink_to�s����H�H�T�Y�Y����W����{�{�}�$�$���6�z�H�$������ ��������,�,�d�3�������(�(��6�7�����
�
��(��F�
�Y�&���+�+�"�"�6�7�3��
���'�"��������)�1�1�4�8��������'rrzos.link() is presentc��UOUO2oUQ*oUQ*Q*oUO[O29^tt^2UOU2PPP2P!)%fhP!9h�rrry)rrr�r6r7r{�rrnr[r�s&   r�test_hardlink_to_unsupported�%PathTest.test_hardlink_to_unsupported�s]���H�H�T�Y�Y���
��K��
��J��!��
�
�
�w�;�;�
<�
<�
�M�M�!��=�
<�
<�
<���A9�9B
	�B
	c��UOUO2oUQ*oUO2OoUQ*Q*oUO	U2oUOVT2UOUO2OU2UO
UO2UOO[Q2oUO	U2oUOVpOU22UO[OU2OU2UO
UO2P!rx)rrr�rzr�rir>rUr+r
r�)rrnr[r}r��	renamed_pr��	renamed_qs&       r�test_rename�PathTest.test_rename�s����H�H�T�Y�Y���
��K���v�v�x����
��J��!���H�H�Q�K�	�����&��������)�)�4�0�������'��K�K���V�Y�/���H�H�Q�K�	�����H�H�Q�K�0���������+�+�T�2�������'rc��UOUO2oUQ*oUO2OoUQ*Q*oUO	U2oUOVT2UOUO2OU2UO
UO2UOO[QQ2oUO	U2oUOVpOU22UO[OU2OU2UO
UO2P!)rrryrr)rrr�rzrrir>rUr+r
r�)rrnr[r}r��
replaced_pr��
replaced_qs&       r�test_replace�PathTest.test_replace	s����H�H�T�Y�Y���
��K���v�v�x����
��J��!���Y�Y�q�\�
�����'��������)�)�4�0�������'��K�K���V�V�W�5���Y�Y�q�\�
�����X�X�a�[�1���������+�+�T�2�������'rc�D�UOUO2oUQ*oUOUO22UO	2UOUO22UO
2oUOoUOo[O[U2U]
*
U]
*
12UO	2UO
2oUOUOU2UOUOU2UQ*oUOUO22UO	QP
Q5UOUO22UO[UOP
Q5P!)�newfileA�newfileB�)r��exist_ok�r�)rrr|r��touchr~r�r��st_mtime_nsr��utimerhr�r�r)rrnr[�st�	old_mtime�old_mtime_nss&     r�test_touch_common�PathTest.test_touch_common	s���H�H�T�Y�Y���
�
�N���������$�	���	�������
�#�
�V�V�X���K�K�	��~�~��	����Q��)�b�.�)�b�.�9�:�	���	�
�V�V�X���������=�������Y�7�
�
�N���������$�	���U�U��+�������
�#����'�1�7�7�U��;rc�8�UOUO2oUQ*oUO2UOQ29^tt^2oUO	UO2O
2Q2PPP2P!)%fhP!9h)rr�r�)rrr�r,rir�r�)rrnr[r0s&   r�test_touch_nochange�PathTest.test_touch_nochange1	s_���H�H�T�Y�Y���
��K��	���	�
�V�V�D�\�\�Q����Q�V�V�X�^�^�-�/@�A��\�\�\�s�/B�B	�B	c�$�UOUO2oUQ*oUOUO22UO	2UOUO22UOUO
22UO[29^tt^2oUO	2PPP2UOWOO[O2P!)%fhKF9h)�newdirA)
rrr|r�r*r~rxr�rrir9r�EEXIST)rrnr[r=s&   r�
test_mkdir�PathTest.test_mkdir8	s����H�H�T�Y�Y���
�	�M���������$�	���	�������
�#�������
�#�
�
�
�w�
'�
'�2�
�G�G�I�(�������+�+�U�\�\�:�(�
'�s�0C?�?D	�D	c��UOUOQQ2oUOUO22UO	[
29^tt^2oUO
2PPP2UOWOO[O2UO
P	Q5UOUO22UOUO22UO	[
29^tt^2oUO
P	Q5PPP2UOUOO[O2[OUO2O 2oUOUOQQ2oUO
QP	Q5UOUO22UOUO22["O$Q6wcFUO[OUO2O 2QU*2UO[OUO&O2O 2U2P!)%fhCKA9h)%fhCK�9h)�newdirB�newdirC��parents�newdirD�newdirE�mr�im)rrr|r�r�rr*rir9rr:r~rxr�r��S_IMODEr�r�rZ�parent)rr[r=r�s&   r�test_mkdir_parents�PathTest.test_mkdir_parentsC	s����H�H�T�Y�Y�	�9�5���������$�
�
�
�w�
'�
'�2�
�G�G�I�(�������+�+�U�\�\�:�	������������
�#�������
�#�
�
�
�w�
'�
'�2�
�G�G�D�G�!�(�������+�+�U�\�\�:��|�|�A�F�F�H�,�,�-���H�H�T�Y�Y�	�9�5��	����t��$�������
�#�������
�#�
�7�7�d�?����T�\�\�!�&�&�(�*:�*:�;�V�d�]�K�������a�h�h�m�m�o�&=�&=�>��E�'(�
'�
'��(�
'�
'�s$�J$�J8�$J5	�-J5	�8K		�K		c��UOUOQ2oUO2OoUO	UO22UO	UO
22UO[29^tt^2oUO2PPP2UOWOO[O2UOP	Q5UO	UO22UOUO2OU2P!)%fhK�9h)rr�)rrr��st_ctimer~r�rxr�rr*rir9rr�)rr[�st_ctime_firstr=s&   r�test_mkdir_exist_ok�PathTest.test_mkdir_exist_ok\	s����H�H�T�Y�Y��'������*�*��������
�#�������
�#�
�
�
��
/�
/�2�
�G�G�I�0�������+�+�U�\�\�:�	������������
�#��������*�*�N�;�0�
/�s�D=�=E
	�E
	c���UOUOQ2oUOUO22UO	[
29^tt^2oUO
2PPP2UOWOO[O2UQ*oUO
P	Q5UO2OoUOUO22UO	[
29^tt^2oUO
P	Q5PPP2UOUOO[O2UO
P	P	Q5UOUO22UOUO2OU2P!)%fhCKc9h)%fhK�9h)rr�r��r�r�)
rrr~r�r�rr*rir9rr�r�r�)rr[r=r�s&   r�test_mkdir_exist_ok_with_parent�(PathTest.test_mkdir_exist_ok_with_parenth	s8���H�H�T�Y�Y��'��������
�#�
�
�
��
/�
/�2�
�G�G�I�0�������+�+�U�\�\�:�
�	�M��	����������*�*��������
�#�
�
�
��
/�
/�2�
�G�G�D�G�!�0�������+�+�U�\�\�:�	����t��,�������
�#��������*�*�N�;�0�
/�
/��0�
/�s$�G�G�G	�G	�G)	�"G)	c���UOQ2O2OP	Q5UOQ2O2OP	P	Q5P!)r�r�r�)rr�r*r:s&r�test_mkdir_exist_ok_root�!PathTest.test_mkdir_exist_ok_rooty	sH������
����%�%�t�%�4�����
����%�%�d�T�%�Brc�T�QFD4oUOUQ*2oUO2%cJ3L	UOQ2UO[29^tt^2WQ*Q*OP	Q5PPP2P!)%fhP!9h)�ZYXWVUTSRQPONMLKJIHGFEDCBAz:\z&cannot find a drive that doesn't exist�childr�r�)rrxrWr�rr*)rr�r[s&  r�test_mkdir_with_unknown_drive�&PathTest.test_mkdir_with_unknown_drive~	su��-�A�����U��#�A��8�8�:�:��.�

�M�M�B�C�
�
�
�w�
'�
'�
��[�6�
!�(�(��(�6�(�
'�
'�
'�s�+!B�B'	�B'	c�~�UOUOQQ2oUOUO22UO	[
29^tt^2oUO
P	Q5PPP2UOWOO[O2UO	[
29^tt^2oUO
P	P	Q5PPP2UOUOO[O2P!)%fhK�9h)%fhKY9h)rrr�r��rrr~r�r�rr*rir9rr��rr[r=s&  r�test_mkdir_with_child_file�#PathTest.test_mkdir_with_child_file�	s����H�H�T�Y�Y���0��������
�#��
�
��
/�
/�2�
�G�G�D�G�!�0�������+�+�U�\�\�:�
�
�
��
/�
/�2�
�G�G�D�4�G�0�0�������+�+�U�\�\�:�0�
/��0�
/�s$�D�D,�D)	�"D)	�,D<	�5D<	c�v�UOUOQ2oUOUO22UO	[
29^tt^2oUO
2PPP2UOWOO[O2UO	[
29^tt^2oUO
P	Q5PPP2UOUOO[O2P!)%fhK�9h)%fhKY9h)rr�r�r�s&  r�test_mkdir_no_parents_file�#PathTest.test_mkdir_no_parents_file�	s����H�H�T�Y�Y��(��������
�#��
�
��
/�
/�2�
�G�G�I�0�������+�+�U�\�\�:�
�
�
��
/�
/�2�
�G�G�T�G�"�0�������+�+�U�\�\�:�0�
/��0�
/�s$�D�D(�D%	�D%	�(D8	�1D8	c�```�[] 2FCD#oUOUOQU*2oUOUO	22[
OnQUUU1Qkko[]2Tt,tFDo[U]U**2MJ	ton[2nUQ*Q*o[OQU29^tt^2UO
P	P
Q5PPP2UO[U2R2UOUO	22CJ&	P!ttoh)%fhKV9h[cSO[S2R2Kfh9h)� zdirCPC%dc�:�[U2oRO2%cRV2ROU2RV2P!r)rh�popr')r�r��concurrently_created�pattern�
real_mkdirs&&���r�my_mkdir�@PathTest.test_mkdir_concurrent_parent_creation.<locals>.my_mkdir�	s7����4�y���;�;�=�=��t�*�(�,�,�T�2��4�&rrJrKzos.mkdirr�)r3)r�rrr|r�r�r*�bool�setrrl�assertNotInrhr�assertInr~)	r�pattern_numr[r��n�p12r�r�r�s	&     @@@r�%test_mkdir_concurrent_parent_creation�.PathTest.test_mkdir_concurrent_parent_creation�	s��� ��9�9�K�������J��$<�=�A����Q�X�X�Z�(����J�

'�

'�>C�1�X�F�X��t�K�1��6�2�3�X�F�G�#&�5� ��f�*�v�%�C�
A��Z�Z�
�H�5�5��I�I�d�U�I�;�6�
� � ��S��+?�@��O�O�A�H�H�J�'�7%��"G�6�5��"�
>��
�
�c�#�h�(<�=�
>�s<�=$D;�?E�E	�2E�E
�	E
�E�	E<�E<�;E<z,umask is not implemented on Emscripten/WASI.�androidz7Android filesystem may not honor requested permissions.c�`�UOUOQQ2oUOUO22[O
Q6wc�[O]29^tt^2UOQP	Q5UOUO22UOUO2OQ*Q2UOUOO2OQ*Q2PPP2P!P!)%fhP!9h)�	umasktestr�r���r�r3��rrr|r�r�rZr
�
temp_umaskr*r~rir�r�r�r�s& r�test_mkdir_parents_umask�!PathTest.test_mkdir_parents_umask�	s���
�H�H�T�Y�Y��W�5���������$�
�7�7�d�?��%�%�e�,�,�����t��,�������
�+�� � �����!1�!1�E�!9�5�A�� � �������!8�!8�5�!@�%�H�
-�,��,�,�,�s�1BD�D-	�%D-	c��UOUOQQ2oUOUO22[O
Q6wc�[O]29^tt^2UOQP	QQ5UOUO22UOUO22UOUO2OQ*Q2UOUOO2OQ*Q2PPP2P!P!)%fhP!9h)�newdirPM�subdirPMr�r����r��parent_moder3)rrr|r�r�rZr
r�r*r~rxrir�r�r�r�s& r�test_mkdir_with_parent_mode�$PathTest.test_mkdir_with_parent_mode�	s���
�H�H�T�Y�Y�
�J�7���������$�
�7�7�d�?��%�%�e�,�,�����t���?�������
�+�������
�+�� � �����!1�!1�E�!9�5�A�� � �������!8�!8�5�!@�%�H�-�,��,�,�,�s�1B?D<�<E
	�E
	c��UOUOQQQ2oUOUO22[O
Q6wCc[O]29^tt^2UOQP	QQ5UOUO22UOUOQ2oUQ*oUOUO2OQ*Q2UOUO2OQ*Q2UOUO2OQ*Q2PPP2P!P!)%fhP!9h)�level1PM�level2PM�level3PMr�r�r�r�r3)
rrr|r�r�rZr
r�r*r~rir�r�)rr[�level1�level2s&   r�%test_mkdir_parent_mode_deep_hierarchy�.PathTest.test_mkdir_parent_mode_deep_hierarchy�	s��
�H�H�T�Y�Y�
�J�
�C���������$�
�7�7�d�?��%�%�e�,�,�����t���?�������
�+����$�)�)�Z�8���*�,��� � �����!6�!6��!>��F�� � �����!6�!6��!>��F�� � �����!1�!1�E�!9�5�A�-�,��,�,�,�s�3C,E+�+E<	�4E<	c�b�UOUOQQ2oUOUO22[O
Q6wc�[O]29^tt^2UOQP	QQ5UOUO22UOUO2OQ*Q2UOUOO2OQ*Q2PPP2P!P!)%fhP!9h)�umaskPMr�r�r3r�r�r�r�s& r�*test_mkdir_parent_mode_combined_with_umask�3PathTest.test_mkdir_parent_mode_combined_with_umask
s���
�H�H�T�Y�Y�	�7�3���������$�
�7�7�d�?��%�%�e�,�,�����t���?�������
�+�� � �����!1�!1�E�!9�5�A�� � �������!8�!8�5�!@�%�H�
-�,��,�,�,���1B D�D.	�&D.	c�b�UOUOQQ2oUOUO22[O
Q6wc�[O]29^tt^2UOQP	QQ5UOUO22UOUO2OQ*Q2UOUOO2OQ*Q2PPP2P!P!)%fhP!9h)�	samedirPMr�r���r�r3r�r�s& r�#test_mkdir_parent_mode_same_as_mode�,PathTest.test_mkdir_parent_mode_same_as_mode
s���
�H�H�T�Y�Y��Z�8���������$�
�7�7�d�?��%�%�e�,�,�����t���?�������
�+�� � �����!1�!1�E�!9�5�A�� � �������!8�!8�5�!@�%�H�-�,��,�,�,�r�c�2�UOUO2oUQ*oUQ*Q*oUOU2UOUO	2UO	22UOUO
2UO	22UQ*Q*oUO[U22UOUO	2UO	22UOUO
2UO	22UOUO22UQ*oUQ*Q*oUOUP	Q5UOUO	2UO	22UOUO
2UO	22UOUO22UO[UO222P!)rr�linkAA�linkAAAr�linkAAAAr#)
rrr�rir�r�rrhr|rxr~�listr�)rrnrrs&   r�test_symlink_to�PathTest.test_symlink_to-
sa���H�H�T�Y�Y����W����6�z�H�$��������������f�k�k�m�4����D�J�J�L�&�+�+�-�8��6�z�I�%������F��$��������f�k�k�m�4����D�J�J�L�&�+�+�-�8��������'��V����6�z�J�&������D��9��������f�k�k�m�4����D�J�J�L�&�+�+�-�8�������
�&�����T�\�\�^�,�-rr/zos.symlink() is presentc��UOUO2oUQ*oUQ*Q*oUO[O29^tt^2UOU2PPP2P!)%fhP!9hr�)rrr�r6r7r�r�s&   r�test_symlink_to_unsupported�$PathTest.test_symlink_to_unsupportedE
s\���H�H�T�Y�Y���
��K��
��J��!��
�
�
�w�;�;�
<�
<�
�L�L��O�=�
<�
<�
<�r�c���UOUO2oUQ*oUOUOO	22UOUOO	P
Q52UOQ2UOUOO	22UOUOO	P
Q52P!��myfiler��hullo)rrr|�infor�rNr�s&  r�test_info_exists_caching�!PathTest.test_info_exists_cachingN
s����H�H�T�Y�Y���
��L�����������)���������u��=�>�	���W�����������)���������u��=�>rc��UOUO2oUQ*oUOUOO	22UOUOO	P
Q52UO2UOUOO	22UOUOO	P
Q52P!)�mydirr�)rrr|rrxr*r�s&  r�test_info_is_dir_caching�!PathTest.test_info_is_dir_cachingW
s����H�H�T�Y�Y���
��K�����������)���������u��=�>�	���	����������)���������u��=�>rc���UOUO2oUQ*oUOUOO	22UOUOO	P
Q52UOQ2UOUOO	22UOUOO	P
Q52P!r)rrr|rryrNr�s&  r�test_info_is_file_caching�"PathTest.test_info_is_file_caching`
s����H�H�T�Y�Y���
��L����������)�*�����������>�?�	���W����������)�*�����������>�?rc���UOUO2oUQ*oUOUOO	22UOQ2UOUOO	22UQ*oUO
UOO	22UO2UO
UOO	22P!)�mylink�blah)rrr|rr�r�r~r,r�s&  r�test_info_is_symlink_caching�%PathTest.test_info_is_symlink_cachingi
s����H�H�T�Y�Y���
��L��������*�*�,�-�	���V��������*�*�,�-�
��L��������)�)�+�,�	���
�������)�)�+�,rc�z�UOUO2OQ2O2oUOUO2OQQ2O2oUOUO2OQ2O2oUO	UO
[2UOUO
UO
2UOUO
UO
2UOUO
UO
2UO	UO[2UOUOUO2UOUOUO2UOUOUO2UO	UO[2UOUOUO2UOUOUO2P!)rrrr)rrr�r�r9r�rrir��st_ino�st_dev)r�statA�statB�statCs&   r�	test_stat�PathTest.test_statv
sr��������#�,�,�W�5�:�:�<��������#�,�,�V�W�=�B�B�D��������#�,�,�V�4�9�9�;�����e�m�m�S�1��������
�
�6����E�M�M�5�=�=�9����E�M�M�5�=�=�9����e�l�l�C�0����E�L�L�%�,�,�7����E�L�L�%�,�,�7����E�L�L�%�,�,�7����e�l�l�C�0�������u�|�|�4�������u�|�|�4rc��UOUO2Q*oUO2oUOV!OP
Q52P!)rr�)rrr�ri�rr[r�s&  r�&test_stat_no_follow_symlinks_nosymlink�/PathTest.test_stat_no_follow_symlinks_nosymlink�
s=���H�H�T�Y�Y��'�)��
�V�V�X������V�V�E�V�:�;rc��UOUO2Q*oUO2oUOV!OP
Q52P!)rr�)rrr�r�r&s&  r�test_stat_no_follow_symlinks�%PathTest.test_stat_no_follow_symlinks�
s=���H�H�T�Y�Y��'�)��
�V�V�X�����B���u�� =�>rc��UOUO2Q*oUO2oUOV!O	22P!r�)rrr�r�rr&s&  r�
test_lstat�PathTest.test_lstat�
s8���H�H�T�Y�Y���(��
�V�V�X�����B���	�*rc��UOUO2Q*oUO2oUOV!O	22P!rs)rrr�rirr&s&  r�test_lstat_nosymlink�PathTest.test_lstat_nosymlink�
s8���H�H�T�Y�Y��'�)��
�V�V�X������W�W�Y�'rc�
�UOoUUO2oUOP	UO22UOP	UQ*O22UOP	UQ*O22UOP
UQ*Q*O22UO%c�UOP	UQ*O22UOP	UQ*O22UOP	UQ*Q*O22UOP
UQ*Q*O22UOP
UQ*O22UOP	UQ*OP
Q52UOP
UQ	*O22UOP
UQ
2O22UOP
UUOQ*2O22UOP
UUOQ*2O22P!)
Trr�bahrr"rr!r�r�z/xyzzy���)rrrkr�r(r�s&  r�test_exists�PathTest.test_exists�
s����H�H��
�d�i�i�L���
�
�d�A�H�H�J�'��
�
�d�Q��Z�/�/�1�2��
�
�d�Q��[�0�0�2�3��
�
�e�a�'�k�E�1�9�9�;�<������M�M�$��W�� 4� 4� 6�7��M�M�$��W�� 4� 4� 6�7��M�M�$��W��w�!6� >� >� @�A��M�M�%�!�g�+��"5�!=�!=�!?�@��M�M�%�!�l�"2�!:�!:�!<�=��M�M�$��\�!1� 9� 9�%� 9� P�Q��
�
�e�a�%�i�/�/�1�2��
�
�e�Q�x�[�/�/�1�2��
�
�e�Q�t�y�y�8�3�4�;�;�=�>��
�
�e�Q�t�y�y�6�1�2�9�9�;�<rc��UOUO2oUOUQ*O22UO	UQ*O22UO	UQ*O22UO	UQ*Q*O22UO
%csUO	UQ*O22UOUQ*O22UO	UQ*O22UO	UQ*O22UO	UQ*O22P!)	rrr r3rr"r!�dirA��dirA�rrr~rxr|r(r�s& r�test_is_dir�PathTest.test_is_dir�
s���H�H�T�Y�Y�������V��+�+�-�.����!�g�+�-�-�/�0����!�n�,�4�4�6�7����!�g�+��-�5�5�7�8��������a�'�k�1�1�3�4��O�O�Q��[�0�0�2�3����a��o�5�5�7�8����!�l�*�2�2�4�5����!�j�.�0�0�2�3rc�@�UOUO2oUOUQ*OP
Q52UO	UQ*OP
Q52UO	UQ*OP
Q52UO	UQ*Q*OP
Q52UO
%cyUO	UQ*OP
Q52UO	UQ*OP
Q52UO	UQ*OP
Q52UO	UQ*OP
Q52UO	UQ	*OP
Q52P!)
rr�rr r3rr"r!r9r:r;r�s& r�test_is_dir_no_follow_symlinks�'PathTest.test_is_dir_no_follow_symlinks�
sE���H�H�T�Y�Y�������V��+�+�E�+�B�C����!�g�+�-�-�e�-�D�E����!�n�,�4�4�U�4�K�L����!�g�+��-�5�5�e�5�L�M��������a�'�k�1�1�%�1�H�I����a�'�k�1�1�%�1�H�I����a��o�5�5�e�5�L�M����!�l�*�2�2�5�2�I�J����!�j�.�0�0��0�G�Hrc��UOUO2oUOUQ*O22UO	UQ*O22UO	UQ*O22UO	UQ*Q*O22UO
%csUOUQ*O22UO	UQ*O22UO	UQ*O22UO	UQ*O22UO	UQ*O22P!)	rrr r3rr"r!�fileA��fileA�rrr~ryr|r(r�s& r�test_is_file�PathTest.test_is_file�
s���H�H�T�Y�Y�������W��-�-�/�0����!�f�*�-�-�/�0����!�n�,�5�5�7�8����!�g�+��-�6�6�8�9������O�O�Q��[�1�1�3�4����a�'�k�2�2�4�5����a��o�6�6�8�9����!�m�+�4�4�6�7����!�k�/�2�2�4�5rc�@�UOUO2oUOUQ*OP
Q52UO	UQ*OP
Q52UO	UQ*OP
Q52UO	UQ*Q*OP
Q52UO
%cyUO	UQ*OP
Q52UO	UQ*OP
Q52UO	UQ*OP
Q52UO	UQ*OP
Q52UO	UQ	*OP
Q52P!)
rr�rr r3rr"r!rBrCrDr�s& r�test_is_file_no_follow_symlinks�(PathTest.test_is_file_no_follow_symlinks�
sE���H�H�T�Y�Y�������W��-�-�e�-�D�E����!�f�*�-�-�e�-�D�E����!�n�,�5�5�e�5�L�M����!�g�+��-�6�6�u�6�M�N��������a�'�k�2�2�5�2�I�J����a�'�k�2�2�5�2�I�J����a��o�6�6�u�6�M�N����!�m�+�4�4�U�4�K�L����!�k�/�2�2�5�2�I�Jrc���UOUO2oUOUQ*O22UOUQ*O22UOUQ*O22UOUQ*Q*O22UO%csUOUQ*O22UOUQ*O22UOUQ*O22UO
UQ*O2P
2UO
UQ*O2P
2UO%cQUO
UQ	*O2P
2UO
UQ
*O2P
2P!P!)rrr r3rr"r!rBrCulinkA�zlinkA)rrr|r�r(r~rkryr�s& r�test_is_symlink�PathTest.test_is_symlink�
s\���H�H�T�Y�Y������!�g�+�1�1�3�4����!�f�*�0�0�2�3����!�n�,�8�8�:�;����!�g�+��-�9�9�;�<������O�O�Q��[�4�4�6�7��O�O�Q��[�4�4�6�7��O�O�Q��_�8�8�:�;��
�
�q�=�(�1�1�3�U�;��
�
�q�;��/�/�1�5�9������M�M�1�}�,�5�5�7��?��M�M�1�{�?�3�3�5�u�=�rc��UOUO2oUOUQ*O22UOUQ*O22UOUQ*O22UOUQ*Q*O22UOUQ*O22UOUQ*O22P!�rrr r3rBrC)rrr|�is_junctionr�s& r�test_is_junction_false�PathTest.test_is_junction_false�
s����H�H�T�Y�Y������!�g�+�2�2�4�5����!�f�*�1�1�3�4����!�n�,�9�9�;�<����!�g�+��-�:�:�<�=����!�m�+�8�8�:�;����!�k�/�6�6�8�9rc��UOUO2o[OO	UO
Q29^tt^2UO
UO2UO
OO2UO
OOU2PPP2P!)%fhP!9h)�
isjunction)rrrrl�objectrUrirOrSrm�assert_called_once_withr�s& r�test_is_junction_true�PathTest.test_is_junction_trues|���H�H�T�Y�Y���
�Z�Z�
�
�q�x�x��
6�
6����Q�]�]�_�a�h�h�.A�.A�.N�.N�O�
�H�H���7�7��:�7�
6�
6�
6�s�A$B=�=C	�C	c��UOUO2oUOUQ*O22UOUQ*O22UOUQ*O22UOUQ*Q*O22UO	UQ*O2P
2UO	UQ*O2P
2P!rN)rrr|�is_fiforkr�s& r�test_is_fifo_false�PathTest.test_is_fifo_falses����H�H�T�Y�Y������!�g�+�.�.�0�1����!�f�*�-�-�/�0����!�n�,�5�5�7�8����!�g�+��-�6�6�8�9��
�
�q�=�(�1�1�3�U�;��
�
�q�;��/�/�1�5�9rzos.mkfifo() requiredc��UOUOQ2o[O[	U22UOUO22UOUO22UOUO22UOUOUOQ2O2P
2UOUOUOQ2O2P
2P![
c#oSO
QS*2Po=K�Po=hh9h)�myfifozos.mkfifo(): %su	myfifo�zmyfifo)
rrr�rjrhr2rWr~rYr|�	is_socketryrk)rrn�es&  r�test_is_fifo_true�PathTest.test_is_fifo_trues���
�H�H�T�Y�Y��)��	1��I�I�c�!�f��	
����	�	��$��������'��������%��
�
�d�h�h�t�y�y�.�9�A�A�C�U�K��
�
�d�h�h�t�y�y�,�7�?�?�A�5�I��
�	1��M�M�+�a�/�0�0��	1�s�D�	D>�D>�D9�9D>c��UOUO2oUOUQ*O22UOUQ*O22UOUQ*O22UOUQ*Q*O22UO	UQ*O2P
2UO	UQ*O2P
2P!rN)rrr|r^rkr�s& r�test_is_socket_false�PathTest.test_is_socket_falses����H�H�T�Y�Y������!�g�+�0�0�2�3����!�f�*�/�/�1�2����!�n�,�7�7�9�:����!�g�+��-�8�8�:�;��
�
�q�=�(�3�3�5�u�=��
�
�q�;��1�1�3�U�;r�AF_UNIXzUnix sockets requiredz/Unix sockets are not implemented on Emscripten.zCannot create socket on WASI.c�j�UOUOQ2o[O[O[O2oUOUO2UO[U22UOUO22UOUO!22UOUO#22UO%UOUOQ2O2P
2UO%UOUOQ2O2P
2P![cNo[S[2%fQ[S27c"SOQ[S2*2gPo=hh9h)�mysockzAF_UNIX path too longzcannot bind Unix socket: u	mysock�zmysock)rr�socketre�SOCK_STREAMrM�close�bindrhrr2r2rWr~r^r|rYryrk)rrn�sockr_s&   r�test_is_socket_true�PathTest.test_is_socket_true(s#��
�H�H�T�Y�Y��)���}�}�V�^�^�V�-?�-?�@������
�
�#�	��I�I�c�!�f��	
������
�&��������%��������%��
�
�d�h�h�t�y�y�.�9�C�C�E�u�M��
�
�d�h�h�t�y�y�,�7�A�A�C�U�K���	��1�o�.�.�+�s�1�v�5��
�
�9�C��F�B�C���		�s*�-E�	F2�$F2�%F-�;F-�"F-�-F2c��UOUO2oUOUQ*O22UOUQ*O22UOUQ*O22UOUQ*Q*O22UO	UQ*O2P
2UO	UQ*O2P
2P!rN)rrr|�is_block_devicerkr�s& r�test_is_block_device_false�#PathTest.test_is_block_device_false@s����H�H�T�Y�Y������!�g�+�6�6�8�9����!�f�*�5�5�7�8����!�n�,�=�=�?�@����!�g�+��-�>�>�@�A��
�
�q�=�(�9�9�;�U�C��
�
�q�;��7�7�9�5�Arc��UOUO2oUOUQ*O22UOUQ*O22UOUQ*O22UOUQ*Q*O22UO	UQ*O2P
2UO	UQ*O2P
2P!rN)rrr|�is_char_devicerkr�s& r�test_is_char_device_false�"PathTest.test_is_char_device_falseIs����H�H�T�Y�Y������!�g�+�5�5�7�8����!�f�*�4�4�6�7����!�n�,�<�<�>�?����!�g�+��-�=�=�?�@��
�
�q�=�(�8�8�:�E�B��
�
�q�;��6�6�8�%�@rc�N�UO[O2oUO2%fUO	Q2UOUO
22UOUO22UOUO22UOUO[OQ02O
2P
2UOUO[OQ02O
2P
2P!)znull device requiredr4r5)rr��devnullr�rWr~rtr|rpryrkr�s& r�test_is_char_device_true�!PathTest.test_is_char_device_trueRs����H�H�R�Z�Z� ���x�x�z�z��M�M�0�1�����(�(�*�+�����*�*�,�-��������%��
�
�d�h�h�"�*�*��V�4�5�D�D�F��N��
�
�d�h�h�"�*�*��T�2�3�B�B�D�e�Lrc���UOUO2oUOUQ*O22UOUQ*O22UOUQ*O22UOUQ*Q*O22UO%c'UOUQ*O22[
OQ6XcUOQ2oLUOQ2oUOUO22UOUQ*O22P!)	rrr r3rr�rzr�r4)rrr|�is_mountr(r�rZr~)rrn�Rs&  r�
test_is_mount�PathTest.test_is_mount]s���H�H�T�Y�Y������!�g�+�/�/�1�2����!�f�*�.�.�0�1����!�n�,�6�6�8�9����!�g�+��-�7�7�9�:��������a�'�k�3�3�5�6�
�7�7�d�?����� �A�����
�A�����
�
��%����!�h�,�0�0�2�3rc���UOoUOUOQ2oUOUOQQ2oUOU2oUOU2oUOU2oUO	UOU22UO	UOU22UO
UOU22UO
UOU22UOUOQ2oUOU2oUO[UO
U2UO[UO
U2UO[UO
U2UO[UO
U2UO[UO
U2UO[UO
U2P!)rrrr�)	rUr+rrr~r|r|r�r8)	rrU�
fileA_path�
fileB_pathr[r�r��non_existentr�s	&        r�
test_samefile�PathTest.test_samefilelsa�������[�[����G�4�
��[�[����F�G�<�
��H�H�Z� ��
�X�X�j�
!���H�H�Z� ������
�
�:�.�/�����
�
�2��'�������J�/�0�������A��'��{�{�4�9�9�e�4���H�H�\�"�����+�Q�Z�Z��;����+�Q�Z�Z��F����+�Q�Z�Z��;����+�Q�Z�Z��F����+�Q�Z�Z��;����+�Q�Z�Z��Frc��UO[29^tt^2UOQQ5PPP2P!)%fhP!9h)r�)r�)r�r�rr:s&r�test_passing_kwargs_errors�#PathTest.test_passing_kwargs_errors�s0��
�
�
�y�
)�
)��H�H��H��*�
)�
)�
)�s�<�A
	�A
	c	���UOoUUOQ2o[UO22oQQ,Tt.tFDpAUOQU2jJ	ooUO	V52P!ttoh)r"rr&)rrr�r�ri)rrnr[�pathsr�r�s&     r�test_iterdir_symlink�PathTest.test_iterdir_symlink�si��
�H�H��
�d�i�i��!���A�I�I�K� ��8?��7I�K�7I�!�Q�t�y�y�'�1�-�7I��K�����)��Ls�A2c�j�UOoUUO2oUQ*o[UOQ22oUOO2%cU.L	[2oUO
VE2UO
[UOQ22[22P!)�FILEazFILEa*)rrr�rGrr�ri�rrnr[r��given�expects&     r�test_glob_posix�PathTest.test_glob_posix�sz���H�H��
�d�i�i�L��
��K���A�F�F�7�O�$�����
�
���!��S�U������'�����Q�V�V�H�-�.���6rc��UOoUUO2oUO[UO	Q22UUOQ2.2UO[UO	Q22UUOQ2.2UO[UO	Q22UUOQ2.2P!)r�rz*a\�dirA/zF*a)rrrir�rGr�s&  r�test_glob_windows�PathTest.test_glob_windows�s����H�H��
�d�i�i�L������Q�V�V�G�_�-��4�9�9�g�1F�/H�I�����Q�V�V�F�^�,��$�)�)�W�0E�.G�H�����Q�V�V�E�]�+�q����G�/D�-F�Grc�$�UOP2oUO[Q29^tt^2[UO	P22PPP2UO[Q29^tt^2[UO	Q22PPP2UO[Q29^tt^2[UO	Q22PPP2P!)%fhK�9h)%fhKf9h)%fhP!9h)rszUnacceptable patternrQz./)rrr:rrGr�s& r�test_glob_empty_pattern� PathTest.test_glob_empty_pattern�s����H�H�R�L��
�
#�
#�J�0F�
G�
G��������H�
�
#�
#�J�0F�
G�
G��������H�
�
#�
#�J�0F�
G�
G��������H�
G�	H�
G��
G�
G��
G�
G�
G�s5�C�2C+�3C>�C(	�!C(	�+C;	�4C;	�>D	�D	c	��]oUOoUUO2Q*9q4UO2[U2FDoUQ*oUO2J	QO	Q,U*2o[]d2Tt,tFDptOU2MJ	ooSFDo	UO
[U	2U2J 	[]d2Tt,tFDptOQ2MJ	ooSo[U2FD1o
UQ*oSFDo	UO
[U	2U2J 	J3	P!ttohttoh)��deepr�r�r�)	rrr*r�r+rGri�nextr�)r�depthrnr[rrQr��j�iters�it�is&          r�test_glob_many_open_files�"PathTest.test_glob_many_open_files�s�����H�H���T�Y�Y�<�&�(�(��	���	��u��A�
��H�A�
�G�G�I���(�(�C�5�5�=�)��-2�3�Z�8�Z����7�#�Z��8��B����T�"�X�q�)��*/��*�5�*�Q���C��*��5����u��A��C��A���� � ��b��1�-����9��6s�D;�Ec�@�]2oU]
*oUOUOQ2oUOQ,U*oUOP	Q5[	U29^tt^2[UO
Q22PPP2P!)%fhP!9h)�2r�r�r��**/)rrr�r*r	rrG�r�recursion_limit�directory_depthrr�s&    r�test_glob_above_recursion_limit�(PathTest.test_glob_above_recursion_limit�ss����)�B�.���x�x��	�	�6�*���}�}��u��6�8���
�
�4�
� �
��
0�
0�����5�!�"�1�
0�
0�
0�s�'B�B	�B	c
�2�UOoUUO2oQoUQ*UQ*.oUOU[UO	UU2222UOU[UO	[U2222P!)�
dir*/file*�
dirB/fileB�
dirC/fileC)rrrir�rGr�rrnr[r�r�s&    r�test_glob_pathlike�PathTest.test_glob_pathlike�sv���H�H��
�d�i�i�L�����l�"�A��$4�5�������Q�V�V�A�g�J�%7�!8�9������Q�V�V�H�W�,=�%>�!?�@rc�``�ROnUU1QkoRRO2oUUQP	,2UUQP
Q,2UUQP	,2UUQP
Q,2P!)c
��:�UOVQ5Tt.tFDo[U2jJ	ooSTt.tFDo[RROU22jJ!	ooROVS2P!ttohttoh)rv)rGrhrri)r�r�rwr�r�r�rnrs&&&&  ��r�_check�1PathTest.test_glob_case_sensitive.<locals>._check�sb���&*�i�i��i�&W�X�&W��c�!�f�&W�F�X�6>�?�h���A�d�i�i��O�,�h�H�?����V�.��Y��?s
�A-�'A2z
DIRB/FILE*r�z
dirb/file*�rr)rr�r�rnsf  @r�test_glob_case_sensitive�!PathTest.test_glob_case_sensitive�s\����H�H��	/�����|���t�\�4��,��t�\�5�<�.�9��t�\�4��,��t�\�5�<�.�9rc���UOo[OUUOQ229^tt^2UO	[UQ2O
Q22UQ2UQ2UQ2.2UO	[UQ2O
Q22UQ2UQ2UQ2UQ2UQ2.2UO	[UQ2O
Q22UQ2UQ2UQ2UQ2.2UO	[UQ2O
Q	22UQ2.2PPP2P!)%fhP!9h)
rrQr�rrrr�r6r�z**/*/*)rr
�
change_cwdrrir�rGr�s& r�
test_glob_dot�PathTest.test_glob_dot�s(���H�H��
�
!�
!�!�D�I�I�v�"6�
7�
7�����A�c�F�K�K��$�%��'�
�A�k�N�A�f�I�'N�
P�����A�c�F�K�K��%�&��7��Q�{�^�Q�v�Y�PQ�R^�P_�ab�cf�ag�(h�
j�����A�c�F�K�K��'�(�1�W�:�q��~�q��y�RS�T`�Ra�*b�
d�����A�c�F�K�K��)�*�Q�|�_�,=�
?�8�
7�
7�
7�s�DE#�#E4	�,E4	z1WASI resolution of '..' parts doesn't match POSIXc
��UOoUUO2oUO[UO	Q22UUOQ2.2UO[UO	Q22UUOQQ2.2UO[UO	Q22UUOQQ2.2UO[UO	Q22UUOQ2.2UO[UO	Q22[22UO[UO	Q22[22UOO
[Ic4UO[UO	Q22[22L=UO[UO	Q22UUOQ	Q2.2[OQ
6Xc]0oL]2oUO[UO	QOQ,U*222UUO,Q,U*N3.2P!)r�z../..�dirA/..rz
dirA/../file*z
dirA/../fileAzdirA/../file*/..z../xyzzyzxyzzy/..�xyzzy�
emscriptenr�)
rrrir�rGrUrV�sys�platformr+)rrnr[�NDOTDOTSs&   r�test_glob_dotdot�PathTest.test_glob_dotdot�s���
�H�H��
�d�i�i�L������Q�V�V�D�\�*�a��	�	�4�.@�,B�C�����Q�V�V�G�_�-��4�9�9�d�D�1I�/K�L�����Q�V�V�I�.�/�1�T�Y�Y���3M�1O�P�����Q�V�V�O�4�5��4�9�9�o�9V�7X�Y�����Q�V�V�$6�7�8�#�%�@�����Q�V�V�J�/�0�#�%�8��8�8�?�?�i�'����S����
�!3�4�c�e�<�
���S����
�!3�4��$�)�)�W�d�8S�6U�V��<�<�<�'��H��H�����Q�V�V�C�H�H�d�V�h�->�$?�@�A�Q�t�y�y�Ee�TX�SY�\d�Sd�Ee�Cf�grc��UOoUUOQQ2oUOP	Q5UOO	]2UO[
UOQ22[
22P!)�mydir1�mydir2r�r�)rrr*r�r.rir�rGr�s&  r�test_glob_inaccessible�PathTest.test_glob_inaccessiblesZ���H�H��
�d�i�i��8�,��	������	�����q������Q�V�V�C�[�)�3�5�1rc
�4�UOoUUOQ2oQoUQ*UQ*.oUOU[UO	UU2222UOU[UO	[U2222P!)r�**/file*rr6)rrrir�r�rr�s&    r�test_rglob_pathlike�PathTest.test_rglob_pathlikesx���H�H��
�d�i�i�� �����g�+�q�<�/�0�������Q�W�W�Q�w�Z�%8�!9�:������Q�W�W�X�g�->�%?�!@�Arc��``�UU1QkoROnRRO2oUUQ,2UUQQQ,2UUQ,QN2UUQ,QN2UUQQQ,2UUQ	,QN2UUQ
,QN2UUQ,QN2UUQ
,QN2UUQ,QN2UUQ,QN2UUQ,Q N2UUQ,Q!N2UUQQ,2UUQQ,2UUQQQ,2UUQQ,2P!)"c�:�UOUP	Q5Tt.tFD'oUOOQ2]6:fJ%UjJ)	ooROX2Tt.tFDoRROU2jJ	to2P!ttohttoh�T��recurse_symlinksr&)rGrj�countrir�r�rGr�r�r�rnrs&&&  ��rr��:PathTest.test_glob_recurse_symlinks_common.<locals>._checksu���'+�y�y���y�'M�9�'M�t����)�)�'�2�a�7��d�'M�F�9����V�%J��1�q����A���%J�K��9��%J��$A=�A=�B
rr�r�r�z*Az*B/*�linkB/fileB�*/fileB�*/z	dir*/*/..�dir*/**�dirC/dirD/fileD�dir*/**/�
dirC/dirD/z
dir*/**/..z	dir*/*/**z
dir*/*/**/zdir*/*/**/..z
dir*/**/fileCzdir*/*/../dirD/**/zdirC/dirD/../dirD/z	*/dirD/**z
*/dirD/**/)rrr)r��
dirB/linkDr�zlinkB/linkD)r��dirB/�dirC/�dirE/�linkB/)�dirC/dirD/..�
dirA/linkC/..�
dirB/linkD/..)r��
dirA/linkC�dirA/linkC/fileB�dirA/linkC/linkD�dirA/linkC/linkD/fileBr�r�r��dirB/linkD/fileBr�r��	dirC/dirDr��dirC/novel.txtr�)r��dirA/linkC/�dirA/linkC/linkD/r��dirB/linkD/r�r�r�)r�r�zdirB/..r��dirA/linkC/linkD/..zdirC/..r�zdirE/..)r�r�r�r�r�r�r�r�)r�r�r�r�)r�r�r�r�r��rr�r[rnsf  @r�!test_glob_recurse_symlinks_common�*PathTest.test_glob_recurse_symlinks_commons/���	L�
�H�H��
�d�i�i�L���q�'�2���q�,��|� <�=��q�$�2�3��q�&�T�U��q�)�l�M�:�;��q�$�F�G��q�+�Q�R��q�)��	�
	�q�*�?�	@��q�,�!G�	H�	�q�+� -�	.�	�q�,� a�b��q�.�#D�	E��q�/�L�>�2��q�&�)=�(>�?��q�+��.?�@�A��q�,���/rc�``�UU1QkoROnRRO2oUUQ,QN2UUQ,2UUQ,QN2UUQ,QN2UUQ,QN2UUP,QN2RROQ
2oUUQ,QN2UUQQQ,2UUQ
Q,2UUQQ	,2UUPQQ	,2UUQQ,2UUQQ,2P!)c�:�UOUP	Q5Tt.tFD'oUOOQ2]6:fJ%UjJ)	ooROX2Tt.tFDoRROU2jJ	to2P!ttohttohr�)r�rjr�rirr�s&&&  ��rr��;PathTest.test_rglob_recurse_symlinks_common.<locals>._check7su���'+�z�z�$��z�'N�9�'N�t����)�)�'�2�a�7��d�'N�F�9����V�%J��1�q����A���%J�K��9��%Jr�r�*/fileAr��file*r�r�r�r�r�rr�r��*/*�*.txt�*.*)r�r�r�r�r��linkB/linkD/fileB)	rr�r�r�r�rr�r�r�)
r�r�r�r�r�r�r�r�r��linkB/linkD/)rsr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�sf  @r�"test_rglob_recurse_symlinks_common�+PathTest.test_rglob_recurse_symlinks_common5s���	L�
�H�H��
�d�i�i�L���q�'�_�	`��q�)�R� ��q�)�a�	b��q�'�L�	M�	�q�$�S�	T��q�"�Q�	R�
�d�i�i�� ���q�#�8�	9��q�'�L�*;�<�=��q�%�+�,�-��q�$���'��q�"�w��-�.��q�'�,�-�.��q�%�*�+�,rc�``�UU1QkoROnRRO2oUOQ2oROU[O
O2UUQQ,2UUQQ,2UUQQ,2UUQ,2RO%cUUQ,QN2UUQ,QN2LUUQQ,2UUQ,QN2UUQ
,QN2UUP,QN2RROQ
2oUUQ,QN2UUQ
QQ,2UUQQQ,2UUQQ	Q,2UUQQ	,2UUQQ,2UUQQ	,2UUPQQ	,2UUQ,QN2UUQQQ	,2UUQQ,2UUQQ,2P!)c�:�[UOUP
Q52oROX2Tt.tFDoRROU2jJ	to2P!ttoh)Fr�)r�r�rirr�s&&&  ��rr��:PathTest.test_rglob_recurse_symlinks_false.<locals>._checkVsD�������D�5��A�B�F����V�%J��1�q����A���%J�K��%Js�A
rrr�z**/fileBr�r�r�r�r�r�r�r�rr�r�r�r�r�r�r�r�r�r�)r�r�r�r�)r�r�r�r�r�r�r�r�)r�r�r�r�r�)rr�r�r�)rsr�r�r�r�r�r)r�r�r�r�r�)rrr�r9�collectionsr-�Iteratorr()rr�r[r�rnsf   @r�!test_rglob_recurse_symlinks_false�*PathTest.test_rglob_recurse_symlinks_falseUs����	L�
�H�H��
�d�i�i�L��
�W�W�W�
�����b�+�/�/�":�":�;��q�'�G�9�%��q�'�L�>�*��q�*�|�n�-��q�)�R� ������1�i�"E�
F��1�d�1�
2�
�1�i�,��0��1�d�N�O��q�'�S�T��q�"�L�M�
�d�i�i�� ���q�#�>�	?��q�'�L�*;�<�=��q�*�|�->�?�@��q�)�l�,=�>�?��q�*�|�n�-��q�%�+�,�-��q�$���'��q�"�w��-�.��q�$�a�b��q�%�'�<�0�1��q�'�,�-�.��q�%�*�+�,rc�f�UOoUUOQ2oUQ*Q*o[UOQ22oUO	2%cU.L	[2oUOVE2UO[UOQ22[22P!)rr�FILEdzFILEd*)rrr�r�r�rir�s&     r�test_rglob_posix�PathTest.test_rglob_posix~s���H�H��
�d�i�i�� ��
��J�� ���A�G�G�G�$�%�����
�
�!���������'�����Q�W�W�X�.�/���7rc�6�UOoUUOQ2oUO[UO	Q22UUOQ2.2UO[UO	Q22UUOQ2.2P!)rr
r�z*\r�)rrrir�r�r�s&  r�test_rglob_windows�PathTest.test_rglob_windows�ss���H�H��
�d�i�i�� ������Q�W�W�W�-�.�!�D�I�I�?P�2Q�0S�T�����Q�W�W�U�^�,��$�)�)�\�0J�.L�Mrc	���UOoUUO2o[UOQP
Q52o.QloSO	X4Tt.tFDpRU*jJ
	to2P!ttoh)r�r�>rrrrrrr"r!r'r�r�r�r�r�r�r�)rrr�r�ri)rrnr[r�r�res&     r�test_rglob_symlink_loop� PathTest.test_rglob_symlink_loop�s^��
�H�H��
�d�i�i�L���A�G�G�C�%�G�8�9��
��	
���� 7��1�Q���� 7�8�� 7s�A*
c	��UOoUUO2Q*oUO2[]d2FDgoUQU0*oU]*%c&UO	UUOQQ22JCUO	UUOQ2P	Q5Ji	UO[
[UOQ222]d2UO[
[UOQ222]22UO[
[UOQ222]22UO[
[UOQ	222]22P!)
�permissionsrrr
rr#r�r�z*/fileCz*/file*)	rrr*r�r�rir�r�rG)rrnrr�rs&    r�test_glob_permissions�PathTest.test_glob_permissions�s��
�H�H������|�m�+���
�
���s��A��D���*�$�D��1�u�u�����$�)�)�V�]� C�D�����$�)�)�V� 4�$��O��	
����S����3��0�1�3�7�����S����4��1�2�B�7�����S����9�!5�6�7��<�����S����9�!5�6�7��<rc��UOUO2Q*oUO2UQ*oUOQ2UO	[UO
Q22U,2P!)�long_symlink�bad_linkr��Xbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbad)rrr*r�ri�sortedrG)rrrs&  r�test_glob_long_symlink�PathTest.test_glob_long_symlink�s\���x�x��	�	�"�^�3���
�
���*�$�����K�(������	�	�&� 1�2�X�J�?rc�T�UOoUO[UQ2O22Q2UO[UQ2O22Q2UO[UQ2O22Q2UO[UQ2O22Q2UO[UQ2O22Q2UO[UQ2O22Q2P!)r�r.r�rSr�r�)rrirhrnr�s& r�test_absolute_posix�PathTest.test_absolute_posix�s����H�H������Q�s�V�_�_�.�/��5�����Q�t�W�-�-�/�0�$�7�����Q�v�Y�/�/�1�2�F�;�	
����Q�t�W�-�-�/�0�$�7�����Q�u�X�.�.�0�1�5�9�����Q�w�Z�0�0�2�3�W�=rc�t�[O]2oUO[OU2UOUO2oUQ*OQ29^tt^2PPP2[OUOOUOQ22oUO[OUO2Q2[O]2UQ*OQ29^tt^2PPP2[OUOOUOQ22oUO[OUO2Q2P!)%fhCK'9h)%fhK�9h)r
�new_filer��other_new_file�)r��umaskrMrrr,r�rUr+rir�r��r�old_maskr[r�s&   r�test_open_mode�PathTest.test_open_mode�s���8�8�E�?��������(�+��H�H�T�Y�Y����*�n�
"�
"�4�
(�
(��)�
�W�W�T�[�[�%�%�d�i�i��<�
=��������b�j�j�1�5�9�
������"�"�
(�
(��
.�
.��/�
�W�W�T�[�[�%�%�d�i�i�1A�B�
C��������b�j�j�1�5�9�)�
(�
(��
/�
.�s$�3F�F'�F$	�F$	�'F7	�0F7	c�6�[O2o[OQ2UOQ2oUO	[UO
22Q2[OU2P![OS2h9h)r�r�z/spam)r�rLr�rrirhr�)r�current_directoryr[s&  r�test_resolve_root�PathTest.test_resolve_root�sb���I�I�K��	(��H�H�S�M����� �A����S�����-�w�7��H�H�&�'��B�H�H�&�'�s�AB�Bc���[O]2oUO[OU2UOUO2oUQ*O2[OUOOUOQ22oUO[OUO2Q2[O]2UQ*O2[OUOOUOQ22oUO[OUO2Q2UQ*OQQ5[OUOOUOQ22oUO[OUO2Q2P!)r
r%r&r'r(�masked_new_filer�)r�)r�r)rMrrr�r�rUr+rir�r�r*s&   r�test_touch_mode�PathTest.test_touch_mode�s;���8�8�E�?��������(�+��H�H�T�Y�Y���	
�Z���� �
�W�W�T�[�[�%�%�d�i�i��<�
=��������b�j�j�1�5�9�
�����	
�
�	�$�$�&�
�W�W�T�[�[�%�%�d�i�i�1A�B�
C��������b�j�j�1�5�9�	
�
�	�%�%�5�%�1�
�W�W�T�[�[�%�%�d�i�i�1B�C�
D��������b�j�j�1�5�9rrz%pwd module does not expose getpwall()zno home directory on VxWorksc�f�UOo[OQ2]PHoUO[
O22oUOoUOOQ29%fQoUO2FD=oUOoUOOQ2oVd6wfJ2U%fJ<L	SoSoQoUOU2%cUQ*
oJ#UQ2o	UQUQ02o
UQUQ02oUQUQ02oUQUQ02o
UP2oUQUQ02o[O29^tt^2oUOQ	2UO!U	O#2UU2Q
*2UO!U
O#2UU2Q
*2UO!UO#2UU2Q
*2UO!UO#2U2UO!U
O#2U
2UO!UO#2U2UO%[&UO"2QUQ	$UO!U	O#2UQ22UO!U
O#2UU2Q
*2UO!UO#2UU2Q
*2UO!UO#2U2UO!U
O#2U
2UO!UO#2U2UO%[&UO"2PPP2P![cCK�h9h)%fhP!9h)
r�r��fakeuserr�z~/Documentsrrz
/Documentsr�r�r{�	Documentsz/tmpz/tmp/Documents)rr�
import_moduler�r�r��getuidr��pw_dir�rstripr�getpwnamr�r
r|�unsetrirsr��RuntimeError)rrnr��pwdent�username�userhome�	othername�	otherhome�fakenamer�r��p3�p4�p5�p6�p7r~s&                r�test_expanduser_posix�PathTest.test_expanduser_posix�s���
�H�H���#�#�E�*�����b�i�i�k�*���>�>���=�=�'�'��,�3�3����l�l�n�F����I��
�
�,�,�S�1�I��$����	%�!�I� �I���	��,�,�x�(�(��C���)�
�}�
��
��8�*�J�'�
(��
��9�+�Z�(�
)��
��h�Z�z�*�
+��
��H�:�Z�(�
)��
�r�U��
��8�*�J�'�
(��
�
*�
*�
,�
,���I�I�f�����R�]�]�_�a��k�K�.G�H����R�]�]�_�a��k�K�.G�H����R�]�]�_�a�	�l�[�.H�I����R�]�]�_�b�1����R�]�]�_�b�1����R�]�]�_�b�1����l�B�M�M�:� �C��K����R�]�]�_�a�0@�.A�B����R�]�]�_�a��k�K�.G�H����R�]�]�_�a�	�l�[�.H�I����R�]�]�_�b�1����R�]�]�_�b�1����R�]�]�_�b�1����l�B�M�M�:�%-�
,���	��	��-�
,�
,�s1�N
�0N
�%HN�
	N�N�N�N0	�(N0	�darwinz1Bad file descriptor in /dev/fd affects only macOSc�B�[[OQ2OQ22Q*oU%fUO	Q2SFD�oUO2UO
2UO2UO2UO2UO2UO2UO2J�	P![c7oSO[O6XcSO!Q2gPo=hh9h)z/dev/fdr�:�NNz.no file descriptors - issue was not reproducedz Bad file descriptor not handled.)rr6r3r�rWr�rxryr�rprtrYr^rr�EBADF�fail)r�file_descriptorsr0r_s&   r�test_handling_bad_descriptor�%PathTest.test_handling_bad_descriptor9
s���	�#�G�L�L��$;�$A�$A�#�$F�G��K��#��
�
�N�O�&�����
����
��	�	�������!�!�#�� � �"��	�	�����
�&���	��w�w�%�+�+�%��	�	�<�=���	�s*�<C�BC�	D�'D�(D�D�Dc�x�UOoUOUOQ2UQ22UO[UOQ2UOUOQ2UQ22UOUOQ2UQ22UOUOQ2UQ22[
%f?UOUOQ[O2Q02UQ22UO[UOQ2UO[UOQ2UO[UOQ2UO[UOQ	2UO[UOQ
2P!)z
file:/foo/bar�/foo/barzfile://foo/barzfile:///foo/barzfile:////foo/bar�	//foo/barzfile://localhost/foo/barzfile://�foo/bar�file:foo/bar�http://foo/bar)rri�from_urir�r:rrh�gethostnamer�s& r�test_from_uri_posix�PathTest.test_from_uri_posixQ
s@���H�H��������O�4�a�
�m�D����*�a�j�j�2B�C�������$5�6��*�
�F�������$6�7��;��H�������$>�?��:��O��w����Q�Z�Z�'�&�2D�2D�2F�1G�x�(P�Q��z�]�
,����*�a�j�j�)�<����*�a�j�j�*�=����*�a�j�j�+�>����*�a�j�j�.�A����*�a�j�j�2B�Crc	���UOoUOUO[QP	Q52UQ22UOUO[QP	Q52UQ22P!)rV)�
add_schemerW�rrir[rr�s& r� test_from_uri_pathname2url_posix�)PathTest.test_from_uri_pathname2url_posixb
sY���H�H��������L���$M�N�PQ�R\�P]�^�������L���$N�O�QR�S^�Q_�`rc��	�UOoUO[UQ2O22Q2UO[UQ2O22Q2UO[UQ2O22Q2QoUO[UU2O22U2UO[UUQ*2O22UQ*2UO[UUQ*2O22UQ*2[O
Q29^tt^2oV#mUO[U2O22U2UO[UQ2O22U2UO[UQ2O22[OOUQ22UO[UQQQ	2O22[OOUQQQ	22PPP2[OOUO2]*o[OUO29^tt^2UO[UQ
2O22UQ
*2UO[UQ2O22UQ*2UO[UU2O22UO2UO[UUQ*2O22[OOUOQ22PPP2[OUO29^tt^2o[O2oUQ
0o[O U2[O U2UO[UU2O22U2UO[UUQ*2O22UQ*2PPP2P!)%fhCKZ9h)%fhCK
9h)%fhP!9h)rzr{r�z\\server\share\rRza\brkrQr�r�rXz\foor�z\dirA)rrirhrnrrlrmr�r�r+�
splitdriverr
r��subst_driverLr�)rrn�sharerLrC�other_drive�	saved_cwd�	other_cwds&       r�test_absolute_windows�PathTest.test_absolute_windowsh
sg���H�H��	
����Q�v�Y�/�/�1�2�F�;�����Q�w�Z�0�0�2�3�W�=�����Q�z�]�3�3�5�6�
�C�&������Q�u�X�.�.�0�1�5�9�����Q�u�s�{�^�4�4�6�7����E�����Q�u�v�~�.�7�7�9�:�E�F�N�K��Z�Z��
$�
$��"'�����S������0�%�8����S��3����!2�3�U�;����S��3����!2�3�R�W�W�\�\�%��5M�N����S��3��S�!1�!:�!:�!<�=��W�W�\�\�%��c�3�?�
A�
%����"�"�4�9�9�-�a�0��
�
!�
!�$�)�)�
,�
,����S��4��!1�!1�!3�4�e�d�l�C����S��7��!4�!4�!6�7����I�
���S��5��!2�!2�!4�5�t�y�y�A����S��5�5�=�!1�!:�!:�!<�=�r�w�w�|�|�D�I�I�W\�?]�^�-��
"�
"�4�9�9�
-�
-���	�	��I�&�-�v�.�I��H�H�Y���H�H�Y��
���S��;��!8�!8�!:�;�Y�G����S��;��#6�!7�!@�!@�!B�C�Y�QX�EX�Y�.�
-�'%�
$�
$��-�
,�
,��.�
-�
-�s9�$DR7�DS�:B3S�7S	�S	�S	�S	�S0	�(S0	c�b`````````	�ROn[O29^tt^2nROQQQQ2QRQ$RQ2nRQ2nRQ2nRQ	2nRQ
2nRP2n	RO	[
RO2RO	[
RO2RO	[
RO2RORO
2R2RORO
2R2ROR	O
2R	2UUUUUUUU	U1	QkoQRQ$U2Q
RQ$QRQ$U2ROQQ2QRQ$U2QRQ$U2PPP2P!)%fhP!9h)r{ry�HOMEPATH�	HOMEDRIVE�alice�USERNAMEz~/My Documentsz~alice/My Documentsz~bob/My Documentsz/~/My Documentszd:~/My Documentsc�:	�ROQP2RORO2RQ22RO[RO2QRQ$RORO2RQ22RORO2RQ22RORO2R2RORO2R2RORO2R2P!)rqzC:/Users/alice/My DocumentsrpzC:/Users/bob/My Documents)r�rirsr�r?)	rnr~r�r�rFrGrHrIrs	���������rr��/PathTest.test_expanduser_windows.<locals>.check�
s�������
�D�)�� � �����!"�#@�!A�C��!�!�,��
�
�>�")��J��� � �����!"�#@�!A�C�� � �����!"�#>�!?�A�� � �����"�5�� � �����"�5�� � �����"�5rzC:\Users\alicezC:\zUsers\alicezC:\Users\eve)rr
r|r>r�r?rsri)
rr�rnr~r�r�rFrGrHrIs
f @@@@@@@@r�test_expanduser_windows� PathTest.test_expanduser_windows�
sh�����H�H��
�
*�
*�
,�
,���I�I�f�m�Z��E�%�C�
�O��#�$�B��(�)�B��&�'�B��$�%�B��%�&�B��2��B����l�B�M�M�:����l�B�M�M�:����l�B�M�M�:����R�]�]�_�b�1����R�]�]�_�b�1����R�]�]�_�b�1�
6�
6�1�C�
�O��G�%�C���,�C�
�O��G��I�I�k�:�.�!3�C�
���G�+�C��K��G�[-�
,�
,�
,�s�EF�F.	�&F.	c�(�UOoUOUOQ2UQ22UOUOQ2UQ22UOUOQ2UQ22UOUOQ2UQ22UOUOQ2UQ22UOUOQ2UQ22UOUOQ2UQ22UOUOQ	2UQ22UOUOQ
2UQ22UO[UOQ2UO[UOQ2UO[UOQ
2UO[UOQ2UO[UOQ2P!)zfile:c:/path/to/file�c:/path/to/filezfile:c|/path/to/filezfile:/c|/path/to/filezfile:///c|/path/to/filezfile://server/path/to/file�//server/path/to/filezfile:////server/path/to/filezfile://///server/path/to/filez file://localhost/c:/path/to/filez file://localhost/c|/path/to/filerXz
c:/foo/barrWrYrZ)rrir[r�r:r�s& r�test_from_uri_windows�PathTest.test_from_uri_windows�
s����H�H��������$:�;�Q�?P�=Q�R�������$:�;�Q�?P�=Q�R�������$;�<�a�@Q�>R�S�������$=�>��BS�@T�U�������$@�A�1�E\�C]�^�������$B�C�Q�G^�E_�`�������$C�D�a�H_�F`�a�������$F�G��K\�I]�^�������$F�G��K\�I]�^����*�a�j�j�)�<����*�a�j�j�,�?����*�a�j�j�+�>����*�a�j�j�.�A����*�a�j�j�2B�Crc��UOoUOUOQ[Q2*2UQ22UOUOQ[Q2*2UQ22P!)zfile:zc:\path\to\filerwz\\server\path\to\filerxrar�s& r�"test_from_uri_pathname2url_windows�+PathTest.test_from_uri_pathname2url_windows�
sa���H�H��������G�l�;M�.N�$N�O�QR�Sd�Qe�f�������G�l�;S�.T�$T�U�WX�Yp�Wq�rrc���UOoUO[O29^tt^2UQ2O	2PPP2P!)%fhP!9h�rH)rr�r6r7rr�s& r�test_owner_windows�PathTest.test_owner_windows�
�?���H�H��
�
�
�w�;�;�
<�
<�
�e�H�N�N��=�
<�
<�
<���A�A'	�A'	c���UOoUO[O29^tt^2UQ2O	2PPP2P!)%fhP!9hr)rr�r6r7rr�s& r�test_group_windows�PathTest.test_group_windows�
r�r�r#)T)�r(r=r>r?rUr6r3rr
r(r\r5r>rDrNrZr�rardrhrort�unittest�skipIfr�rrr�r�r�r�r�r1r�r��skip_unless_xattrr�r�r�r�r�r�r�r�rrr	rrr,r�r�rr3r<rArIrNrRrUrYr`r$rcrgrjrmrprtrzr}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r+r�r�r�r�r�r��skip_unless_working_chmodr�r�r��
skipUnlessrrrrrr r)r-r2r6r:r=rCrGrO�skip_if_dac_overrider[r.rarhroru�skip_unless_hardlinkr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr�r�r�r�r�rrrrrrr#r'r*r-r0r6r<r?rErHrKrPrVrZr`rcrhrmrqruryr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr
rrrrrr"rr,r0r4rKrSr]rbrkrtryr|r�r�r@rAr�r�s@@rrres�
����I�
�,�,�C��'�'�)�K�%T�N$�;�
=��	B�)�F�)��_�,)��_�_��t��F��
-��
-��_�_�W�:�;�
N�<�
N�5�4B�B�E�&�F��F��F��F�� � �B�!�B��A��A��?��?��8��8�
�O��O��O��O��?��?��O��O��*��*��W��W��W��W��W��W� �E��E�(%F�N�_�_�S�\�\�W�,�F�F�����0F�H}�~��*���*�I�*� � �G�!�G��	=��	=��8��8�
�	=��	=��8��8�
�	=��	=�	:�����	:��&��&�8��%��%�8�
,� ����)��$��$�)�*��)��)���&���&���0���0���%���%���/���/���*���*�	:�����D�
�)��)��0��0��*��*��E��E�(�T&�
9G�F��5��9V��9V�v�A��A�:���5���5�,��%��%��_�_�W�R��,�.H�I��J���(�(�
5�)�
5���(�(�5�)��5�N�����F�G�3�H�3�����F�G��K��H�K�$O�����F�G�3�H�3�����F�G��K��H�K�$*�"�
*�+�F�$?��	=��	=��(��(�,�_�_�S�\�\�"�%��1�I�K��#�#��(�(�5�)�$�K�5�.�(��(�.�
&��
&������X�.�0F�G�
�_�_�S�\�\�Y�.�<�>�
%�>�H�
%�"�(�#�#�(�$�(�"�_�_�W�R��(�*@�A��B��(�"(�"<�0B�	;�F�2
<�<�"C�
�7��7�
;�
;�(�<�_�_�� � ��6���_�_����	�!�A��I�	�	�I��_�_�� � ��6���_�_����	�!�A��
I�	�	�
I��_�_�� � ��6���_�_����	�!�A��B�	�	�B� �_�_�� � ��6���_�_����	�!�A��I�	�	�I��_�_�� � ��6���_�_����	�!�A��
I�	�	�
I��.��.�.�_�_�W�R��+�-F�G��H��?�?�@��
-��
-�5�(<�
�?��?�
�+��+�
(�
=�&4�I�6�K�>� :�;�:������X�.�0F�G�
�_�_�S�\�\�Y�.�;�=�
J�=�H�
J�<�������3�5L�M�
�_�_��H���_�_��0��L���N�L�"B�A�	M�
4�G�* ��*��*��7��7��H��H��.�&	#�A�
:��
?��
?��_�_�W�Q�R�h�S�h�.2�B��"0��"0�H�-��-�>'-�R�8��8��N��N��9��9�$�=��=�$�@��@��	>��	>��_�_��6���:��	�
:� �(��(��_�_��6���:��	�
:�"�����j�1�@�B�
�_�_�S�\�\�Y�.�3�5��3;��5�B�
3;�j�_�_�S�\�\�X�-�H�J����J��*�D��D� �a��a�
�+Z��+Z�Z�/��/�b�D��D�*�s��s�
����
����rrc�`�\sQsQsn\O
s\Os\Os	Qs
QsQsQs
Qs\Q2s\Q2sQ	sUsP!)
�PathWalkTesti�
c	�v�UO2OQ2P*oU[7c$UO%fUO	Q2UOUOQ2UmUOQ*UmUOQ*Um	UOQ*Um
UOQ*UmUO,Q,1UmUOUOQ2o[OUO2[OUO2[OU2UOQ	*oUOQ
*oUOQ*oUOUOQQ2oV4VV1FD7o[UQQ
Q59^tt^2oUO!QUQ02PPP2J9	UO%c�UOQ*o	UOQ*o
[O"V OP	Q5[O"QU	2[O"[O$O'QQ2U
2UO,,QN1UmUOQ*oUQ*oUOQ*o
[OU2UO)Q2UO%cZ[O"V�2UO]*O+Q2UO]*O-2[O.U]2[O0U2[O.U[2O42[O6U2[O8U2P!)%fhCJK9h[:c'SO]*O+Q2P!h9h)rQr�TEST1�SUB1�SUB11�SUB2r�tmp3�TEST2�tmp1�tmp2�tmp4�wzutf-8)�encodingzI'm z' and proud of it.  Blame test_pathlib.
�broken_link�broken_link2r#�broken�SUB21�broken_link3zI am tmp5, blame test_pathlib.)r�r�rr�)rSrTr0r(rWrr�	walk_path�	sub1_path�
sub11_path�	sub2_path�	link_path�	sub2_treer��makedirsr,r-r/r�r+rNr�sortr.�listdirr�r�r,r5r2)rrZ�t2_path�	tmp1_path�	tmp2_path�	tmp3_path�	tmp4_pathr�r0�broken_link_path�broken_link2_path�
sub21_path�	tmp5_path�broken_link3_paths&             rr\�PathWalkTest.setUp�
s����w�w�y���s�#�B�'���*�*�4�3C�3C�3C��M�M�-�.����$�)�)�W�5������&�0����.�.�7�2������&�0������&�0����.�.�"�v�h�7��� �(�(�4�9�9�g�.��
���D�O�O�$�
���D�N�N�#�
���G���N�N�V�+�	��N�N�V�+�	��N�N�V�+�	��H�H�T�Y�Y���8�	��)�>�D��d�C�'�2�2�a����$�t�f�$L�M�N�3�2�?�����#�~�~�
�=�� $���� ?���J�J�w���D�I��J�J�x�!1�2��J�J�r�w�w�|�|�F�H�5�7H�I�"�n�n�b�2a�b�D�N��N�N�W�,�
���'�	� �N�N�^�;��
���J�����=�>������J�J�y�4��N�N�1��$�$�^�4��N�N�1��"�"�$�
����Q��	!��J�J�z�"�
�H�H�Z����.��I�I�i� ��H�H�Z� �93�2�2��.�	.��N�N�1��$�$�W�-�	.�s*�O2	�	P�2P
�;P
�	P8�#P8�7P8c���QUO]*7c7[OUOQ*[O
2[OUO2P!)r�)	r�r�r.r�r�r�r
r4rr:s&rr5�PathWalkTest.tearDown7s@���d�n�n�Q�'�'��H�H�T�^�^�g�-�t�|�|�<�������#rc�@�,oUOOUOQ5o[U2vq4oUO	U,2QoV6*oV6*OQ2oUO
U2ST	T
t,tFDvo	p�MJ
	oo	o
UOU2UOV{2UOV�2SFD#oV�6wfJUOV<*U2J%	UO
U2P!tto
o	hSO
S2h9h))�on_errorr�z.new)
r�r�rr�rirr�r~r�r�)
r�errors�walk_itrO�dirs�filesrJ�path1�path1newr�rQ�rootsrKs
&            r�test_walk_bad_dir�PathWalkTest.test_walk_bad_dir<s������.�.�%�%�v�}�}�%�=�� ��M���E������$�������K�,�,�V�4��
���X��		#�&-�.�g�7�1�a��Q�g�E�.��O�O�F�#����U�*����X�-����<��M�M�$�+�u�5��
�O�O�E�"��/��
�O�O�E�"�s$�=D
�D�?D
�D
�D
�
Dc	���]oUOUOQ2oUOU,Q,U*N3oUOP	Q5[]d2Tt,tFDpBO	P
Q5MJ	oo[U]*2FDCoX6%cQ,L,,1oSFDoUO[
U2U2J 	UOoJE	[]d2Tt,tFDpBO	P	Q5MJ	ooSo[U]*2FD?oX6U6cQ,L,,1oSFDoUO[
U2U2J 	UQ*oJA	P!ttohttoh)r�r�r�r���top_down)rrr*r�r�rir�r�)	rr�rr�rQr�r�r�r�s	&        r�test_walk_many_open_files�&PathWalkTest.test_walk_many_open_filesPs0�����x�x��	�	�6�*���x�x��-���e��-���
�
�4�
� �49�#�J�?�J�q���E��*�J��?��u�q�y�!�A��q�s�e�b�"�5�H���� � ��b��8�4���;�;�D�	"�49��:�>�:�a���D��)�:��>����u�q�y�!�A��5�y�s�e�b�"�=�H���� � ��b��8�4���#�:�D�	"��@��?s�E�Ec�t�](oU]
*oUOUOQ2oUOQ,U*oUOP	Q5[	U29^tt^2[UO
22[UO
P
Q52PPP2P!)%fhP!9h)�(r�r�r�r�)rrr�r*r	rr�r�s&    r�test_walk_above_recursion_limit�,PathWalkTest.test_walk_above_recursion_limites�����)�B�.���x�x��	�	�6�*���}�}��u��6�8���
�
�4�
� �
��
0�
0�����������E��*�+�1�
0�
0�
0�s�'5B&�&B7	�/B7	c���UOOP	Q5oSFD?vq#oV O6XfJUOU,2UOUQ,2P!	UO	Q2P!)Tr�r�z/Didn't follow symlink with follow_symlinks=True)r�r�r�rirQ�rr�rOr�r�s&    r�test_walk_follow_symlinks�&PathWalkTest.test_walk_follow_symlinksqsf���.�.�%�%�d�%�;��!(��D���~�~�%�� � ��r�*�� � ����1��	")�
�I�I�G�Hrc��UOOP
Q5oSFD+vq#oV O6XfJUOQU2L	UO	Q2UOOP	Q5oSFD,vq#oV O6XfJUOQU2P!	UO	Q2P!)Fr�rzsymlink not found)r�r�r�r�rQr�s&    r�test_walk_symlink_location�'PathWalkTest.test_walk_symlink_location|s����.�.�%�%�e�%�<��!(��D���~�~�%��
�
�f�e�,��")�

�I�I�)�*��.�.�%�%�d�%�;��!(��D���~�~�%��
�
�f�d�+��")�

�I�I�)�*r)r�r�r�r�r�r�)r(r=r>r?r6r3rrrr(r\r5r�r�r�r1r�r�r@rArBs@rr�r��
sf����
�,�,�C��=�=�D��&�&�K�?!�B$�
#�(�*
,��I��I��+��+rr�r�z'test requires a POSIX-compatible systemc�0�\sQsQs\O
sQsP!)�
PosixPathTesti�r#)r(r=r>r?r6r^rr@r#rrr�r��s
��
�
�
�Crr�z)test requires a Windows-compatible systemc�0�\sQsQs\O
sQsP!)�WindowsPathTesti�r#)r(r=r>r?r6r]rr@r#rrr�r��s
��
�
�
�Crr�c�F�\sQsQsQQ\O
2sPsQsP!)�PathSubclassTesti�c��\sQsQsQsP!)�PathSubclassTest.clsi�r#rar#rrrr��rrrr#)	r(r=r>r?r6r3rr?r@r#rrr�r��s��
�g�l�l�
� �rr�c�F`�\sQsQsnQsQQ2sQsQsQsUs	P!)�CompatiblePathTesti�zp
Test that a type can be made compatible with PurePath
derivatives by implementing division operator overloads.
c�8`�\sQsQsnQsQsQsQsQsUs	P!)�CompatiblePathTest.CompatPathi�z�
Minimum viable class to test PurePath compatibility.
Simply uses the division operator to join a given
string and the string value of another object with
a forward slash.
c��VmP!r��string)rr�s&&rr��&CompatiblePathTest.CompatPath.__init__�s�� �Krc�D�[U2UOQU02!r�rlr��r�others&&r�__truediv__�)CompatiblePathTest.CompatPath.__truediv__�s ����:����
�Q�u�g�6�7�7rc�D�[U2UQUO02!rr�r�s&&r�__rtruediv__�*CompatiblePathTest.CompatPath.__rtruediv__�s ����:���q����
�6�7�7rr�)
r(r=r>r?rUr�r�r�r@rArBs@r�
CompatPathr��s����	�	!�	8�	8�	8rr�c�|�[OQ2UOQ2*oUOVO2UO	UO
Q2UO
[29^tt^2[OQ2]
*PPP2P!)%fhP!9h)�test�rightz
test/right)r6r�r�r9rir�r�r��rr�s& r�test_truediv�CompatiblePathTest.test_truediv�sy���!�!�&�)�D�O�O�G�,D�D�����f�o�o�6��������5�
�
�
�y�
)�
)����V�$�r�)�*�
)�
)�
)���B*�*B;	�3B;	c�|�UOQ2[OQ2*oUOVO2UO	UO
Q2UO
[29^tt^2]
[OQ2*PPP2P!)%fhP!9h)�leftr�z	left/test)r�r6r�r9rir�r�r�r�s& r�
test_rtruediv� CompatiblePathTest.test_rtruediv�sy������(�7�+;�+;�F�+C�C�����f�o�o�6��������4�
�
�
�y�
)�
)���!�!�&�)�)�*�
)�
)�
)�r�r#)
r(r=r>r?rUr�r�r�r@rArBs@rr�r��s#�����
8�8� *�*�*rr��__main__)=rr$r�r�r�rr�r6r�rVrhr�rJr�r�urllib.requestr�test.supportrrrrrr	r
rr�test.support.os_helperr
rrr&�ImportErrorrr�r"r$r�r&r-r0r+r.r1�TestCaser3rErMrr
rrr�r�rZr�r�r�r�r(�mainr#rr�<module>r�s����	�	�
��
��
��
�����'�&�%�:�:�+�"�+�/�@�@�������
��u������%���
�
�S�x�0�0�S�I�X�&�&�I�s@�8�$�$�s@�l �� �"�,�"� �<� �I&�|�I&�XL]+�8�$�$�]+�@
������D��"K�L��H�/��M��
������D��"M�N��h� 3��O�� �x� �&*��*�*�&*�R�z���M�M�O���au���E�������C�#������E��sH�?G�G�
G.�G�G�G�G+�"G+�*G+�.G;�4G;�:G;

Youez - 2016 - github.com/yon3zu
LinuXploit