� c��jm� �6�dZdZdZdZdZdZdZdZdZd Z d Z d �Z d �Z d Z dZdZdZdZdZdZdZdZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z dZ!dZ"e"Z#d Z$d!Z%d"Z&d#Z'd$Z(d!Z)d"Z*d#Z+d%Z,d&Z-d'Z.d Z/dZ0dZ1dZ2dZ3dZ4dZ5dZ6d Z7d'Z8d&Z9dZ:d(Z;d)Zd,Z?ed-fed.fed/fed0fe d1fed2fed3ffe)d4ffe*d5ffe+e!zd.fe!d6fe+d7ffe-d4ffe.d5ffe/e"zd.fe"d6fe/d7ffe1d4ffe2d5ffe3e$zd8fe$d9fe3d7fff Z@d:�ZAd&ZBdZCd#ZDd'ZEd ZFdZGdZHd"ZIdZJd)ZKdZLdZMdZNd ZOdZPd!ZQd(ZR dd;lS�y<#eT$rYyrrc�&�t|�tk(S)z0Return True if mode is from a FIFO (named pipe).)r�S_IFIFOrs r�S_ISFIFOr$Brrc�&�t|�tk(S)z,Return True if mode is from a symbolic link.)r�S_IFLNKrs r�S_ISLNKr'Frrc�&�t|�tk(S)z%Return True if mode is from a socket.)r�S_IFSOCKrs r�S_ISSOCKr*Js�� �$�<�8� #�#rc��y)z#Return True if mode is from a door.Fr rs r�S_ISDOORr,N��� rc��y)z*Return True if mode is from an event port.Fr rs r�S_ISPORTr/Rr-rc��y)z'Return True if mode is from a whiteout.Fr rs r�S_ISWHTr1Vr-riii���@i��8� �iiiii �l�s�-�b�d�c�p�r�w�S�x�t�Tc��g}tD]8}|D] \}}||z|k(s�|j|��'|jd��:dj|�S)z;Convert a file's mode to a string of the form '-rwxrwxrwx'.r:�)�_filemode_table�append�join)r�perm�table�bit�chars r�filemoderN�sX�� �D� ���I�C���c�z�S� �� � �D�!��� �K�K�� � !� �7�7�4�=�r)�*N)U�__doc__�ST_MODE�ST_INO�ST_DEV�ST_NLINK�ST_UID�ST_GID�ST_SIZE�ST_ATIME�ST_MTIME�ST_CTIMErrrrrr r#r&r)�S_IFDOOR�S_IFPORT�S_IFWHTrrrr!r$r'r*r,r/r1�S_ISUID�S_ISGID�S_ENFMT�S_ISVTX�S_IREAD�S_IWRITE�S_IEXEC�S_IRWXU�S_IRUSR�S_IWUSR�S_IXUSR�S_IRWXG�S_IRGRP�S_IWGRP�S_IXGRP�S_IRWXO�S_IROTH�S_IWOTH�S_IXOTH� UF_NODUMP� UF_IMMUTABLE� UF_APPEND� UF_OPAQUE� UF_NOUNLINK� UF_COMPRESSED� UF_HIDDEN� SF_ARCHIVED� SF_IMMUTABLE� SF_APPEND� SF_NOUNLINK� SF_SNAPSHOTrGrN�FILE_ATTRIBUTE_ARCHIVE�FILE_ATTRIBUTE_COMPRESSED�FILE_ATTRIBUTE_DEVICE�FILE_ATTRIBUTE_DIRECTORY�FILE_ATTRIBUTE_ENCRYPTED�FILE_ATTRIBUTE_HIDDEN�FILE_ATTRIBUTE_INTEGRITY_STREAM�FILE_ATTRIBUTE_NORMAL�"FILE_ATTRIBUTE_NOT_CONTENT_INDEXED�FILE_ATTRIBUTE_NO_SCRUB_DATA�FILE_ATTRIBUTE_OFFLINE�FILE_ATTRIBUTE_READONLY�FILE_ATTRIBUTE_REPARSE_POINT�FILE_ATTRIBUTE_SPARSE_FILE�FILE_ATTRIBUTE_SYSTEM�FILE_ATTRIBUTE_TEMPORARY�FILE_ATTRIBUTE_VIRTUAL�_stat� ImportErrorr rr�r�s���� �� �� �� �� �� �� �� �� �� ��� � �� �� �� �� �� �� �� �� �� ��#�#�#�#�#�#�$���� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��� �� �� �� �� �� �� �� �� �� �� �� ��s���s�� �s�� �s�� �s�� �s�� �s�� ��s��� �s��� �g�o�s�� �s�� �s����s��� �s��� �g�o�s�� �s�� �s����s��� �s��� �g�o�s�� �s�� �s���/��8 � �� ������ ����"'����%)�"�%������#�� �������� ���� �� �s� D�D�D