� !A?h����� ddlZddlZddlZddlZddlZddlZ ddlZ[dZn #e$rdZYnwxYw ddl Z [ dZ n #e$rdZ YnwxYw ddl Z [ dZ n #e$rdZ YnwxYwej dkZdxZZej dkrddlZnerddlZerdndZeed��oej�d ��aeo eed ��Zd Zgd �ZGd �de��ZGd�de��ZGd�de��ZGd�de��ZGd�de��ZGd�de��Z Gd�de��Z!d�Z"d�Z#efd�Z$dtd�Z%d�Z&d �Z'd!�Z(dd"�d#�Z)dd"�d$�Z*eed%��rdd"�d&�Z+nd'�Z+dd"�d(�Z,dd"�d)�Z-dd"�d*�Z.d+�Z/ dud,�Z0dde.ddfd-�Z1eej2d.��rd/�Z3d0�Z4nd1�Z3d2�Z4d3�Z5d4�Z6ej7ejej8ej9hej:koej;ej<vo ejej=vZ>dvdd5�d6�Z?e>e?_@d7�ZAe.fd8�ZBd9�ZCd:�ZDd;�ZEd<�ZF dwd>�ZG dxd?�ZHd@eGdAgdBdfiZIereGdCgdDdfeIdE<eHgdFdfeIdG<e r eGdHgdIdfeIdJ<e r eGdKgdLdfeIdM<dN�ZJdydP�ZKdQ�ZL dzdR�ZMdS�ZNdT�ZO dydU�ZPdV�ZQdW�ZRdX�ZSddY�dZ�ZTd[geTgdBfd\geSgdFfd]�ZUer d^d_geTgdDfeUdE<e r d`dageTgdIfeUdJ<e r dbdcgeTgdLfeUdM<dd�ZVd{ddY�de�ZWeedf��rNe�Xdg��ejYdhdi��ZZdjeZj[_\dkeZj]_\dleZj^_\dm�Z_n+er)e�Xdg��ejYdhdi��ZZdn�Z_d{do�Z`d|dq�Zadr�Zbejcejdzdfds�ZedS)}�NTF�nt�posixii�sendfile�linux� _fcopyfilez%.COM;.EXE;.BAT;.CMD;.VBS;.JS;.WS;.MSC)� copyfileobj�copyfile�copymode�copystat�copy�copy2�copytree�move�rmtree�Error�SpecialFileError� ExecError� make_archive�get_archive_formats�register_archive_format�unregister_archive_format�get_unpack_formats�register_unpack_format�unregister_unpack_format�unpack_archive�ignore_patterns�chown�which�get_terminal_size� SameFileErrorc��eZdZdS)rN��__name__� __module__� __qualname__���3/opt/alt/python-internal/lib64/python3.11/shutil.pyrr=s�������Dr'rc��eZdZdS)r Nr"r&r'r(r r @s������?�?r'r c��eZdZdS)rNr"r&r'r(rrCs������;�;r'rc��eZdZdS)rNr"r&r'r(rrGs������5�5r'rc��eZdZdS)� ReadErrorNr"r&r'r(r-r-Js������/�/r'r-c��eZdZdS)� RegistryErrorNr"r&r'r(r/r/Ms������&�&r'r/c��eZdZdS)�_GiveupOnFastCopyNr"r&r'r(r1r1Qs�������r'r1c�� |���}|���}n!#t$r}t|���d}~wwxYw tj|||��dS#t $rN}|j|_|j|_|j tj tj hvrt|���|d�d}~wwxYw�N) �fileno� Exceptionr1rr�OSError�name�filename� filename2�errno�EINVAL�ENOTSUP)�fsrc�fdst�flags�infd�outfd�errs r(�_fastcopy_fcopyfilerCVs����%��{�{�}�}��� � � � ���� �%�%�%���$�$�$�����%���� � ���u�e�,�,�,�,�,�� � � � ��y�� �� �� � �9���u�}�5� 5� 5�#�C�(�(� (��4� �����  ���s-�(,� A �A�A �A&�& B>�0A B9�9B>c��� |���}|���}n!#t$r}t|���d}~wwxYw tt j|��jd��}n#t$rd}YnwxYwtj dkrt|d��}d} t j ||||��}|dkrdS||z }n�#t$r�}|j |_ |j |_|jtjkrdat|���|jtjkr|d�|dkr3t j|dtj��dkrt|���|�d}~wwxYw��)Ni�ili@rTF)r4r5r1�max�os�fstat�st_sizer6�sys�maxsize�minrr7r8r9r:�ENOTSOCK�_USE_CP_SENDFILE�ENOSPC�lseek�SEEK_CUR)r=r>r@rArB� blocksize�offset�sents r(�_fastcopy_sendfilerTjs����%��{�{�}�}��� � � � ���� �%�%�%���$�$�$�����%�����������.��8�8� � �� ����� � � ����� �{�W���� �7�+�+� � �F�� ��;�u�d�F�I�>�>�D�,�q�y�y��� �d�N�F�F��/� � � ��9�C�L� �I�C�M��y�E�N�*�*�$)� �'��,�,�,��y�E�L�(�(��t�#���{�{�r�x��q�"�+�>�>�!�C�C�'��,�,�,��I�����' ����s?�(,� A �A�A �'A6�6 B�B�,C� E1�BE,�,E1c�B� |j}|j}tt|����5} ||��}|snJ||kr8|d|�5}|�|��ddd��n #1swxYwYn ||���X ddd��dS#1swxYwYdSr3)�readinto�write� memoryview� bytearray)r=r>�length� fsrc_readinto� fdst_write�mv�n�smvs r(�_copyfileobj_readintor`�s?��� �M�M���J� �I�f�%�%� &� &� �"� �� �b�!�!�A�� ���V�������V�$�s��J�J�s�O�O�O�$�$�$�$�$�$�$�$�$�$�$����$�$�$�$��� �2���� �� � � � � � � � � � � � ���� � � � � � s5� B� A.�" B�.A2 �2B�5A2 �6B�B�Bc�j� |st}|j}|j} ||��}|sdS||���r3)� COPY_BUFSIZE�readrW)r=r>rZ� fsrc_readr\�bufs r(rr�sS��G� ����� �I���J���i������ � �E�� �3���� r'c��t|tj��rpttjd��rV tj�|���tj|����S#t$rYdSwxYwttjd��r2 tj�||��S#t$rYdSwxYwtj� tj� |����tj� tj� |����kS)N�samestatF�samefile) � isinstancerF�DirEntry�hasattr�pathrg�statr6rh�normcase�abspath��src�dsts r(� _samefilers�s���#�r�{�#�#������(D�(D�� ��7�#�#�C�H�H�J�J���� � �=�=� =��� � � ��5�5� �����r�w� �#�#�� ��7�#�#�C��-�-� -��� � � ��5�5� ���� �G� � �R�W�_�_�S�1�1� 2� 2� �G� � �R�W�_�_�S�1�1� 2� 2� 3�4s$�AA:�: B�B�&C� C�Cc��t|tj��r|���ntj|��Sr3)rirFrjrm��fns r(�_statrw�s-��"�2�r�{�3�3� D�2�7�7�9�9�9������Dr'c��t|tj��r|���ntj�|��Sr3)rirFrj� is_symlinkrl�islinkrus r(�_islinkr{�s3��(��R�[�9�9� Q�2�=�=�?�?�?�r�w�~�~�b�?Q�?Q�Qr'��follow_symlinksc �F� tjd||��t||��r#td�||�����d}t ||g��D]�\}} t |��}tj|j ��r5t|tj ��r|j n|}td|z���tr |dkr|j}�x#t"$rY��wxYw|s8t%|��r)tjtj|��|���n�t+|d��5} t+|d��5}t,rF t/||t0j��|cddd��cddd��S#t4$rYn�wxYwt6r; t9||��|cddd��cddd��S#t4$rYnOwxYwtrD|dkr>t;||t=|t>����|cddd��cddd��StA||��ddd��n #1swxYwYnE#tB$r8} tj �"|��stGd|����| ��d} ~ wwxYwddd��n #1swxYwY|S)Nzshutil.copyfilez{!r} and {!r} are the same filerz`%s` is a named pipe�rb�wbzDirectory does not exist: )$rI�auditrsr �format� enumeraterwrm�S_ISFIFO�st_moderirFrjrlr�_WINDOWSrHr6r{�symlink�readlink�open�_HAS_FCOPYFILErCr�_COPYFILE_DATAr1rMrTr`rKrbr�IsADirectoryError�exists�FileNotFoundError) rqrrr}� file_size�irv�str=r>�es r(r r �s ��� �I���c�*�*�*���c���P��=�D�D�S�#�N�N�O�O�O��I��C��:�&�&� '� '���2� '��r���B� �}�R�Z�(�(� D� *�2�r�{� ;� ;�C�R�W�W���&�'=��'B�C�C�C�� '�A��F�F��J� ���� � � � �D� ���� �!�w�s�|�|�!� � �2�;�s�#�#�S�)�)�)�)� �#�t�_�_� �� ��#�t�_�_�,��%�#�!�/��d�E�._noper�r'c�0��tt|���Sr3)�getattrrF)r7r�s �r(�lookupzcopystat..lookupls����2�t�T�*�*� *r'c�T��tt|���}|tjvr|S�Sr3)r�rF�supports_follow_symlinks)r7rvr�s �r(r�zcopystat..lookupqs,�����T�4�(�(�B��R�0�0�0�� ��Kr'r|rm�utimer�rTr�c�"�tj|�dSr3)rFr�r�s r(�_chmodzcopystat.._chmod�s����$����r'�st_flags�chflags)� EOPNOTSUPPr<)rIr�r{rFrlrzrirjrmr�r�� st_atime_ns� st_mtime_nsr�r7r��NotImplementedErrorrkr�r6r:r�) rqrrr}�followr�r��moder��whyrBr�s @r(r r Ws���� ��I���c�*�*�*��T� � � � � �� J�W�S�\�\�%I�b�g�n�n�S�6I�6I� J�F� � � +� +� +� +� +� +�  � � � � � �#�r�{�#�#�9� �X�X�f�X� -� -��� �V�V�F�^�^�C�� 8� 8� 8�� �<�� � #� #�D��F�F�7�O�O�C�R�^�R�^�<�� � � � ��s�C��0�0�0�0� �V�G�_�_�F� �w�$��� � ��w�~�~�c�"�"� 9��g�&�&�s�4�&�8�8��� � � �  ���s�D�&�1�1�1�1�1�� �  �  �  � ��  �����r�:���� � �F�F�9� � �c�2�;�� G� G� G� G� G� G��� � � �.� � ���5�#�&�&��3�9���s�8K�8K�+K�+K��E����E�E�E�E�E����� �����s*�E$�$ E1�0E1�F#�# G3�-;G.�.G3c�� tj�|��r=tj�|tj�|����}t |||���t |||���|Sr�)rFrl�isdir�join�basenamer r �rqrrr}s r(r r �ss�� � �w�}�}�S���7��g�l�l�3��� 0� 0�� 5� 5�6�6�� �S�#��7�7�7�7� �S�#��7�7�7�7� �Jr'c�� tj�|��r=tj�|tj�|����}t |||���t |||���|Sr�)rFrlr�r�r�r r r�s r(r r �ss�� � �w�}�}�S���7��g�l�l�3��� 0� 0�� 5� 5�6�6�� �S�#��7�7�7�7� �S�#��7�7�7�7� �Jr'c��� �fd�}|S)Nc���g}�D]*}|�tj||�����+t|��Sr3)�extend�fnmatch�filter�set)rlr�� ignored_names�pattern�patternss �r(�_ignore_patternsz)ignore_patterns.._ignore_patterns�sJ���� �� A� A�G� � � ����w�!?�!?� @� @� @� @��=�!�!�!r'r&)r�r�s` r(rr�s)���&�"�"�"�"�"� �r'c ��|�)|tj|��d�|D����}nd}tj||���g} |tup|tu} |D�]�} | j|vr� tj�|| j��} tj�|| j��} | r| n| } | ���}|r=tjdkr-| � d���}|j tj krd}|r�tj | ��}|r)tj || ��t|| | ���n�tj�|��s|r��| ���rt#|| |||||��nC||| ��n6| ���rt#|| |||||��n ||| �����#t$$r+}| �|jd��Yd}~���d}~wt*$r0}| �| | t/|��f��Yd}~���d}~wwxYw t||��nM#t*$r@}t1|dd���%| �||t/|��f��Yd}~nd}~wwxYw| rt%| ���|S) Nc��g|] }|j�� Sr&�r7)�.0�xs r(� z_copytree..�s��/H�/H�/H�1���/H�/H�/Hr'r&)�exist_okrFr|r�winerror)rF�fspath�makedirsr r r7rlr�ryrm�st_reparse_tag�IO_REPARSE_TAG_MOUNT_POINTr�r�r r��is_dirrrr�r�r6�append�strr�)�entriesrqrr�symlinks�ignore� copy_function�ignore_dangling_symlinks� dirs_exist_okr��errors� use_srcentry�srcentry�srcname�dstname�srcobjryr��linktorBr�s r(� _copytreer��s9�� ����r�y��~�~�/H�/H��/H�/H�/H�I�I� � �� ��K��m�,�,�,�,� �F� �E�)�B�]�d�-B�L��,8�,8�� �=�M� )� )� ��'�,�,�s�H�M�2�2���'�,�,�s�H�M�2�2��)�6���w��& 8�!�,�,�.�.�J�� '�b�g��o�o�!� � �e� �<�<���'�4�+J�J�J�!&�J�� /���W�-�-���7��J�v�w�/�/�/��V�W�(�l�K�K�K�K�K��7�>�>�&�1�1�!�6N�!� ����(�(�7� ���(�F�!.�0H�!.�0�0�0�0�&� �f�g�6�6�6�6����"�"� /����(�F�M�1�=�B�B�B�B�� �f�g�.�.�.���� '� '� '� �M�M�#�(�1�+� &� &� &� &� &� &� &� &������ 8� 8� 8� �M�M�7�G�S��X�X�6� 7� 7� 7� 7� 7� 7� 7� 7����� 8����0���c������ �0�0�0� �3� �D� )� )� 1� �M�M�3��S��X�X�.� /� /� /����������0�������F�m�m�� �JsD�8B5G�/A-G� I �( H� I �%I�I �I � J*�*6J%�%J*c ��� tjd||��tj|��5}t |��}ddd��n #1swxYwYt ||||||||���S)Nzshutil.copytree)r�rqrrr�r�r�r�r�)rIr�rF�scandir�listr�) rqrrr�r�r�r�r��itrr�s r(rrs���%�L�I���c�*�*�*� ��C����C��s�)�)�������������������� �W�#�3��"�-�.F�#0� 2� 2� 2�2s�A�A �A �st_file_attributesc��� |�d���}tj|j��o)|jtjzo|jtjk S#t$rYdSwxYw�NFr|)rm�S_ISDIRr�r��FILE_ATTRIBUTE_REPARSE_POINTr�r�r6)�entryr�s r(� _rmtree_isdirr�Fs��� ����E��2�2�B��L���,�,�K��&��)J�J�J��&�$�*I�I�2K� L��� � � ��5�5� ���s�AA� A)�(A)c��� tj|��}tj|j��p(|jtjzo|jtjkS#t$rYdSwxYw)NF) rFr�rm�S_ISLNKr�r�r�r�r�r6)rlr�s r(�_rmtree_islinkr�Osu�� ���$���B��L���,�,�K��&��)J�J�J��&�$�*I�I� L��� � � ��5�5� ���s�AA� A&�%A&c�R� |�d���S#t$rYdSwxYwr�)r�r6)r�s r(r�r�Xs=�� ��<�<��<�6�6� 6��� � � ��5�5� ���s �� &�&c�@�tj�|��Sr3)rFrlrz)rls r(r�r�^s���w�~�~�d�#�#�#r'c�F� tj|��5}t|��}ddd��n #1swxYwYn:#t$r-|tj|t j����g}YnwxYw|D]�}|j}t|��rs |���rtd���n=#t$r0|tjj |t j����Y�vwxYwt||���� tj |����#t$r+|tj |t j����Y��wxYw tj |��dS#t$r,|tj |t j����YdSwxYw)N�%Cannot call rmtree on a symbolic link) rFr�r�r6rI�exc_inforlr�ryrz�_rmtree_unsafe�unlink�rmdir)rl�onerror� scandir_itr�r��fullnames r(rrbs��� �Z�� � � '���:�&�&�G� '� '� '� '� '� '� '� '� '� '� '���� '� '� '� '��� ������� �D�#�,�.�.�1�1�1����������=�=���:�� �� � � =� ��#�#�%�%�K�"�"I�J�J�J� K�� � � � �������#�,�.�.�A�A�A��� ���� �8�W� -� -� -� -� =�� �(�#�#�#�#��� =� =� =���� �8�S�\�^�^�<�<�<�<�<� =����0� ��������� �0�0�0�����$�� ���/�/�/�/�/�/�0���s]�>�2� >�6�>�6�>�4A5�4A5�#B7�77C1�0C1�D�2E�E�E*�*2F �F c ��� tj|��5}t|��}ddd��n #1swxYwYnG#t$r:}||_|tj|t j����Yd}~dSd}~wwxYw|D�]e}tj�||j ��} |� d���}|ri |� d���} tj | j ��}nK#t$r+|tj|t j����Y��wxYwn#t$rd}YnwxYw|�rP tj|j tjtjz|���} d} tj�| tj| ����r�t)| ||�� tj| ��n:#t$r-d} |tj|t j����YnwxYwd} tj|j |���n�#t$r+|tj|t j����YnQwxYw td���#t$r0|tjj|t j����YnwxYw| sP tj| ����G#t$r,|tj|t j����Y��|wxYw���#| sN tj| ��w#t$r+|tj|t j����YwwxYwwxYw#t$r,|tj|t j����Y�� wxYw tj|j |�����.#t$r,|tj|t j����Y��cwxYwdS)NFr|��dir_fdTr�)rFr�r�r6r8rIrrlr�r7r�rmr�r�r�r��O_RDONLY� O_NONBLOCKrgrG�_rmtree_safe_fd�closerrzr) �topfdrlrrr�rBr�rr��orig_st�dirfd� dirfd_closeds r(r r �s���� �Z�� � � '�*��:�&�&�G� '� '� '� '� '� '� '� '� '� '� '���� '� '� '� '��� ������ ���� �D�#�,�.�.�1�1�1����������������6=�6=���7�<�<��e�j�1�1�� ��\�\�%�\�8�8�F�� ��#�j�j��j�?�?�G�!�\�'�/�:�:�F�F�������G�B�H�h�� ���?�?�?��H�����  ��� � � ��F�F�F� ���� �( =�" H���� �B�K�"�-�,G�PU�V�V�V��$� �H��w�'�'����%���A�A�N�'��x��A�A�A�H��H�U�O�O�O�O��&�H�H�H�+/�L�#�G�B�H�h�� ���G�G�G�G�G�H����(,� �H��H�U�Z��>�>�>�>�>��&�H�H�H�#�G�B�H�h�� ���G�G�G�G�G�H����N�#*�+1�#2�#2�2��&�N�N�N�#�G�B�G�N�H�c�l�n�n�M�M�M�M�M�N����(�H�H��H�U�O�O�O�O��&�H�H�H�#�G�B�H�h�� ���G�G�G�G�G�H����H��<�H�H��H�U�O�O�O�O��&�H�H�H�#�G�B�H�h�� ���G�G�G�G�G�H����H�����7� ;� ;� ;������3�<�>�>�:�:�:�:�:� ;����B =�� �%�*�U�3�3�3�3�3��� =� =� =���� �8�S�\�^�^�<�<�<�<�<� =����k6=�6=s�>�2� >�6�>�6�>� B�/A=�=B�0D2� /C9�92D.�-D.�2 E�E�5M�>AL �G�L �4H� L � H�L �H0�/L �02I%�"L �$I%�%L �)I8�87J2�/L �1J2�2L �8K�2L�L� M� L"�!M�"2M �M�M �M�2N�N�N5�52O+�*O+rc ��� tjd||��|rd�}n|�d�}t�r�t|t��rt j|��} t j||���}n9#t$r,|t j|tj ����YdSwxYw t j |t j t j z|���}d}n9#t$r,|t j |tj ����YdSwxYw t j �|t j|����r�t!|||�� t j|��n:#t$$r-d}|t j|tj ����YnwxYwd} t j||���n�#t$$r+|t j|tj ����YnQwxYw t%d���#t$$r0|t j j|tj ����YnwxYw|sP t j|��dS#t$$r,|t j|tj ����YdSwxYwdS#|sN t j|��w#t$$r+|t j|tj ����YwwxYwwxYw|�t+d��� t-|��rt%d���n>#t$$r1|t j j|tj ����YdSwxYwt/||��S) Nz shutil.rmtreec��dSr3r&�r�s r(rzrmtree..onerror�s�� �Dr'c���r3r&rs r(rzrmtree..onerror�s�� r'rFTr�z#dir_fd unavailable on this platform)rIr��_use_fd_functionsri�bytesrF�fsdecoder�r5rr�r r rlrgrGr r r6rrzr�r�r)rl� ignore_errorsrr r�fd� fd_closeds r(rr�s�����I�o�t�V�,�,�,��� � � � � �� � � ��6-� �d�E� "� "� %��;�t�$�$�D� ��h�t�F�3�3�3�G�G��� � � � �G�B�H�d�C�L�N�N� 3� 3� 3� �F�F� ���� ����r�{�R�]�:�6�J�J�J�B��I�I��� � � � �G�B�G�T�3�<�>�>� 2� 2� 2� �F�F� ���� <��w������"���6�6� B���D�'�2�2�2�<��H�R�L�L�L�L���<�<�<� $�I��G�B�H�d�C�L�N�N�;�;�;�;�;�<����!� �<��H�T�&�1�1�1�1�1���<�<�<��G�B�H�d�C�L�N�N�;�;�;�;�;�<����B�!�"I�J�J�J���B�B�B��G�B�G�N�D�#�,�.�.�A�A�A�A�A�B����� <�<��H�R�L�L�L�L�L���<�<�<��G�B�H�d�C�L�N�N�;�;�;�;�;�;�<���� <� <��9� <�<��H�R�L�L�L�L���<�<�<��G�B�H�d�C�L�N�N�;�;�;�;�;�<���� <���� � �%�&K�L�L� L� ��d�#�#� G��E�F�F�F� G��� � � � �G�B�G�N�D�#�,�.�.� 9� 9� 9� �F�F� �����d�G�,�,�,s��A,�,2B"�!B"�&0C�2D � D �AJ�E*�)J�*4F!�J� F!�!J�'F>�=J�>2G3�0J�2G3�3J�7H�7I�=J�?I�J�I�2J�J�K)�J0�/K)�02K%�"K)�$K%�%K)�>L�7M�Mc��� tj|��}tjjtjjpdz}tj�|�|����S�N�)rFr�rl�sep�altsepr��rstrip)rlrs r(� _basenamer"sO�� � �9�T�?�?�D� �'�+����-�2� .�C� �7� � �D�K�K��,�,� -� -�-r'c�� tjd||��|}tj�|��r�t ||��r6tj�|��stj||��dStj�|t|����}tj� |��rtd|z��� tj||���n^#t$�rPtj�|��r>tj |��}tj||��tj|��n�tj�|��r�t!||��rtd|�d|�d����t#|��sCtj|tj��s:tj|��r&tjdkrt-d|�d|�d����t/|||d � ��t1|��n |||��tj|��YnwxYw|S) Nz shutil.movez$Destination path '%s' already existszCannot move a directory 'z' into itself 'z'.�darwinz%Cannot move the non-empty directory 'z ': Lacking write permission to 'T)r�r�)rIr�rFrlr�rsrz�renamer�r"r�rr6r�r�r� _destinsrc� _is_immutable�access�W_OK�listdir�platform�PermissionErrorrr)rqrrr��real_dstr�s r(rr+sJ���2�I�m�S�#�&�&�&��H� �w�}�}�S��� K� �S�#� � � �r�w�~�~�c�':�':� � �I�c�3� � � � �F��7�<�<��Y�s�^�^�4�4�� �7�>�>�(� #� #� K��>��I�J�J� J�� � �#�x� � � � �� ���� �7�>�>�#� � � ��[��%�%�F� �J�v�x� (� (� (� �I�c�N�N�N�N� �W�]�]�3� � � ��#�s�#�#� 3��e�(+���S�S�S�2�3�3�3��c�"�"� 4��I�c�2�7�3�3� 4�8:� �3��� 4��L�H�4�4�%�o�),���c�c�c�'3�4�4�4� �S�(�-�"� $� $� $� $� �3�K�K�K�K� �M�#�x� (� (� (� �I�c�N�N�N���)����* �Os�C5�5EI�Ic��tj�|��}tj�|��}|�tjj��s|tjjz }|�tjj��s|tjjz }|�|��Sr3)rFrlro�endswithr� startswithrps r(r&r&ms��� �'�/�/�#� � �C� �'�/�/�#� � �C� �<�<��� � $� $�� �r�w�{��� �<�<��� � $� $�� �r�w�{��� �>�>�#� � �r'c��t|��}tjtjg}t |d��o|j|vS)Nr�)rwrm� UF_IMMUTABLE� SF_IMMUTABLErkr�)rqr��immutable_statess r(r'r'vs;�� �s���B��)�4�+<�=�� �2�z� "� "� F�r�{�6F�'F�Fr'c�� |�dS ddlm}n#t$rYdSwxYw ||��}n#t$rd}YnwxYw|�|dSdS)Nr)�getgrnam�)�grpr6� ImportError�KeyError)r7r6�results r(�_get_gidr<{���,� �|��t�� � � � � � � �� �����t�t��������$������ ������������ ���a�y�� �4��� �� ,� ;�;c�� |�dS ddlm}n#t$rYdSwxYw ||��}n#t$rd}YnwxYw|�|dSdS)Nr)�getpwnamr7)�pwdr@r9r:)r7r@r;s r(�_get_uidrB�r=r>�gzipc ������ |�d} nRtr |dkrd} nBtr |dkrd} n2tr |dkrd} n"td�|�����ddl} |rd | znd} |d z| z} t j�| ��} | rMt j� | ��s.|�|� d | ��|st j | ��|�|� d ��t����t��������fd �}|s�| �| d| z��}|}|� t j�||��} |�|||���|���n#|���wxYw|�t j�| ��} | S)NrrC�gz�bzip2�bz2�xzzCbad value for 'compress', or compression format not supported : {0}r�.�.tar� creating %szCreating tar archivec�H�����|_�|_���|_�|_|Sr3)�gid�gname�uid�uname)�tarinforM�group�ownerrOs ����r(� _set_uid_gidz#_make_tarball.._set_uid_gid�s.��� �?��G�K�!�G�M� �?��G�K�!�G�M��r'zw|%s�r�)�_ZLIB_SUPPORTED�_BZ2_SUPPORTED�_LZMA_SUPPORTED� ValueErrorr��tarfilerFrl�dirnamer��infor�rBr<r�r��addr ro)� base_name�base_dir�compress�verbose�dry_runrSrR�logger�root_dir�tar_compressionrZ� compress_ext� archive_name� archive_dirrT�tar�arcnamerMrOs `` @@r(� _make_tarballrk�s������ ������ �=�X��/�/���� �=�H��/�/���� �=�X��-�-�����+�+1�6�(�+;�+;�=�=� =��N�N�N�,4�<�3��(�(�"�L��v�%� �4�L��'�/�/�,�/�/�K��%�2�7�>�>�+�6�6�%� � � �K�K� �{� 3� 3� 3�� %� �K� � $� $� $���� � �*�+�+�+� �5�/�/�C� �5�/�/�C��������� ���l�l�<��/�)A�B�B���� � ��w�|�|�H�h�7�7�H� � �G�G�H�g�l�G� ;� ;� ;� �I�I�K�K�K�K��C�I�I�K�K�K�K�������w���|�4�4� � �s �F � F c�:� ddl}|dz} tj�|��} | rMtj�| ��s.|�|�d| ��|stj| ��|�|�d| |��|�se|�| d|j���5} tj� |��} |� tj� ||��}tj� |��}| tj kr.| � || ��|�|�d|��tj |��D�]{\} }}| }|� tj�||��}tj� |��}t|��D]p}tj� | |��}tj� ||��} | � || ��|�|�d|���q|D]�}tj� | |��}tj� |��}tj�|��rNtj� ||��} | � || ��|�|�d|������} ddd��n #1swxYwY|�tj�| ��} | S)Nr�.ziprKz#creating '%s' and adding '%s' to it�w)� compressionz adding '%s')�zipfilerFrlr[r�r\r��ZipFile� ZIP_DEFLATED�normpathr��curdirrW�walk�relpath�sorted�isfilero)r^r_rarbrcrSrRrdrp� zip_filenamerh�zfrj�dirpath�dirnames� filenames� arcdirpathr7rls r(� _make_zipfiler�s%��� �N�N�N��v�%�L��'�/�/�)�,�,�K��%�2�7�>�>�+�6�6�%� � � �K�K� �{� 3� 3� 3�� %� �K� � $� $� $� ��� � �9� �(� ,� ,� ,� �=� �_�_�\�3�)0�)=��?�?� =�BD��g�&�&�x�0�0�G��#��7�<�<��(�;�;���w�'�'��1�1�H��"�)�#�#�����7�+�+�+��%��K�K� �x�8�8�8�02���0A�0A� =� =�,���9�$� ��'�!#�����X�!F�!F�J��W�-�-�j�9�9� �"�8�,�,�9�9�D��7�<�<���6�6�D� �g�l�l�:�t�<�<�G��H�H�T�7�+�+�+��)�� � �M�4�8�8�8��%�=�=�D��7�<�<���6�6�D��7�+�+�D�1�1�D��w�~�~�d�+�+�=�"$�'�,�,�z�4�"@�"@������w�/�/�/�!�-�"�K�K� �t�<�<�<��=� =� =� =� =� =� =� =� =� =� =� =� =���� =� =� =� =�<���w���|�4�4� � �s�2H0K/�/K3�6K3ri)r`Nzuncompressed tar file)r`rCzgzip'ed tar-file�gztarzZIP file�zip)r`rFzbzip2'ed tar-file�bztar)r`rHzxz'ed tar-file�xztarc�v� d�t���D��}|���|S)Nc�(�g|]\}}||df��S)r7r&)r�r7�registrys r(r�z'get_archive_formats..:s1��)�)�)�~�t�X��h�q�k�"�)�)�)r')�_ARCHIVE_FORMATS�items�sort��formatss r(rr5sC���)�)��%�%�'�'�)�)�)�G� �L�L�N�N�N� �Nr'rc�J� |�g}t|��std|z���t|ttf��std���|D]@}t|ttf��rt |��dkrtd����A|||dft |<dS)NzThe %s object is not callablez!extra_args needs to be a sequencer7z+extra_args elements are : (arg_name, value)F)�callable� TypeErrorri�tupler��lenr�)r7�function� extra_args� description�elements r(rr?s������� � �H� � �D��7�(�B�C�C�C� �j�5�$�-� 0� 0�=��;�<�<�<��K�K���'�E�4�=�1�1� K�S��\�\�A�5E�5E��I�J�J� J�6F�'� �K��G��T���r'c��t|=dSr3)r�r�s r(rrTs������r'c �t� tjd||||�� t|} n!#t$rt d|z��d�wxYw||||d�} | d} | dD] \} } | | | <� |� t j}| d}d}|��t j|��j}tj |��sttj d|���|rt j |��}|| d<n`t j��}|�|�d |��t j�|��}|st j|�� | ||fi| ��}|�,|�|�d |��t j|��n4#|�-|�|�d |��t j|��wwxYw|S) Nzshutil.make_archivezunknown archive format '%s')rbrcrSrRr��zNot a directoryrdzchanging into '%s'zchanging back to '%s')rIr�r�r:rYrFrtrmr�r��NotADirectoryErrorr:�ENOTDIRr��getcwd�debugrlro�chdir)r^r�rdr_rarbrSrRrc� format_infor��func�arg�val�supports_root_dir�save_cwd�stmdr8s r(rrWs��� �I�#�Y���(�K�K�K�K�&�v�.� � �� �K�K�K��6��?�@�@�d�J�K����!�F��u�.�.�F� �q�>�D���N�����S���s� � ����9��#�A����H����w�x� � �(���|�D�!�!� Q�$�U�]�4E�x�P�P� P� � #�� �)�,�,�I�!)�F�:� � ��y�{�{�H��!�� � �1�8�<�<�<����� �2�2�I�� #����"�"�"���4� �8�6�6�v�6�6�� � ��!�� � �4�h�?�?�?� �H�X� � � ��� � ��!�� � �4�h�?�?�?� �H�X� � � � � ���� �Os� )�A� F�1F5c�v� d�t���D��}|���|S)Nc�6�g|]\}}||d|df��S)rr�r&)r�r7r\s r(r�z&get_unpack_formats..�s7��(�(�(�J�D�$��d�1�g�t�A�w�'�(�(�(r')�_UNPACK_FORMATSr�r�r�s r(rr�sC��� (�(��$�$�&�&�(�(�(�G� �L�L�N�N�N� �Nr'c��� i}t���D]\}}|dD]}|||<��|D]"}||vrd}t||||fz����#t|��st d���dS)Nrz!%s is already registered for "%s"z*The registered function must be a callable)r�r�r/r�r�) � extensionsr�r��existing_extensionsr7r\�ext� extension�msgs r(�_check_unpack_optionsr��s���5���%�+�+�-�-�,�,� ��d���7� ,� ,�C�'+� �� $� $� ,� �H�H� � �+� +� +�5�C���y�':�9�'E�'G�!G�H�H� H� ,� �H� � �F��D�E�E�E�F�Fr'c�N� |�g}t|||��||||ft|<dSr3)r�r�)r7r�r�r�r�s r(rr�s?������ ��*�h� �;�;�;�&��*�k�I�O�D���r'c�� t|=dSr3)r�r�s r(rr�s��4�����r'c�� tj�|��}tj�|��stj|��dSdSr3)rFrlr[r�r�)rlr[s r(�_ensure_directoryr��sN��;��g�o�o�d�#�#�G� �7�=�=�� !� !�� � �G�������r'c��� ddl}|�|��std|z���|�|��} |���D]�}|j}|�d��sd|vr�#tjj |g|� d���R�}|s�Pt|��|� d��sf|� |d��5}t|d��5}t||��ddd��n #1swxYwYddd��n #1swxYwY�� |���dS#|���wxYw)Nrz%s is not a zip file�/z..�rr�)rp� is_zipfiler-rq�infolistr8r0rFrlr��splitr�r/r�rr ) r8� extract_dirrpr�r\r7� targetpath�source�targets r(�_unpack_zipfiler��s�����N�N�N� � � �h� '� '�;��.��9�:�:�:� �/�/�(� #� #�C���L�L�N�N� 0� 0�D��=�D����s�#�#� �t�t�|�|�����k�D�D�J�J�s�O�O�D�D�D�J�� �� �j� )� )� )��=�=��%�%� 0��X�X�d�C�(�(�0�F��Z��.�.�0�28����/�/�/�0�0�0�0�0�0�0�0�0�0�0����0�0�0�0�0�0�0�0�0�0�0�0�0�0�0����0�0�0�0�� 0�$ � � � � � � � ��� � � � � � ���sU�BE �!D&�2D� D&�D �D&�D �D&� E �&D* �*E �-D* �.E � ErUc�� ddl} |�|��}n #|j$rtd|z���wxYw |�||���|���dS#|���wxYw)Nrz/%s is not a compressed or uncompressed tar filerU)rZr��TarErrorr-� extractallr )r8r�r�rZ�tarobjs r(�_unpack_tarfiler��s�����N�N�N�J����h�'�'���� � �J�J�J�� =�� H�J�J� J�J��������+�f��5�5�5�� � �������� � �������s��:�A+�+BrJrm)rir�z.tar.gzz.tgzz.tar.bz2z.tbz2z.tar.xzz.txzc��t���D]+\}}|dD]}|�|��r|ccS��,dS)Nr)r�r�r/)r8r7r\r�s r(�_find_unpack_formatr�sh��%�+�+�-�-��� ��d��a�� � �I�� � ��+�+� �� � � � � � � � �4r'c�~� tjd|||��|�tj��}tj|��}tj|��}|�i}nd|i}|�i t |}n1#t $r$td�|����d�wxYw|d}|||fit|d���|��dSt|��}|�"td�|�����t |d}tt |d��|z}|||fi|��dS)Nzshutil.unpack_archiver�zUnknown unpack format '{0}'r�r7zUnknown archive format '{0}') rIr�rFr�r�r�r:rYr��dictr�r-)r8r�r�r�� filter_kwargsr�r�r�s r(rrst���"�I�%�x��f�E�E�E����i�k�k� ��)�K�(�(�K��y��"�"�H� �~�� � �!�6�*� � �� U�)�&�1�K�K��� U� U� U��:�A�A�&�I�I�J�J�PT� T� U�����1�~�� ��X�{�L�L�d�;�q�>�&:�&:�L�m�L�L�L�L�L�%�X�.�.�� �>��:�A�A�(�K�K�L�L� L��v�&�q�)���o�f�-�a�0�1�1�M�A�� ��X�{�-�-�f�-�-�-�-�-s �" A0�0.B�statvfs� disk_usage�usageztotal used freezTotal space in byteszUsed space in byteszFree space in bytesc�� tj|��}|j|jz}|j|jz}|j|jz |jz}t |||��Sr3)rFr��f_bavail�f_frsize�f_blocks�f_bfree�_ntuple_diskusage)rlr��free�total�useds r(r�r�Vs[�� � �Z�� � ���{�R�[�(��� �b�k�)��� �b�j�(�B�K�7�� ���d�3�3�3r'c�^� tj|��\}}||z }t|||��Sr3)r� _getdiskusager�)rlr�r�r�s r(r�r�gs8�� � �&�t�,�,� ��t��t�|�� ���d�3�3�3r'c��� tjd|||��|�|�td���|}|}|�d}nHt|t��r3t |��}|�"t d�|�����|�d}nHt|t��s3t|��}|�"t d�|�����tj |||��dS)Nz shutil.chownzuser and/or group must be set�����zno such user: {!r}zno such group: {!r}) rIr�rYrir�rB� LookupErrorr��intr<rFr)rl�userrR�_user�_groups r(rrrs���� �I�n�d�D�%�0�0�0� �|�� ��8�9�9�9� �E� �F� �|���� �D�#� � �A������ �=��2�9�9�$�?�?�@�@� @� �}���� ��s� #� #�C��%���� �>��3�:�:�5�A�A�B�B� B��H�T�5�&�!�!�!�!�!r'��P�c�J� ttjd��}n#ttf$rd}YnwxYw ttjd��}n#ttf$rd}YnwxYw|dks|dkr� tjt j�����}n1#tttf$rtj |��}YnwxYw|dkr|j p|d}|dkr|j p|d}tj ||f��S)N�COLUMNSr�LINESr�)r�rF�environr:rYrrI� __stdout__r4�AttributeErrorr6� terminal_size�columns�lines)�fallbackr�r��sizes r(rr�sI���&��b�j��+�,�,���� �j� !��������������B�J�w�'�(�(���� �j� !�������������!�|�|�u��z�z� .��'���(=�(=�(?�(?�@�@�D�D��� �G�4� .� .� .��#�H�-�-�D�D�D� .���� �a�<�<��l�1�h�q�k�G� �A�:�:��J�-�(�1�+�E� � �W�e�,� -� -�-s/�#�9�9�A�A3�2A3�0B4�4+C"�!C"c��tj�|��o4tj||��otj�|�� Sr3)rFrlr�r(r�)rvr�s r(� _access_checkr��sD�� �G�N�N�2� � � &�2�9�R��#6�#6� &��G�M�M�"�%�%�%�'r'c���� tj����rt�|��r�SdSt �t ��}|�[tj�dd��}|�9 tjd��}n##ttf$rtj }YnwxYw|sdS|rFtj |��}|� tj tj����}n3tj|��}|� tj��}t jdkr�tj}|rtj |��}||vr|�d|��tjd��pt*}d�|� tj��D��}|r d�|D��}t-�fd�|D����r�g}n�fd �|D��}n�g}t/��}|D]u} tj�| ��} | |vrP|�| ��|D]8} tj�| | ��} t| |��r| ccS�9�vdS) N�PATH�CS_PATH�win32r�PATHEXTc��g|]}|�|��Sr&r&�r�r�s r(r�zwhich..�s��J�J�J�3�c�J�3�J�J�Jr'c�6�g|]}tj|����Sr&)rF�fsencoder�s r(r�zwhich..�s"��;�;�;�C�r�{�3�'�'�;�;�;r'c3��K�|]=}�����|�����V��>dSr3)�lowerr/�r�r��cmds �r(� zwhich..sA�����D�D�S�s�y�y�{�{�#�#�C�I�I�K�K�0�0�D�D�D�D�D�Dr'c���g|]}�|z��Sr&r&r�s �r(r�zwhich..s���2�2�2�3�S�3�Y�2�2�2r')rFrlr[r�rirr��get�confstrr�rY�defpathr�r��pathseprrIr+rt�insert�getenv�_WIN_DEFAULT_PATHEXT�anyr�rnr]r�) r�r�rl� use_bytesrt�pathext_source�pathext�files�seen�dir�normdir�thefiler7s ` r(rr�s����� �w���s���� ��d� #� #� ��J��t��3��&�&�I� �|��z�~�~�f�d�+�+�� �<� "��z�)�,�,����"�J�/� "� "� "��z���� "���� ���t��&��{�4� � ���z�z�"�+�b�j�1�1�2�2����{�4� � ���z�z�"�*�%�%�� �|�w������ � )��[��(�(�F� �� � � �K�K��6� "� "� "���9�-�-�E�1E��J�J�.�"6�"6�r�z�"B�"B�J�J�J�� � <�;�;�7�;�;�;�G� �D�D�D�D�G�D�D�D� D� D� 3��E�E�E�2�2�2�2�'�2�2�2�E�E���� �5�5�D�� � ���'�"�"�3�'�'���$��� �H�H�W� � � � � � ���w�|�|�C��1�1�� ��t�,�,� ��K�K�K�K�K� �� �4s�0B�B%�$B%)r)F)FN)rCrrNNNN)rrNNNNr)NNrrNNN)NN)r�)frFrIrmr�� collectionsr:�zlibrVr9rGrW�lzmarXr7r�rrrbrkr+r0rMr�r�__all__r6rr rrr-r5r/r1rCrTr`rrsrwr{r r r�r r r rr�r� stat_resultr�r�rr r�rr�supports_dir_fdr�� supports_fdr�rr�avoids_symlink_attacksr"rr&r'r<rBrkrr�rrrrrr�rrr�r�r�r�r�rr�� namedtupler�r��__doc__r�r�r�rrr��F_OK�X_OKrr&r'r(�rs� ���  � � � � � � � � � � � ��������� � � � ���K�K�K� ��O�O�������O�O�O�������J�J�J� ��N�N�������N�N�N�������K�K�K� ��O�O�������O�O�O����� �7�d�?�� �����7�g����L�L�L�L� �� �I�I�I�&�5�{�{�I� ��7�2�z�*�*�O�s�|�/F�/F�w�/O�/O���7�7�7�5�,�7�7��?�� � � �� � � � � �G� � � �@�@�@�@�@�E�@�@�@�;�;�;�;�;�w�;�;�;�6�6�6�6�6��6�6�6�0�0�0�0�0��0�0�0�&�&�&�&�&�I�&�&�&������ ����  � � �(>�>�>�@.:�����& � � � �4�4�4�$E�E�E�R�R�R�+/�>�>�>�>�>�@+/�.�.�.�.�.�2 �7�2�{��� �04�������0 � � �+/�H�H�H�H�H�T'+������$(,������" � � �7<�@�@�@�@�D!&�d�%�&+�5�.2�.2�.2�.2�` �7�2�>�/�0�0�$����������� $�$�$�0�0�0�>>=�>=�>=�@�g�r�w�� �2�8�<��'�(�<��Z�2�>�1�<��W�� ;�;�� M-�d�M-�M-�M-�M-�M-�b!2���.�.�.�$"'�@�@�@�@�D���G�G�G� ���$���$LM�@D�D�D�D�D�L;<�@D�7�7�7�7�~ �m�0�1�%�t�-��� �D�!.�1E�0F� 2�D�!:��W��,�b�*�d�C��U���;�!.�1F�0G� 3�T�!;��W���8�!.�1C�0D� 0�$�!8��W�����H�H�H�H�*���KL�;?�=�=�=�=�@ � � �F�F�F�$CG�')�J�J�J�J�,������ ���<6:� � � � � �(�h���-D� E��h���Z� 8���� �4�!*�F� 3�_�b� 2� 4�O�G���5�!+�W� 5��� 3� 5�O�G���2�!*�F� 3�_�b� 0� 2�O�G�����..�d�..�..�..�..�..�b �7�2�y���!4� �N�N�<� � � �.� �.�w�8I�J�J��&<���#�%:���"�%:���"� 4� 4� 4� 4�� 4� �N�N�<� � � �.� �.�w�8I�J�J��4�4�4�"�"�"�"�@+.�+.�+.�+.�b'�'�'� �G�b�g�%�D�N�N�N�N�N�Ns-�#�-�-�9�A�A�A�A�A