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/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python315/Lib/test/__pycache__/test_posixpath.cpython-315.opt-1.pyc
R
>lqjO�c���]PHs]PHs]PHs]PHs]PHs]PHs]PHs]QHGs]QHG	s	G
s
GsGsG
s
Gs]QH<Gs]QH<Gs]QHHGs]QHHGs]QHTGsGs]QHGs]PHfs\
\2sQ	sQ
sQQ\O<2sQ
Q\O@\O<2s!QQ\O<2s"\#Q6Xc\OH2P!P!\cPsKh9h)�)�partial)�realpath�abspath�dirname�basename�ALL_BUT_LAST�
ALLOW_MISSING)�support)�test_genericpath)�
import_helper)�	os_helper)�FakePath�TESTFN)�mockc�d�Q[7oQoU[OU2U2,U*!)z�
On Windows, posixpath.abspath still returns paths with backslashes
instead of posix forward slashes. If this is the case, several tests
fail, so skip them.
�\z'ABSTFN is not a posix path - tests fail)�ABSTFN�unittest�skip)�test�found_backslash�msgs&  �(C:\Python315\\Lib\test\test_posixpath.py�!skip_if_ABSTFN_contains_backslashrs0���f�n�O�
3�C��(�-�-��$�T�*�+�O�<�<�c�2�[OQU2!)�kwargs)r	�subTests)�
parameterss*r�
_parameterizer's�����H�j�1�1rc
�	`�\sQs]+snQsQsQsQsQsQs	Qs
QsQ	sQ
s
QsQsQ
sQs\O&Q2s\O,\PIQ2Q2s\O,\PIQ2Q2sQs\O,\O8Q6HQ2\O<Q22sQs Qs!\O,\O8Q6HQ2Q2s"\O,\O8Q6HQ2Q2s#,Q;MQ<MQ=MQ>MQ?MQ@MQAMQBMQCMQDMQEMQFMQGMQHMQIMQJMQKMQLMQMMQNMQOMQPMQQMQQMQRMQSMQTMQUMQVMQWMQXMQYMQZMQ[MQ\MQ]MQ^MQ_MQ`MQaMQbMQcMQdMQeMQfMQgMQhMQiMQjMQkMs$Qs%\&\'-QP	-Q\(-Q\)-2Q22s*\&\'-QP	-Q\(-Q\)-2Q 22s+\O&\&\'-Q\)-2Q!222s,\O&\&Q"22s-Q#s.\O&\&\'-Q\(-Q\)-2Q$222s/\O&\&Q%22s0\O&\&Q&22s1\O&\&\'QP	-Q\(-Q\)-2Q'222s2\O&\&\'-QP	-Q\(-Q\)-2Q(222s3\O&\&\'-QP	-Q\(-Q\)-2Q)222s4\O&\&\'-Q\(-Q\)-2Q*222s5\O&\&\'-QP	-Q\(-Q\)-2Q+222s6\O&\&\'-QP	-Q\(-Q\)-2Q,222s7\O&\&\O,\8Or\8Ot7Q-2\O,\O8Q.6gQ/2Q02222s;\O&\&\O,\8Or\8Ot7Q-2\O,\O8Q.6gQ/2\'QP	-Q\(-Q\)-2Q122222s<\&\O&Q222s=\&Q32s>\O&\&Q422s?\O&\&Q522s@\O&Q62sAQ7sBQ8sCQ9sDQ:sEUsFP!)l�
PosixPathTestc�|�QFD3oUO[O[U*22J5	P!)�)r#�1�2)�assertFalse�	posixpath�lexistsr)�self�suffixs& r�setUp�PosixPathTest.setUp-s)��$�F����Y�.�.�v���?�@�%rc��[OoUOUQQQQ2Q2UOUQQQ2Q2UOUQQQ2Q	2UOUQ
QQQ
2Q2UOUQ
QQ
2Q2UOUQQQ2Q2UOUQP2Q2UOUQPP2Q2UOUQQ2Q2UOUQQ2Q2UOUQQ2Q2UOUQQ2Q2UOUQQQ2Q2UOUQQQ2Q2UOUQQQ2Q2UOUQ Q2Q!2UOUQ"Q2Q!2UOUQQ#Q$2Q%2UOUQQ#Q&2Q&2P!)'�/foo�bar�/bar�baz�/bar/bazz/foo/bar/bazz/foo/zbar/zbaz/z
/foo/bar/baz/�/foo�bars/barsbazs/bar/bazs/foo/bar/bazs/foo/sbar/sbaz/s
/foo/bar/baz/�aza/�b�a/bzb/�a/b/�b/c�dza/b/c/dzb//cza/b//c/dzb/c/�/a�/a/bz/a/z/b�cz/b/cz/c)r'�join�assertEqual)r)�fns& r�	test_join�PosixPathTest.test_join1s���
�^�^������F�E�6�5�9�:�F�����F�E�5�1�>�J�����G�V�V�4�?�K�����G�V�W�f�=�{�K�����G�V�V�4��O�����H�g�w�7�?O�P�����C���t�4�����C��R��t�4�����C���u�5�����C���v�6�����D�#��u�5�����D�$��v�6�����C���,�y�9�����C���-�z�:�����C���-�y�9�����D�#��v�6�����E�3��v�6�����C��s�+�v�6�����C��t�,�t�4rc��UO[OQ2Q
2UO[OQ2Q2UO[OQ2Q2UO[OQ2Q
2UO[OQ2Q2UO[OQ2Q2UO[OQ2Q2UO[OQ2Q2UO[OQ2Q2UO[OQ	2Q2P!)�/foo/bar�/�foo�////foo�
//foo//bar�/foo/bar�/�foo�////foo�
//foo//bar)r.r/)rEr#)r#rF)�////rF)�//foor/)r3r4)rJr)rrK)�////rK)�//foor4)r?r'�split�r)s&r�
test_split�PosixPathTest.test_splitIs���������4�o�F��������-�y�9��������/��=��������3�_�E��������6�8H�I��������5�7H�I��������.��<��������0�-�@��������4�6G�H��������7�9K�Lrc�<�UO[OU2V#12UO[OQU*2QU*U12UO[OQU*2QU*U12UO[OQU*2QU*U12UO[OQU*2QU*U12UO[OUQ*2V#*Q*P12[UQ2o[UQ2o[UQ2oUO[OU2V#12UO[OQU*2QU*U12UO[OQU*2QU*U12UO[OQU*2QU*U12UO[OQU*2QU*U12UO[OUQ*2V#*Q*Q	12P!)
rEzabc/zabc.def/z	/abc.def/�ASCIIrJsabc/sabc.def/s	/abc.def/r)r?r'�splitext�bytes)r)�path�filename�exts&&&&r�splitextTest�PosixPathTest.splitextTestVs������+�+�D�1�H�?�C�����+�+�C�$�J�7�#��.�#�9N�O�����+�+�F�T�M�:� �8�+�S�1�	3�����+�+�J��,=�>�$�x�/��5�	7�����+�+�K�$�,>�?�%��0�#�6�	8�����+�+�D�3�J�7�"�.�3�.��3�	5��T�7�#����7�+���C��!������+�+�D�1�H�?�C�����+�+�D�4�K�8���/�3�/�	1�����+�+�G�d�N�;�!�H�,�c�2�	4�����+�+�K�$�,>�?�%��0�#�6�	8�����+�+�L�4�,?�@�&��1�3�7�	9�����+�+�D�4�K�8�"�.�4�/��5�	7rc���UOQQQ2UOQQQ2UOQQQ2UOQQQ	2UOQ
Q
P2UOQQP2UOQQP2UOQ
QQ2UOQQP2UOQQP2UOQQP2UOPPP2P!)zfoo.barrFz.barzfoo.boo.barzfoo.boozfoo.boo.biff.barzfoo.boo.biffz.csh.rcz.cshz.rc�nodotsz.cshrcz...manydotsz...manydots.extz.ext�.�..z........)r]rSs&r�
test_splitext�PosixPathTest.test_splitextrs������)�U�F�3����-��F�;����,�n�f�E����)�V�U�3����(�H�b�1����(�H�b�1����-���;����+�]�F�C����#�s�B�'����$��b�)����*�j�"�5����"�b�"�%rc��[OoUOUP2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ2Q2UOUQ	2Q2UOUQ
2Q2UOUQ2Q2UOUQ2Q2UOUQ
2Q2UOUQ2Q 2UOUQ2Q!2UOUQ2Q"2UOUQ2Q#2P!)$r#r5r7r8r;r<z/a/b/�//az///az///a/b�c:/a/b�\/a/b�\a\br�a�/a�//as///a)r#r#r#)r#r#r5)r#r#r7)r#r#r8)r#rEr5)r#rEr7)r#rEr8)r#�//r5)r#rErf)r#rEz//a/b)r#r#rg)r#r#rh)r#r#ri)rrr)rrrj)rrJrj)rs//rj)rrJrl)r'�	splitrootr?�r)�fs& r�test_splitroot�PosixPathTest.test_splitroot�s�����������2���-�����3���/�����5��?�3�����6��$4�5�����4��.�1�����6��$4�5�����7��%6�7�	
����5��?�3�����6��$4�5�����8��&8�9�����8��&8�9�����8��&8�9�����8��&8�9�����3���1�����4��"2�3�����5��#4�5�����6��$6�7�����7��%8�9rc��UO[OP2P
2UO[OQ2P	2UO[OQ2P	2UO[OQ2P	2UO[OQ2P
2UO[OQ2P
2UO[OQ2P	2UO[OQ2P	2UO[OQ2P	2UO[OQ	2P
2P!)
r#rEr.rD�foo/barrrJr3rIsfoo/bar)�assertIsr'�isabsrSs&r�
test_isabs�PosixPathTest.test_isabs�s����
�
�i�o�o�b�)�5�1��
�
�i�o�o�c�*�D�1��
�
�i�o�o�f�-�t�4��
�
�i�o�o�j�1�4�8��
�
�i�o�o�i�0�%�8��
�
�i�o�o�c�*�E�2��
�
�i�o�o�d�+�T�2��
�
�i�o�o�g�.��5��
�
�i�o�o�k�2�D�9��
�
�i�o�o�j�1�5�9rc��UO[OQ2Q2UO[OQ2P2UO[OQ2Q2UO[OQ2Q2UO[OQ2Q2UO[OQ2Q2UO[OQ2Q	2UO[OQ
2Q
2UO[OQ2Q
2UO[OQ2Q2P!)
rDr/rErFrGrHrIr4rJrrKrLrM)r?r'rrSs&r�
test_basename�PosixPathTest.test_basename�s������+�+�J�7��?�����+�+�C�0�"�5�����+�+�E�2�E�:�����+�+�I�6��>�����+�+�L�9�5�A�����+�+�K�8�&�A�����+�+�D�1�3�7�����+�+�F�3�V�<�����+�+�J�7��@�����+�+�M�:�F�Crc��UO[OQ2Q2UO[OQ2Q2UO[OQ2P2UO[OQ2Q2UO[OQ2Q2UO[OQ2Q	2UO[OQ
2Q
2UO[OQ2Q2UO[OQ
2Q2UO[OQ2Q2P!)rDr.rErFrGrNrHrOrIr3rJrKrrLrPrMrQ)r?r'rrSs&r�test_dirname�PosixPathTest.test_dirname�s������*�*�:�6��?�����*�*�3�/��5�����*�*�5�1�2�6�����*�*�9�5�v�>�����*�*�<�8�'�B�����*�*�;�7��A�����*�*�4�0�$�7�����*�*�6�2�C�8�����*�*�:�6��@�����*�*�=�9�8�Drc���UO[O[Q*2P
2UO[O[Q*2P
2UO[O[Q*2[[Q*Q29^tt^2oUOQ2PPP2UO[O[Q*2P
2[O2%Cc@UO[O[Q*2[O[Q*[Q*2UO[O[Q*2P	2[O[Q*2UO[O[Q*2P	2UO[O[Q*2P
2UO[O[Q*2P	2P!P!)%fhCK�9h)r$r%�wbrK)rur'�islinkrr(�
addCleanupr�unlink�open�write�can_symlink�os�symlink�remove�existsros& r�test_islink�PosixPathTest.test_islink�sf���
�
�i�&�&�v��|�4�e�<��
�
�i�'�'����5�u�=����	�(�(�&�3�,�7�
�&�3�,��
%�
%��
�G�G�F�O�&��
�
�i�&�&�v��|�4�e�<�� � �"�"��O�O�I�,�,�f�s�l�;��J�J�v��|�V�c�\�2��M�M�)�*�*�6�C�<�8�$�?��I�I�f�s�l�#��M�M�)�*�*�6�C�<�8�$�?��M�M�)�*�*�6�C�<�8�%�@��M�M�)�+�+�F�S�L�9�4�@�#�	&�
%�
%�s�.I�I'	�I'	c���UO[O[Q*2P
2UO[O[O
[2Q*2P
2UO[O[Q*2P
2UO[O[O
[2Q*2P
2P!)u�����)rur'r�rr��fsencoderSs&r�test_islink_invalid_paths�'PosixPathTest.test_islink_invalid_paths�s����
�
�i�&�&�v��'8�9�5�A��
�
�i�&�&�r�{�{�6�':�W�'D�E�u�M��
�
�i�&�&�v���7��?��
�
�i�&�&�r�{�{�6�':�W�'D�E�u�Mrc�\�UO[OQ2P	2UO[OQ2P	2UO[O[Q22P	2UO[O[Q22P	2P!)rErJ)rur'�ismountr
rSs&r�test_ismount�PosixPathTest.test_ismount�sn���
�
�i�'�'��,�d�3��
�
�i�'�'��-�t�4��
�
�i�'�'���
�6��=��
�
�i�'�'����7��>rc�X�UO[O[2P
2[O
[2UO[O[2P
2[O[2P![O[2h9h)F)rur'r�rr��mkdirr�rmdirrSs&r�test_ismount_non_existent�'PosixPathTest.test_ismount_non_existent�s^���
�
�i�'�'��/��7�	$��H�H�V���M�M�)�+�+�F�3�U�;��O�O�F�#��I�O�O�F�#�s�AB
�
B)c�8�UO[OQ2P
2UO[OQ2P
2UO[OQ2P
2UO[OQ2P
2P!)�/��/��/�/)rur'r�rSs&r�test_ismount_invalid_paths�(PosixPathTest.test_ismount_invalid_paths�sf���
�
�i�'�'�	�2�E�:��
�
�i�'�'��1�5�9��
�
�i�'�'��0�%�8��
�
�i�'�'��1�5�9rc��[OQ[2UO[O
[2P
2[O[2P![O[2h9h)rE)r�r�rrur'r�rr�rSs&r�test_ismount_symlinks�#PosixPathTest.test_ismount_symlinks�sK��	%��J�J�s�F�#��M�M�)�+�+�F�3�U�;����V�$��I���V�$�s�AA$�$BzTest requires posix modulec���[OoQoU[mUO[O[
2P	2U[mP!S[mh9h)c�h�]o]oU[6Xc]o]o[O]V]]]]]]]1
2!)r)r�posix�stat_result�rZ�st_ino�st_devs&  r�
fake_lstat�?PosixPathTest.test_ismount_different_device.<locals>.fake_lstat�sA���F��F��v�~������$�$�a���A�q�!�Q��1�%M�N�Nr�r��lstatrur'r�r�r)�
save_lstatr�s&  r�test_ismount_different_device�+PosixPathTest.test_ismount_different_device�sG���X�X�
�	O�	"�!�B�H��M�M�)�+�+�F�3�T�:�!�B�H��z�B�H���5A�
A%c���[OoQoU[mUO[O[
2P	2U[mP!S[mh9h)c���]o]oUO[2%cU[6wc[Q2gU[6Xc]o]o[O]V]]]]]]]1
2!)rz!Fake [Errno 13] Permission denied)�
startswithr�OSErrorr�r�r�s&  rr��EPosixPathTest.test_ismount_directory_not_readable.<locals>.fake_lstatsd���F��F����v�&�&�4�6�>��A�B�B��v�~������$�$�a���A�q�!�Q��1�%M�N�Nrr�r�s&  r�#test_ismount_directory_not_readable�1PosixPathTest.test_ismount_directory_not_readable	sG���X�X�
�
	O�	"�!�B�H��M�M�)�+�+�F�3�T�:�!�B�H��z�B�H�r�c�Z�UO[O[22P!�N)r&r'�
isjunctionrrSs&r�test_isjunction�PosixPathTest.test_isjunctions������-�-�f�5�6r�win32zFast paths are not for win32c���UO[OO[O
I2UO
[O[OO22UO[OO[OI2UO
[O[OO22P!r�)�
assertTruer�rZrnr��_path_splitroot_exr&�inspect�
isfunction�normpath�_path_normpathrSs&r�test_fast_paths_in_use�$PosixPathTest.test_fast_paths_in_use"s���
	
������)�)�U�-E�-E�E�F�����+�+�B�G�G�,=�,=�>�?�������(�(�E�,@�,@�@�A�����+�+�B�G�G�,<�,<�=�>rc��UO[OQ2Q2UO[OQ2Q2P!)rFrK)r?r'�
expanduserrSs&r�test_expanduser�PosixPathTest.test_expanduser,s8������-�-�e�4�e�<�����-�-�f�5�v�>rc��[O29^tt^2oQUQ$UO[OQ2Q2QUQ$UO[OQ2Q2Q	FD�oUOUQ59^tt^2V!Q$UO[OQ2Q2UO[OQ2Q2UO[OQ2Q2PPP2J�	PPP2P!)%fhJ�9h)%fhP!9h)
z/home/victor�HOME�~z
/home/victor/rE)�home�~/z~/foor.)rEr#rm�///)r�EnvironmentVarGuardr?r'r��subTest)r)�envr�s&  r�test_expanduser_home_envvar�)PosixPathTest.test_expanduser_home_envvar0s���
�
*�
*�
,�
,��(�C��K����Y�1�1�#�6��G�*�C��K����Y�1�1�#�6��G�,���\�\�t�\�,�,�"&��K��$�$�Y�%9�%9�#�%>��D��$�$�Y�%9�%9�$�%?��E��$�$�Y�%9�%9�'�%B�F�K�	-�,�-�-�
,�-�,�,��-�
,�
,�s1�A7D7�A7D#
�
D7�#D4�,D4�.	D7�7E	�E	�vxworkszno home directory on VxWorksc
�F�[OQ2oUO[OQ2[
2UO[OQ2[2[OQ2Q6wc�UO[OQ2Q*[OQ22UO[OQ2Q*[OQ22UO[OQ2[
2UO[OQ2[
2UO[OQ	2[2UO[OQ
2[2[O29^tt^2oUQUO[O22OoUOQ29%fQoUO[OQ2U2[O O#UQ[$Q
59^tt^2[O O#UQ[$Q
59^tt^2QFD)oUO[OU2U2J+	PPP2PPP2PPP2P!)%fhK"9h)%fhK-9h)%fhP!9h)�pwdr�s~/r�rE�~rJz~root/z~foo/s~root/s~foo/r��getpwuid)�side_effect�getpwnam)r�z~/.localz
~vstinner/)r�
import_module�assertIsInstancer'r��strrYr?rr�r�r��getuid�pw_dir�rstripr�patch�object�KeyError)r)r�r�r�rZs&    r�test_expanduser_pwd�!PosixPathTest.test_expanduser_pwd@s#���)�)�%�0�����i�2�2�4�8�#�>����i�2�2�5�9�5�A�����$��+�����$�$�S�)�C�/��$�$�T�*�
�
����$�$�T�*�T�1��$�$�U�+�
�	
���i�2�2�8�<�c�B����i�2�2�7�;�S�A����i�2�2�9�=�u�E����i�2�2�8�<�e�D�
�
*�
*�
,�
,���F���<�<��	�	��,�3�3�D��;�;�s�#�*�*�s�D����Y�1�1�#�6��=����"�"�3�
��"�I�I����"�"�3�
��"�I�I�;�D��$�$�Y�%9�%9�$�%?��F�<�J�J�-�
,�J�I��J�I��-�
,�
,�sV�A	L�AL�//K<	�1K)
�K<	�L�)K9�2K9�4K<	�<L
�L
�L�L 	�L 	c��[OQ2o[OUQ2oU2Tt,tFDp3OMJ	oo[O
Q2%cQL]do[
U2U6�c=[OU2UOQQ5VE]*U']*/SFD�oUOU2oUOoUOQ29%fQoUOVcOQ59^tt^2UO[O QU*2U2UO[O ["O$QU*22["O$U22PPP2J�	P!ttoh)%fhCJ9h)	r��getpwall�cpu��c�$�UO2!r�)�isascii)�names&r�<lambda>�4PosixPathTest.test_expanduser_pwd2.<locals>.<lambda>ts
�����r)�keyrE)r�r�r�)rr�r	�
get_attribute�pw_name�is_resource_enabled�len�random�shuffle�sortr�r�r�r�r?r'r�r�r�)r)r�r��entry�names�maxusersr�r�s&       r�test_expanduser_pwd2�"PosixPathTest.test_expanduser_pwd2isM���)�)�%�0���(�(��j�9��,4�J�7�J�5���J��7�"�6�6�u�=�=�4�3���u�:�� �
�N�N�5�!��J�J�6�J�7���k�8�)�Q�,�.�/��D��L�L��&�E��<�<�D��;�;�s�#�*�*�s�D����4����=�=�� � ��!5�!5�c�D�j�!A�4�H�� � ��!5�!5�b�k�k�#��*�6M�!N�!#���T�!2�4�>�=���8�>�=�=�s�F.�BF3	�3G
�<G
c	��UOFD�vqUOU29^tt^2[OU2oUO	V22PPP2UOQ2oUOQ2oUOU[Q59^tt^2[OU2oUO	V22PPP2J�	P!)%fhK�9h)%fhJ�9h)Nzutf-8)�type)�NORMPATH_CASESr�r'r�r?�encoderY)r)rZ�expected�results&   r�
test_normpath�PosixPathTest.test_normpath�s���"�1�1�N�D����d�#�#�"�+�+�D�1��� � ��2�$��;�;�w�'�D����w�/�H����d���/�/�"�+�+�D�1��� � ��2�0�/�2�#�#��0�/�/�s#�(C	�(C'	�C$
�C$
�'C8
�0C8
�strictc��UO[Q-U@[O22UO[Q-U@[O22UO[QO	Q,]d*21-U@[O22UO[Q-U@[O
22UO[Q-U@[O
22UO[QO	Q,]d*21-U@[O
22P!)rarE�.rJ)ra)z./.)r)s./.)r?rr��getcwdr>�getcwdb�r)rs&&r�test_realpath_curdir�"PosixPathTest.test_realpath_curdir�s���	
����0��0�"�)�)�+�>�����2�6�2�B�I�I�K�@�����#�(�(�C�5�3�;�"7�B�6�B�B�I�I�K�P�����1�&�1�2�:�:�<�@�����3�F�3�R�Z�Z�\�B�����$�)�)�T�F�S�L�"9�D�V�D�b�j�j�l�Src	��UO[Q-U@[[O222UO[Q-U@[[[O2222UO[QOQ,]d*21-U@Q2UO[Q-U@[[O222UO[Q-U@[[[O2222UO[QOQ,]d*21-U@Q2P!)rbrE�..rJ)rb)z../..)r)s../..)r?rrr�rr>rrs&&r�test_realpath_pardir�"PosixPathTest.test_realpath_pardir�s���	
����1�&�1�7�2�9�9�;�3G�H�����4�V�4�g�g�b�i�i�k�>R�6S�T�����#�(�(�D�6�C�<�"8�C�F�C�S�I�����2�6�2�G�B�J�J�L�4I�J�����5�f�5�w�w�r�z�z�|�?T�7U�V�����$�)�)�U�G�c�M�":�E�f�E�t�Lrc� �[O[Q*[2UO[	[1-U@[Q*2[
O[2P![
O[2h9h�r$)r�r�rr?rrr�rs&&r�test_realpath_basic�!PosixPathTest.test_realpath_basic�sT��
	%��J�J�v�c�z�6�*����X�f�7��7����D����V�$��I���V�$�s�AA1�1B
c�Z�[O[Q*[2UO[[
[P	Q5UO[[
[Q*P	Q5[O[2P![O[2h9h)r$�rr%)r�r�r�assertRaises�FileNotFoundErrorrrr�rSs&r�test_realpath_strict�"PosixPathTest.test_realpath_strict�sk��
	%��J�J�v�c�z�6�*����/��6�$��O����/��6�C�<�PT��U����V�$��I���V�$�s�A/B�B*c��QoUO[[UP
Q5UO[[U[Q5UO[[UP	Q5UO[[U[Q5QoUO[[UP
Q5UO[[U[Q5UO[[UP	Q5UO[[U[Q5QoUO[[UP
Q5UO[
[U[Q5UO[
[UP	Q5UO[[U[Q5QoUO[[UP
Q5UO[
[U[Q5UO[
[UP	Q5UO[[U[Q5QoUO[[UP
Q5UO[[U[Q5UO[[UP	Q5UO[[U[Q5QoUO[[UP
Q5UO[[U[Q5UO[[UP	Q5UO[[U[Q5QoUO[[UP
Q5UO[
[U[Q5UO[
[UP	Q5UO[[U[Q5QoUO[[UP
Q5UO[
[U[Q5UO[
[UP	Q5UO[[U[Q5Q	o[OQ
6Xc]UO[UP
Q5U2UO[
[UP	Q5UO[U[Q5U2L|UO[[UP
Q5UO[[U[Q5UO[[UP	Q5UO[[U[Q5Qo[OQ
6Xc@UO[UP
Q5U2UO[U[Q5U2L>UO[[UP
Q5UO[[U[Q5UO[
[U[Q5UO[
[UP	Q5Qo[OQ
6Xc]UO[UP
Q5Q
2UO[
[UP	Q5UO[U[Q5Q
2L|UO[[UP
Q5UO[[U[Q5UO[[UP	Q5UO[[U[Q5Qo[OQ
6Xc@UO[UP
Q5Q2UO[U[Q5Q2L>UO[[UP
Q5UO[[U[Q5UO[
[U[Q5UO[
[UP	Q5Qo[OQ
6Xc]UO[[UP
Q5UO[[UP	Q5UO[[U[Q5L�UO[UP
Q5U2[O%caUO[[U[Q5UO[[UP	Q5UO[[U[Q5L_UO[U[Q5U2UO[
[UP	Q5UO[U[Q5U2Qo[OQ
6Xc@UO[[UP
Q5UO[[U[Q5LUO[UP
Q5U2[O%cbUO[[U[Q5UO[[UP	Q5UO[[U[Q5P!UO[
[U[Q5UO[
[UP	Q5P!)r�rr�z/nonexistent/xs/nonexistent/xz//..s//..z/nonexistent/x/..s/nonexistent/x/..r�r�u/nonexistent/�u/�/..rEu/nonexistent/�/..�/nonexistentr�s/nonexistent/�)r�
ValueErrorrrrr�sys�platformr?�UnicodeEncodeError�UnicodeDecodeErrorr	�is_wasir��r)rZs& r�test_realpath_invalid_paths�)PosixPathTest.test_realpath_invalid_paths�s��������*�h��U��C����*�h��\��J����*�h��T��B����*�h��]��K������*�h��U��C����*�h��\��J����*�h��T��B����*�h��]��K�#�����*�h��U��C����+�X�t�L��Q����+�X�t�D��I����*�h��]��K�$�����*�h��U��C����+�X�t�L��Q����+�X�t�D��I����*�h��]��K������*�h��U��C����*�h��\��J����*�h��T��B����*�h��]��K������*�h��U��C����*�h��\��J����*�h��T��B����*�h��]��K�&�����*�h��U��C����+�X�t�L��Q����+�X�t�D��I����*�h��]��K�'�����*�h��U��C����+�X�t�L��Q����+�X�t�D��I����*�h��]��K����<�<�7�"����X�d�5�9�4�@����/��4���M����X�d�=�A�4�H����0�(�D���O����0�(�D���V����0�(�D���N����0�(�D���W�$���<�<�7�"����X�d�5�9�4�@����X�d�=�A�4�H����0�(�D���O����0�(�D���W����+�X�t�L��Q����+�X�t�D��I����<�<�7�"����X�d�5�9�3�?����/��4���M����X�d�=�A�3�G����0�(�D���O����0�(�D���V����0�(�D���N����0�(�D���W�'���<�<�7�"����X�d�5�9�>�J����X�d�=�A�>�R����0�(�D���O����0�(�D���W����+�X�t�L��Q����+�X�t�D��I����<�<�7�"����0�(�D���O����0�(�D���N����0�(�D���W����X�d�5�9�4�@������!�!�'�8�T�,�!�O��!�!�'�8�T�$�!�G��!�!�'�8�T�-�!�P�� � ��$�|�!D�d�K��!�!�"3�X�t�D�!�Q�� � ��$�}�!E�t�L�#���<�<�7�"����0�(�D���O����0�(�D���W����X�d�5�9�4�@��?�?�?����g�x��l��K����g�x��d��C����g�x��m��L����/��4���U����/��4���Mrc�H�[O[O[Q*2[2UO[
[1-U@[Q*2[O[2P![O[2h9hr)	r�r�r'�relpathrr?rrr�rs&&r�test_realpath_relative�$PosixPathTest.test_realpath_relative_s_��	%��J�J�y�(�(����4�f�=����X�f�7��7����D����V�$��I���V�$�s�A&B�B!c��[O[Q*[2Q[*oUO[	U2[
Q*2UO[	U[Q5[
Q*2UO[[U[Q5UO[[UP	Q5[O[2P![O[2h9h)r$znonexistent/../r)r�r�rr?rrrrrrrr�r*s& r�test_realpath_missing_pardir�*PosixPathTest.test_realpath_missing_pardiris���	%��J�J�v��|�V�,�$�v�-�D����X�d�^�V�c�\�:����X�d�=�A�6�C�<�P����/��4���U����/��4���M����V�$��I���V�$�s�CC"�"C>c	�
�[O[[2UO[	[2[2[O[Q*[Q*2[O[Q*[Q*2UO[	[Q*2[Q*2UO[	[Q*2[Q*2UO[	[Q*2[Q*2UO[	[Q*2[[22UO[	[Q*2[[2Q*2[O[Q*[Q*2UO[	[Q*[
[2*Q*2[Q*2UO[	[Q*[
[2*Q*2[Q*2[O[
[2Q	*[Q
*2UO[	[Q
*2[Q	*2[OQ[
[[22*Q*[
[2*Q
*[Q
*2UO[	[Q
*2[Q
*2[O[[229^tt^2UO[	[
[22[2PPP2[O[2[O[Q*2[O[Q*2[O[Q*2[O[Q
*2[O[Q
*2P!)%fhK�9h[O[2[O[Q*2[O[Q*2[O[Q*2[O[Q
*2[O[Q
*2h9h)r$r%�1/x�1/..�1/../x�/x�x�y�1/../r7r5�../rEr=)
r�r�rr?rrrr�
change_cwdr�rSs&r�test_realpath_symlink_loops�)PosixPathTest.test_realpath_symlink_loopsvs	��
"	)��J�J�v�v�&����X�f�-�v�6��J�J�v�c�z�6�#�:�.��J�J�v�c�z�6�#�:�.����X�f�S�j�1�6�#�:�>����X�f�S�j�1�6�#�:�>����X�f�U�l�3�V�E�\�B����X�f�V�m�4�g�f�o�F����X�f�X�o�6����$�8N�O��J�J�v�c�z�6�#�:�.����X�f�W�n�x��7G�&G�#�&M�N�#�c�\�
+����X�f�W�n�x��7G�&G�#�&M�N�#�c�\�
+�
�J�J�x��'�%�/����<����X�f�S�j�1�6�%�<�@��J�J�u�x����8�8�3�>���'�(�*-�.�/5�c�z�
;����X�f�S�j�1�6�#�:�>��%�%�g�f�o�6�6�� � ��(�6�*:�!;�V�D�7�
���V�$����V�C�Z�(����V�C�Z�(����V�C�Z�(����V�C�Z�(����V�C�Z�(�7�6��
���V�$����V�C�Z�(����V�C�Z�(����V�C�Z�(����V�C�Z�(����V�C�Z�(�s+�NR�-Q>�5R�>R	�R	�	R�CUc	�
�[O[[2UO[[
[1-U@[O[Q*[Q*2[O[Q*[Q*2UO[[
[Q*1-U@UO[[
[Q*1-U@UO[[
[Q*1-U@UO[[
[Q*1-U@UO[[
[Q*1-U@[O[Q*[Q*2UO[[
[Q*[
[2*Q*1-U@UO[[
[Q*[
[2*Q*1-U@[O[
[2Q*[Q	*2UO[[
[Q	*1-U@[OQ
[
[[22*Q*[
[2*Q*[Q*2UO[[
[Q*1-U@[O[[229^tt^2UO[[
[
[21-U@PPP2[O[2[O[Q*2[O[Q*2[O[Q*2[O[Q*2[O[Q	*2P!)%fhK�9h[O[2[O[Q*2[O[Q*2[O[Q*2[O[Q*2[O[Q	*2h9h)
r$r%r5r6r7r9r:r;r7r5r<rEr=)r�r�rrr�rrrrr=r�rs&&r�"test_realpath_symlink_loops_strict�0PosixPathTest.test_realpath_symlink_loops_strict�s��"	)��J�J�v�v�&����g�x��B�6�B��J�J�v�c�z�6�#�:�.��J�J�v�c�z�6�#�:�.����g�x����F�v�F����g�x����F�v�F����g�x����H��H����g�x����I�&�I����g�x����K�F�K��J�J�v�c�z�6�#�:�.����g�x�$�W�n�x��/?�?�#�E�
Q�IO�
Q����g�x�$�W�n�x��/?�?�#�E�
Q�IO�
Q�
�J�J�x��'�%�/����<����g�x����F�v�F��J�J�u�x����8�8�3�>���'�(�*-�.�/5�c�z�
;����g�x����F�v�F��%�%�g�f�o�6�6��!�!�'�8�X�f�5E�P��P�7�
���V�$����V�C�Z�(����V�C�Z�(����V�C�Z�(����V�C�Z�(����V�C�Z�(�7�6��
���V�$����V�C�Z�(����V�C�Z�(����V�C�Z�(����V�C�Z�(����V�C�Z�(�s+�L1P<�4,P)� P<�)P9	�2P9	�4P<�<CS=c��[O[2[OQ[	[2*[Q*2[OQ[Q*2UO[
[Q*1-U@[2[O[Q*2[O[Q*2[O[2P![O[Q*2[O[Q*2[O[2h9h)r<z/selfzself/self/self�/link)
r�r�rr�rr?rrr�r�rs&&r�(test_realpath_repeated_indirect_symlinks�6PosixPathTest.test_realpath_repeated_indirect_symlinks�s���
	$��H�H�V���J�J�u�x��/�/��'�1A�B��J�J�'��'�)9�:����X�f�w�&6�A�&�A�6�J����V�g�-�.����V�g�-�.��O�O�F�#��
���V�g�-�.����V�g�-�.��O�O�F�#�s
�BC?�?AEc	���]
o[O[2[U2FDQo[OQOQU*,]
*2[QU]***2JS	[OQ[Q*2UO
[[QU**1-U@[2[O[29^tt^2UO
[QU*2[2PPP2[U]*2FD+o[O[QU**2J-	[O[2P!)%fhKn9h[S]*2FD+o[O[QS**2J-	[O[2h9h)�
rEz%dz/%draz/0)r�r�r�ranger�r>r?rrr=r�r�)r)r�depth�is&&  r�test_realpath_deep_recursion�*PosixPathTest.test_realpath_deep_recursion�s6����
	$��H�H�V���5�\���
�
�3�8�8�T�A�X�J��O�4�f�u��A���6N�O�"��J�J�s�F�T�M�*����X�f�u�u�}�&<�G��G��P��%�%�f�-�-�� � ��$��,�!7��@�.��5�1�9�%��� � ��%�!�)�!3�4�&��O�O�F�#�.�-���5�1�9�%��� � ��%�!�)�!3�4�&��O�O�F�#�s+�C2F�7'F�F�F	�
F	�F�AG5c	�,�[O[2[O[Q*2[O[Q*[Q*2[O
[Q*29^tt^2UO
[Q-U@[Q*2PPP2[O[Q*2[O[Q*2[O[2P!)%fhKn9h[O[Q*2[O[Q*2[O[2h9h)z/y�/kz/y/a)r5)
r�r�rr�rr=r?rr�r�rs&&r�test_realpath_resolve_parents�+PosixPathTest.test_realpath_resolve_parents�s���	$��H�H�V���H�H�V�d�]�#��J�J�v��}�f�t�m�4��%�%�f�t�m�4�4�� � ��!8��!8�$*�V�O�5�5�
���V�d�]�+��O�O�F�T�M�*��O�O�F�#�
5�4��
���V�d�]�+��O�O�F�T�M�*��O�O�F�#�s+�BD5�(D"�<D5�"D2	�+D2	�-D5�5AFc	��[O[2[O[Q*2[O[Q*2[O[Q*[Q*2UO	[[Q*1-U@[Q*2[O[[229^tt^2UO	[[[2Q*1-U@[Q*2PPP2[O[Q*2[O[Q*2[O[Q*2[O[2P!)%fhK�9h[O[Q*2[O[Q*2[O[Q*2[O[2h9h)rOz/k/yz/link-yz
/link-y/..)r�r�rr�r?rrr=rrr�r�rs&&r�(test_realpath_resolve_before_normalizing�6PosixPathTest.test_realpath_resolve_before_normalizingsA��	$��H�H�V���H�H�V�d�]�#��H�H�V�f�_�%��J�J�v�����(:�;�
���X�f�|�&;�F�v�F��QU�
�V��%�%�g�f�o�6�6�� � ��(�6�*:�\�*I�!T�V�!T�!'�$��0�7�
���V�i�/�0��O�O�F�V�O�,��O�O�F�T�M�*��O�O�F�#�7�6��
���V�i�/�0��O�O�F�V�O�,��O�O�F�T�M�*��O�O�F�#�s+�C'G�*=F.�'G�.F>	�7F>	�9G�A?Ic	��[O[2[O[Q*2[O[[Q*2[O
[
[229^tt^2[[2oUO[UQ*1-U@[2UO[UQ*1-U@[Q*2PPP2[O[Q*2[O[Q*2[O[2P!)%fhKn9h[O[Q*2[O[Q*2[O[2h9h)rO�linkzlink/k)r�r�rr�rr=rrr?rr�r�)r)r�bases&& r�test_realpath_resolve_first�)PosixPathTest.test_realpath_resolve_firsts��	$��H�H�V���H�H�V�d�]�#��J�J�v�v���/��%�%�g�f�o�6�6���'��� � ��$��-�!B�6�!B�F�K�� � ��$��/�!D�V�!D�f�t�m�T�7�

���V�f�_�-��O�O�F�T�M�*��O�O�F�#�7�6��

���V�f�_�-��O�O�F�T�M�*��O�O�F�#�s,�BE/�A'E�6E/�E,	�%E,	�'E/�/AG
zCan't set symlink permissions�darwinz1only macOS requires read permission to readlink()c���[O[Q*[2[O[]P
Q5UO	[[2[2UO	[[Q*2[Q*2UO	[[Q*2[
[2Q*2UO	[[Q*2[2[O[QP
Q5[O[2P![O[QP
Q5[O[2h9h�r$)�follow_symlinksr.�/../foo�/foo/..��)	r�r�r�chmodr?rrrr�rSs&r� test_realpath_unreadable_symlink�.PosixPathTest.test_realpath_unreadable_symlink2s���
		%��J�J�v�c�z�6�*��H�H�V�U�E�:����X�f�-�v�6����X�f�v�o�6����H����X�f�y�&8�9�7�6�?�V�;S�T����X�f�y�&8�9�6�B��H�H�V�U�E�:����V�$��
�H�H�V�U�E�:����V�$�s�C;D7�79E0c���[O[Q*[2[O[]P
Q5UO	[
29^tt^2[
[1-U@PPP2UO	[
29^tt^2[
[Q*1-U@1PPP2UO	[
29^tt^2[
[Q*1-U@PPP2UO	[
29^tt^2[
[Q*1-U@PPP2[O[QP
Q5[O[2P!)%fhCK9h)%fhK�9h)%fhK�9h)%fhK�9h[O[QP
Q5[O[2h9hr\)r�r�rrar�PermissionErrorrr�rs&&r�'test_realpath_unreadable_symlink_strict�5PosixPathTest.test_realpath_unreadable_symlink_strictBs$��
	��J�J�v�c�z�6�*��H�H�V�U�E�:��"�"�?�3�3���*�6�*�4��"�"�?�3�3���&��3�F�3�4�4��"�"�?�3�3���)�+�6�v�6�4��"�"�?�3�3���)�+�6�v�6�4�
�H�H�V�U�E�:��I�I�f��4�3�3��3�3��3�3��3�3��
�H�H�V�U�E�:��I�I�f��s��A F>�#E1�5%F>�F�4%F>�F�2%F>�F+�0F>�1F	�:F	�<	F>�F	�F	�F>�F(	�!F(	�#F>�+F;	�4F;	�6F>�>9G7c��[O[2[O[Q*2[O[]2UO	[[P
Q5[2UO	[[P	Q5[2UO	[[[Q5[2UO	[[[Q5[2[O[2UOQ2UO	[[Q*P
Q5[Q*2UO[[
[Q*P	Q5UO[[
[Q*[Q5UO[[
[Q*[Q5UO	[[Q*P
Q5[Q*2UO[[
[Q*P	Q5UO[[
[Q*[Q5UO[[
[Q*[Q5[O[Q2[O[Q*2[O[2P![cCK�h9h[O[Q2[O[Q*2[O[2h9h)rOrzCannot block permissionsz/missingr`)r�r�rrar?rrr�stat�skipTestrerrr�rSs&r�"test_realpath_unreadable_directory�0PosixPathTest.test_realpath_unreadable_directoryWs$��$	$��H�H�V���H�H�V�d�]�#��H�H�V�U�#����X�f�U�;�V�D����X�f�T�:�F�C����X�f�\�B�F�K����X�f�]�C�V�L�
:�������
�
�8�9����X�f�t�m�E�B�#�d�]�
,����o�x��$��%)�
�
+����o�x��$��%1�
�
3����o�x��$��%2�
�
4�
���X�f�z�&9�%�H�#�j�0�
2����o�x��*�9L�%)�
�
+����o�x��*�9L�%1�
�
3����o�x��*�9L�%2�
�
4�
�H�H�V�U�#��O�O�F�T�M�*��O�O�F�#��3#�
��
��.
�H�H�V�U�#��O�O�F�T�M�*��O�O�F�#�s8�C2K1�6K�E7K1�	K.�)K.�*K1�-K.�.K1�1AM	c��[[Q29^tt^2oUOQ2PPP2UO[	[P
Q5[2UO[	[[
Q5[2UO[	[P	Q5[2UO[	[[Q5[2UO[	[Q*P
Q5[2UO[[[Q*[
Q5UO[[[Q*P	Q5UO[[[Q*[Q5UO[	[Q*P
Q5[2UO[[[Q*[
Q5UO[[[Q*P	Q5UO[[[Q*[Q5UO[	[Q*P
Q5[[22UO[[[Q*[
Q5UO[[[Q*P	Q5UO[[[Q*[Q5UO[	[Q*P
Q5[Q*2UO[[[Q*[
Q5UO[[[Q*P	Q5UO[[[Q*[Q5[O[2P!)%fhCK�9h[O[2h9h)�w�test_posixpath wuz ererrE�/.�/..�/subdir)r�rr�r?rrrr�NotADirectoryErrorrrr�ros& r�test_realpath_nonterminal_file�,PosixPathTest.test_realpath_nonterminal_file�s��� 	%��f�c�"�"�a����0�1�#����X�f�U�;�V�D����X�f�\�B�F�K����X�f�T�:�F�C����X�f�]�C�V�L����X�f�s�l�5�A�6�J����0�(�F�S�L�Q]��^����0�(�F�S�L�QU��V����0�(�F�S�L�%2�
�
4�
���X�f�t�m�E�B�F�K����0�(�F�T�M�R^��_����0�(�F�T�M�RV��W����0�(�F�T�M�%2�
�
4�
���X�f�u�n�U�C�W�V�_�U����0�(�F�U�N�S_��`����0�(�F�U�N�SW��X����0�(�F�U�N�%2�
�
4�
���X�f�y�&8��G��R[�I[�\����0�(�F�Y�<N�Wc��d����0�(�F�Y�<N�W[��\����0�(�F�Y�<N�%2�
�
4�
���V�$�?#�"�"��>
���V�$�s(�O�N-�M$O�-N>	�6N>	�8	O�Oc���[[Q*Q29^tt^2oUOQ2PPP2[O[Q*[2UO[
[P
Q5[Q*2UO[
[[Q5[Q*2UO[
[P	Q5[Q*2UO[
[[Q5[Q*2UO[
[Q*P
Q5[Q*2UO[[[Q*[Q5UO[[[Q*P	Q5UO[[[Q*[Q5UO[
[Q*P
Q5[Q*2UO[[[Q*[Q5UO[[[Q*P	Q5UO[[[Q*[Q5UO[
[Q*P
Q5[[22UO[[[Q*[Q5UO[[[Q*P	Q5UO[[[Q*[Q5UO[
[Q*P
Q5[Q*2UO[[[Q*[Q5UO[[[Q*P	Q5UO[[[Q*[Q5[O[2[O[Q*2P!)%fhCK�9h[O[2[O[Q*2h9h)	r$rnrorrErprqrrz1/subdir)r�rr�r�r�r?rrrrrsrrr�ros& r�)test_realpath_nonterminal_symlink_to_file�7PosixPathTest.test_realpath_nonterminal_symlink_to_file�s���"	+��f�s�l�C�(�(�A����0�1�)��J�J�v��|�V�,����X�f�U�;�V�c�\�J����X�f�\�B�F�S�L�Q����X�f�T�:�F�S�L�I����X�f�]�C�V�c�\�R����X�f�s�l�5�A�6�C�<�P����0�(�F�S�L�Q]��^����0�(�F�S�L�QU��V����0�(�F�S�L�%2�
�
4�
���X�f�t�m�E�B�F�S�L�Q����0�(�F�T�M�R^��_����0�(�F�T�M�RV��W����0�(�F�T�M�%2�
�
4�
���X�f�u�n�U�C�W�V�_�U����0�(�F�U�N�S_��`����0�(�F�U�N�SW��X����0�(�F�U�N�%2�
�
4�
���X�f�y�&8��G��R\�I\�]����0�(�F�Y�<N�Wc��d����0�(�F�Y�<N�W[��\����0�(�F�Y�<N�%2�
�
4�
���V�$����V�c�\�*�C)�(�(��@
���V�$����V�c�\�*�s(�P9�P%�N4P9�%P6	�.P6	�0	P9�9=Q6c��	�[[Q*Q29^tt^2oUOQ2PPP2[O[Q*[Q*2[O[Q*[2UO[
[P
Q5[Q*2UO[
[[Q5[Q*2UO[
[P	Q5[Q*2UO[
[P	Q5[Q*2UO[
[Q*P
Q5[Q*2UO[[[Q*[Q5UO[[[Q*P	Q5UO[[[Q*[Q5UO[
[Q*P
Q5[Q*2UO[[[Q*[Q5UO[[[Q*P	Q5UO[[[Q*[Q5UO[
[Q*P
Q5[[22UO[[[Q*[Q5UO[[[Q*P	Q5UO[[[Q*[Q5UO[
[Q*P
Q5[Q	*2UO[[[Q*[Q5UO[[[Q*P	Q5UO[[[Q*[Q5[O[2[O[Q*2[O[Q*2P!)%fhCKD9h[O[2[O[Q*2[O[Q*2h9h)
r%rnror$rrErprqrrz2/subdir)r�rr�r�r�r?rrrrsrrrr�ros& r�5test_realpath_nonterminal_symlink_to_symlinks_to_file�CPosixPathTest.test_realpath_nonterminal_symlink_to_symlinks_to_file�s+��$	+��f�s�l�C�(�(�A����0�1�)��J�J�v��|�V�c�\�2��J�J�v��|�V�,����X�f�U�;�V�c�\�J����X�f�\�B�F�S�L�Q����X�f�T�:�F�S�L�I����X�f�T�:�F�S�L�I����X�f�s�l�5�A�6�C�<�P����0�(�F�S�L�Q]��^����0�(�F�S�L�QU��V����0�(�F�S�L�%2�
�
4�
���X�f�t�m�E�B�F�S�L�Q����0�(�F�T�M�R^��_����0�(�F�T�M�RV��W����0�(�F�T�M�%2�
�
4�
���X�f�u�n�U�C�W�V�_�U����0�(�F�U�N�S_��`����0�(�F�U�N�SW��X����0�(�F�U�N�%2�
�
4�
���X�f�y�&8��G��R\�I\�]����0�(�F�Y�<N�Wc��d����0�(�F�Y�<N�W[��\����0�(�F�Y�<N�%2�
�
4�
���V�$����V�c�\�*����V�c�\�*�G)�(�(��B
���V�$����V�c�\�*����V�c�\�*�s)�R�Q/�OR�/R	�8R	�:	R�AS!c�`�RO[O[2RO[O[Q*2RO[O[Q*2RO[O[Q*2RO[O[Q*2RO[O[Q*2RO[O[Q*2RO[O[Q*2[
O[2[
O[Q*2[[Q*Q2O2[[Q*Q2O2[
OQ[Q*2[
OQ	[Q*2[
OQ
[Q*2[
OQ[Q*2Q)U1QkkoRO[O[22P
[[P	,oUQUQ2UQ
P
,Q2UQ
[[P	,[2UQP
,Q2UQ[[P	,[2UQP
,Q2UQ[[P	,[2UQP
,Q2UQ[[P	,[2UQ	UQ2UQUQ2UQUQ2UQUQ2UQP
,Q2UQ[[P	,[2UQP
,Q2UQ[[P	,[2UQP
,Q2UQ[[P	,[2UQP
,Q2UQ[[P	,[2UQUQ2UQUQ2UQUQ2UQ
P
[[,Q2UQ
P	,[2UQP
[[,Q2UQP	,[2UQP
[,Q2UQ[P	,[2UQ P
[,Q2UQ [P	,[2UQ!P
[[,Q2UQ!P	,[2UQ"P
[[,Q2UQ"P	,[2UQ#P
[,Q2UQ#[P	,[2UQ$P
[,Q2UQ$[P	,[2UQP
,Q2UQ[[P	,[ ["O$2UQ%P
,Q2UQ%[[P	,[ ["O$2UQ&P
,Q'2UQ&[[P	,[ ["O$2UQ(P
,Q2UQ([[P	,[ ["O$2P!)*z/dirz/filez
/dir/file2rDz/link2z/brokenz/cycler��file�dir�nonexistent�cyclec�:�[U[2%c�UOQ[O2oSFD�oROUQ59^tt^2RO
[VQ5OQ[O2[OQ[O2U*2PPP2J�	P!SFD~oROUQ59^tt^2ROU29^tt^2o[VQ5PPP2Ud'RO
WOOU2PPP2J�	P!)%fhCJ(9h)%fhK]9h)%fhJ�9h)rE)�moder)�
isinstancer��replacer��sepr�r?rrr�	exception�errno)rZ�modesrr�r��cmr)s&&&&  �r�check�/PosixPathTest.test_realpath_mode.<locals>.checks����(�C�(�(�#�+�+�C����8��!�D����4��0�0��(�(��$�)D�)L�)L�S�RT�RX�RX�)Y�)/����R�V�V�)D�x�)O�Q�1�0�"�
"�D����4��0�0�!�.�.�x�8�8�B�$�T�7�9� �,� �,�,�R�\�\�-?�-?��G�	1�0�"�	1�0�0��9�8��1�0�0�sI�A$E	�+E:	�
E'
�E:	�&E:	�E$
�E$
�'E7�0E7�2E:	�:F
�F
zfile/z
file/file2z/file/file2zfile/.z
file/../link2zdir/z	dir/file2rVzlink/z
link/file2zlink/.zlink/../link�link2zlink2/zlink2/file2r#znonexistent/znonexistent/filez/nonexistent/fileznonexistent/../link�brokenzbroken/zbroken/filezbroken/../linkzcycle/z
cycle/filez/cycle/filez
cycle/../linkr�)r�rr�rr�r�r�r��closer��enterContextr=rrrsrr�r��ELOOP)r)r��	all_modessf  r�test_realpath_mode� PosixPathTest.test_realpath_mode�s�������	����0����	����&��9����	�(�(�&�7�*:�;����	�(�(�&�<�*?�@����	�(�(�&�7�*:�;����	�(�(�&�8�*;�<����	�(�(�&�9�*<�=����	�(�(�&�8�*;�<�
�����
����&��!��V�g�
�t�$�*�*�,��V�l�
"�D�)�/�/�1�
�
�
�6�6�G�+�,�
�
�
�5�&�8�+�,�
�
�
�=�&�9�"4�5�
�
�
�7�F�X�-�.�	H� 	
���)�.�.�v�6�7��M�<��>�	�
�f�i��)�
�g��w��(�
�g�
�|�T�:�<N�O�
�l�U�G�]�3�
�l�]�L�$�?�AS�T�
�h����)�
�h���d�;�=O�P�
�o��w��/�
�o�
�|�T�B�DV�W�
�e�Y��'�
�f�i��(�
�k�9�l�3�
�f�i��)�
�g��w��(�
�g�
�|�T�:�<N�O�
�l�U�G�]�3�
�l�]�L�$�?�AS�T�
�h����)�
�h���d�;�=O�P�
�n�u�g�w�/�
�n�}�l�D�A�CU�V�
�g�y�&�)�
�h�	�6�*�
�m�Y��5�
�m�e�]�L�A�>�R�
�m�d�V�%6�7�
�n�u�m�\�B�N�S�
�n�t�f�&7�8�
� �5�-�"8�:M�N�
� �<��"6�8I�J�
�#�e�]�%;�W�E�
�#�l�D�%9�;L�M�
�h��
�|�<�n�M�
�h��� 1�2�
�i�%���=�~�N�
�i�$��!2�3�
�m�e�]�3�5H�I�
�m�l�D�1�3D�E�
���
� 6��@�
���t� 4�6G�H�
�g��w��)�
�g�
�|�T�:�G�U�[�[�Q�
�h����*�
�h���d�;�W�e�k�k�R�
�l�U�G�]�3�
�l�]�L�$�?��%�+�+�V�
�o��w��0�
�o�
�|�T�B�G�U�[�[�Yrc��[OQto[m[OO[O22P*oUO	[
[OP2UO	[[OP2UO[OQ2Q2UO[O[OQ22Q2UO[OQ2Q2UO[OQ2Q2UO[OQQ2QU*Q*2UO[OQQ2QU*Q*2UO[OQQ	2Q
2UO[OQQ2Q2UO[OQQ
2Q2UO[OQQ2Q2UO[OQQ2Q2UO[OQQ2Q2UO[OQQ2Q2UO[OQQ2Q2UO[OQQ2Q2UO[OQQ2Q2UO[OQQ2Q2U[mP!S[mh9h)c��Q!)z/home/user/bar�r�rrr��,PosixPathTest.test_relpath.<locals>.<lambda>Qs��7Hrr5r7z../a/bz../br<r;z../cr<r9z../../araz/foo/bar/batz/x/y/zz../../../foo/bar/batrD�batrEzfoo/bar/batz../../..r8z../foo/bar/batz
../../../x)r�rrZrRr�	TypeErrorr'r.r$r?r)r)�real_getcwd�curdirs&  r�test_relpath�PosixPathTest.test_relpathPs}��$&�I�I�/H� ��b�i�	$��W�W�]�]�2�9�9�;�/��3�F����i��):�):�D�A����j�)�*;�*;�R�@����Y�.�.�s�3�S�9����Y�.�.�y�/@�/@��/E�F��L����Y�.�.�u�5�u�=����Y�.�.�x�8�(�C����Y�.�.�s�F�;�U�6�\�$�=N�O����Y�.�.�u�f�=�"�6�\�&�0�
2����Y�.�.�s�E�:�I�F����Y�.�.�s�C�8�#�>����Y�.�.�~�x�H�J`�a����Y�.�.�~�z�J�E�R����Y�.�.�~�s�C�]�S����Y�.�.�s�N�C�Z�P����Y�.�.�~�t�D�FV�W����Y�.�.�t�^�D�l�S����Y�.�.�s�C�8�#�>����Y�.�.�t�T�:�C�@����Y�.�.�v�v�>��D�#�B�I���B�I�s�MM3�3
Nc�T�[OQto[m[OO[O22P*oUO	[
[OQ2UO[OQ2Q2UO[O[OQ22Q2UO[OQ2Q2UO[OQ2Q2UO[OQQ2QU*Q*2UO[OQQ2QU*Q	*2UO[OQQ
2Q2UO[OQQ2Q2UO[OQ
Q2Q2UO[OQ
Q2Q2UO[OQ
Q2Q2UO[OQQ
2Q2UO[OQ
Q2Q2UO[OQQ
2Q2UO[OQQ2Q2UO[OQQ2Q2UO[OQ	Q	2Q2UO	[[OQQ2UO	[[OQQ2U[mP!S[mh9h)c��Q!)s/home/user/barr�r�rrr��2PosixPathTest.test_relpath_bytes.<locals>.<lambda>ls��:Lrrrjsa/bs../a/bs../bs../rks../cs/a/bsb/cs../../ars/foo/bar/bats/x/y/zs../../../foo/bar/batrIsbatrJsfoo/bar/bats../../..s/xs../foo/bar/bats
../../../xsbytesr�)r�rrZrRrr$r'r.r?rr�)r)�real_getcwdbr�s&  r�test_relpath_bytes� PosixPathTest.test_relpath_bytesks���&(�j�j�2L�"��r�z�	&��W�W�]�]�2�:�:�<�0��4�F����j�)�*;�*;�S�A����Y�.�.�t�4�d�;����Y�.�.�y�/@�/@��/F�G��N����Y�.�.�v�6��?����Y�.�.�y�9�9�E����Y�.�.�t�W�=�#�F�]�5�0�
2����Y�.�.�v�w�?�#�F�]�7�2�
4����Y�.�.�t�V�<�j�I����Y�.�.�t�T�:�D�A����Y�.�.��	�J�Lc�d����Y�.�.���L�f�U����Y�.�.���E�~�V����Y�.�.�t�_�E�{�S����Y�.�.���F�HY�Z����Y�.�.�u�o�F�
�V����Y�.�.�t�T�:�D�A����Y�.�.�u�e�<�d�C����Y�.�.�w��@�$�G����i��):�):�H�e�L����i��):�):�E�8�L�%�B�J���B�J�s�M-N�
N'c�`�U1QkoU1QkoRO[[OP2RO[[O,2RO[[O[,22U[QQ,2U[QQ,2UQ,Q2UQQ,Q2UQQ,Q2UQQ,Q2UQQ,Q2UQQ	,Q2UQ
Q,Q
2UQQ,Q
2UQQ
,Q2UQQ,Q2UQQ,Q2UQQ,Q2UQ,Q2UQQ,Q2UQQ,P2UQQ,Q2UQQ,Q2UQQ,Q2U,Q"NP2U,Q#NQ2UP,P2UPQ,P2U[PQ,2RO[[OQQ
,2RO[[OQQ,2RO[[OQQ
,2RO[[OQQ,2RO[[OQQ ,2RO[[OQ!Q,2P!)$c�:�RO[OU2U2RO[OSTt,tFDo[OU2MJ	to2[OU22P!ttohr�)r?r'�
commonpathr�r�)�pathsr�pr)s&& �rr��,PosixPathTest.test_commonpath.<locals>.check�s_������Y�1�1�%�8�(�C����Y�1�1�5�2Q�5�a�2�;�;�q�>�5�2Q�R��[�[��2�
4��2Qs�!B
c��:�ROU[OU2ROS[OSTt,tFDo[OU2MJ	to2P!ttohr�)rr'r�r�r�)�excr�r�r)s&& �r�check_error�2PosixPathTest.test_commonpath.<locals>.check_error�sP������c�9�#7�#7��?����c�9�#7�#7�7<�=�u�!�r�{�{�1�~�u�=�
?��=s�!A,z/usr�usrz
/usr/localz/usr/local/z/usr//localz//usr/localz/usr/./localz/./usr/localrEz/devz	/usr/lib/z/usr/lib/python3z/usr/libz/usr/lib64/z
/usr/lib64�spam�alot�and/jam�and/spam�andzand//jamz
and/spam//z	and/./jamz
./and/spamz	spam/alotz
/spam/alots	/usr/lib/zusr/lib/python3susr/lib/s/usr/lib/python3susr/lib/python3zusr/lib/)r�r�r�)r�r�r�)rr�r'r�r$�iter)r)r�r�sf  r�test_commonpath�PosixPathTest.test_commonpath�s����	4�	?�
	
���)�Y�%9�%9�4�@����*�i�&:�&:�B�?����*�i�&:�&:�D��H�E��J����0��J����0�
�|�n�l�+�
�|�\�*�L�9�
�}�l�+�\�:�
�}�m�,�l�;�
�}�m�,�l�;�
�~�~�.��=�
�s�F�m�S�!�
�v�v���$�
�{�.�/��<�
�{�M�*�F�3�
�z�<�(�&�1�
�{�L�)�6�2�
�v�h���
�v�v���'�
�v�v���#�
�y�*�%�u�-�
�z�<�(�%�0�
�{�L�)�5�1�
�-�r�2�
�,�e�4�
�r�d�B��
�r�;���$��J��\� 2�3����)�Y�%9�%9�'�);�<�	>����)�Y�%9�%9�'�):�;�	=����)�Y�%9�%9�&�(:�;�	=����)�Y�%9�%9�&�(;�<�	>����)�Y�%9�%9�&�(:�;�	=����)�Y�%9�%9�%�':�;�	=rr�)r#ra)rErE)rprE)z/./rE)z/.//.rE)z
/./foo/barrD)r.r.)rDrD)rmrm)r�rE)z///foo/.//bar//rD)z///foo/.//bar//.//..//.//baz///z/foo/baz)z///..//./foo/.//barrD)rara)z.//.ra)z	./foo/barrt)rbrb)r<rb)�../foor�)�	../../foor�)z
../foo/../barz../bar)z../../foo/../bar/./baz/boom/..�
../../bar/baz)rqrE)z/../rE)z/..//rE)z//.rm)z//..rm)�//...r�)z//../foorO)z//../../foorO)r^r.)z
/../../foor.)z/../foo/../rE)z/../foo/../barr0)z/../../foo/../bar/./baz/boom/..r2)z/../../foo/../bar/./baz/boom/.z
/bar/baz/boom)zfoo/../bar/bazzbar/baz)zfoo/../../bar/bazz
../bar/baz)zfoo/../../../bar/bazr�)zfoo///../bar/.././../baz/boomz../baz/boom)zfoo/bar/../..///../../baz/boomz../../baz/boom)r_rE)z
/foo/../..rE)z//foo/..rm)z//foo/../..rm)z	///foo/..rE)z///foo/../..rE)z
////foo/..rE)z/////foo/..rE)G�__name__�
__module__�__qualname__�__firstlineno__r+rArTr]rcrqrwrzr}r�r�r�r�r�r�skip_unless_symlinkr�r�skipIfr�r�r�r�r%r&r	�cpython_onlyr�r�r�r�rrr
rrrrrrrr r+r/r2r>rArErLrPrSrXr�ra�supports_follow_symlinksrbrfrkrtrwrzr�r�r�r��__static_attributes__�__classdictcell__��
__classdict__s@rr!r!+s�����A�5�0M�7�8&�:�4:�D�E�A�$N�?�$�:��"�"�%�#�%��_�_�U�d�]�$@�A�"�B�"�"�_�_�U�d�]�$@�A�"�B�"�*7��_�_�S�\�\�W�,�.L�M����?��N�?�?�L� �_�_�S�\�\�Y�.�3�5�%G�5�%G�N�_�_�S�\�\�Y�.�3�5�4�5�4�.3��3��3�	�3�	�	3�
	�3�	#�
3�	�3�	!�3�	�3�	�3�	(�3�	8�3�	,�3�	�3�	�3� 	!�!3�"	�#3�$	�%3�&	�'3�(	#�)3�*	$�+3�,	<�-3�.	�/3�0	�13�2	�33�4	�53�6	�73�8	�93�:	�;3�<	�=3�>	!�?3�@	�A3�B	�C3�D	�E3�F	#�G3�H	8�I3�J	<�K3�L	&�M3�N	,�O3�P	2�Q3�R	9�S3�T	=�U3�V	�W3�X	�Y3�Z	�[3�\	�]3�^	�_3�`	�a3�b	�c3�d	�e3�N�j
3�'��2��$�'�(�L�)A�H�m�C\�]�T�^�'�T�'��2��$�'�(�L�)A�H�m�C\�]�M�^�'�M��"�"�&��2��-�0�1�%�2�'�#�%��"�"�&�%�'�#�%�mN�^�"�"�&��2��,�/�(�M�1J�K�%�L�'�#�%��"�"�&�	%�'�#�	%��"�"�&�%)�'�#�%)�N�"�"�&��H�d�#�h��%=��-�?X�Y�%)�Z�'�#�%)�N�"�"�&��2��$�'�(�L�)A�H�m�C\�]�
$�^�'�#�
$��"�"�&��2��$�'�(�L�)A�H�m�C\�]�$�^�'�#�$�"�"�"�&��2��,�/�(�M�1J�K�$�L�'�#�$�$�"�"�&��2��$�'�(�L�)A�H�m�C\�]�$�^�'�#�$�4�"�"�&��2��$�'�(�L�)A�H�m�C\�]�$�^�'�#�$�"�"�"�&�
�_�_�R�X�X�R�%@�%@�@�Ba�b�
�_�_�S�\�\�X�-�/b�c�
%�d�c�'�#�
%��"�"�&�
�_�_�R�X�X�R�%@�%@�@�Ba�b�
�_�_�S�\�\�X�-�/b�c��H�d�#�h��%=��-�?X�Y��Z�d�c�'�#�
� '��"�"�%$�#�'�%$�N'�!%�'�!%�F�"�"�&�#+�'�#�#+�J�"�"�&�%+�'�#�%+�N�"�"�YZ�#�YZ�v$�6&�<6=�6=rr!c�$�\sQsQs\s,QNsQsP!)�PosixCommonTesti�r�)r.�samefile�sameopenfile�samestat)r�r�r�r�r'�
pathmodule�
attributesr�r�rrr�r��s���J�D�Jrr�c��`�\sQsQsn\sQsQsQsQs	Qs
QsQsQ	s
Q
sQsQsQ
sQsQsQsQsQsQs\-QP	-Q\-Q\-2Q2sQsQsQsUsP!)�
PathLikeTestsi�c�4�[Um[[2UmUO	[
OUO2[UOQ]29^tt^2oUOQ2PPP2P!)%fhP!9h)�xbstest_posixpath.PathLikeTests)	r�	file_namer
�	file_pathr�rr�r�r�)r)r}s& rr+�PathLikeTests.setUp�s^�����!�&�)������	�(�(�$�.�.�9�
�$�.�.�$��
*�
*�d��J�J�6�7�+�
*�
*�
*�s�*B�B	�B	c�l�UOUUO2UUO22P!r�)r?r�r�)r)�funcs&&r�assertPathEqual�PathLikeTests.assertPathEqual�s$������d�n�n�-�t�D�N�N�/C�Drc�R�UOUOO2P!r�)r�rZ�normcaserSs&r�test_path_normcase� PathLikeTests.test_path_normcase�������T�Y�Y�/�/�0rc�R�UOUOO2P!r�)r�rZrvrSs&r�test_path_isabs�PathLikeTests.test_path_isabs�������T�Y�Y�_�_�-rc��UOUOOQ[Q2Q2UOOQQQ22P!)r5r6r=)r?rZr>r
rSs&r�test_path_join�PathLikeTests.test_path_join�s;�����������X�c�]�C�@�������S�#�6�	8rc�R�UOUOO2P!r�)r�rZrRrSs&r�test_path_split�PathLikeTests.test_path_split�r�rc�R�UOUOO2P!r�)r�rZrXrSs&r�test_path_splitext� PathLikeTests.test_path_splitext�r�rc�R�UOUOO2P!r�)r�rZ�
splitdriverSs&r�test_path_splitdrive�"PathLikeTests.test_path_splitdrive�������T�Y�Y�1�1�2rc�R�UOUOO2P!r�)r�rZrnrSs&r�test_path_splitroot�!PathLikeTests.test_path_splitroot�s�����T�Y�Y�0�0�1rc�R�UOUOO2P!r�)r�rZrrSs&r�test_path_basename� PathLikeTests.test_path_basename�r�rc�R�UOUOO2P!r�)r�rZrrSs&r�test_path_dirname�PathLikeTests.test_path_dirname�������T�Y�Y�.�.�/rc�R�UOUOO2P!r�)r�rZr�rSs&r�test_path_islink�PathLikeTests.test_path_islink�s�����T�Y�Y�-�-�.rc�R�UOUOO2P!r�)r�rZr(rSs&r�test_path_lexists�PathLikeTests.test_path_lexists�r�rc�R�UOUOO2P!r�)r�rZr�rSs&r�test_path_ismount�PathLikeTests.test_path_ismount�r�rc�R�UOUOO2P!r�)r�rZr�rSs&r�test_path_expanduser�"PathLikeTests.test_path_expanduser�r�rc�R�UOUOO2P!r�)r�rZ�
expandvarsrSs&r�test_path_expandvars�"PathLikeTests.test_path_expandvars�r�rc�R�UOUOO2P!r�)r�rZr�rSs&r�test_path_normpath� PathLikeTests.test_path_normpathr�rc�R�UOUOO2P!r�)r�rZrrSs&r�test_path_abspath�PathLikeTests.test_path_abspathr�rrc��UOUOO2UO[UOO1-U@2P!r�)r�rZrrrs&&r�test_path_realpath� PathLikeTests.test_path_realpaths<�����T�Y�Y�/�/�0����W�T�Y�Y�%7�%7�B�6�B�Crc�R�UOUOO2P!r�)r�rZr.rSs&r�test_path_relpath�PathLikeTests.test_path_relpathr�rc��UOOUOUO,2oUO	VO2P!r�)rZr�r�r�r?)r)�common_paths& r�test_path_commonpath�"PathLikeTests.test_path_commonpaths5���i�i�*�*�D�N�N�D�N�N�+K�L������n�n�5r)r�r�) r�r�r�r�r'rZr+r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrrrr�r�r�s@rr�r��s������D�8�E�1�.�8�.�1�3�2�1�0�/�0�0�3�3�1�0��2��$�'�(�L�)A�H�m�C\�]�D�^�D�
0�6�6rr��__main__)%r�r�r�r'r�r%r�	functoolsrrrrrrrrr	r
�test.supportrr�test.support.os_helperr
rrr��ImportErrorrrr�TestCaser!�
CommonTestr�r�r��mainr�rr�<module>r"s�����	��
�
���W�W��!�&�"�3����
����=�2�T=�H�%�%�T=�n$E�&�1�1�8�3D�3D�E�
J6�H�%�%�J6�Z�Z���M�M�O���C(���E��s�C�C�C�C

Youez - 2016 - github.com/yon3zu
LinuXploit