Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_glob.cpython-311.pyc |
�
�Ke�? � �� � d dl Z d dlZd dlZd dlZd dlZd dlmZmZmZm Z m
Z
G d� dej � � Ze G d� dej � � � � Z
edk r ej � � dS dS )� N)�TESTFN�skip_unless_symlink�can_symlink�create_empty_file�
change_cwdc �H � e Zd ZdZd� Zd� Zd� Zd� Zd� Zd� Z d� Z
d � Zd
� Zd� Z
d� Zd
� Zd� Zd� Zed� � � Zed� � � Z ej ej dk d� � d� � � Zd� Zd� Z ej ej dk d� � d� � � Zd� Zd� Zd� Zd� Z d� Z!dS )� GlobTestsNc �t � t j � t j j | j g|�R � � � S �N)�os�path�normpath�join�tempdir)�self�partss �8/usr/local/apps/python3/lib/python3.11/test/test_glob.py�normzGlobTests.norm s. � ��w������T�\� B�E� B� B� B�C�C�C� c � � � � fd�|D � � S )Nc �H �� g | ]}t j j �j g|�R � ��S � �r r
r r )�.0r r s �r �
<listcomp>z#GlobTests.joins.<locals>.<listcomp> s/ �� �G�G�G�u����T�\�2�E�2�2�2�G�G�Gr r )r �tupless ` r �joinszGlobTests.joins s �� �G�G�G�G��G�G�G�Gr c �� � | j |� }t j � |� � \ }}t j � |� � st j |� � t
|� � d S r )r r r
�split�exists�makedirsr )r r �filename�base�files r �mktempzGlobTests.mktemp sa � ��4�9�e�$���W�]�]�8�,�,�
��d��w�~�~�d�#�#� ��K������(�#�#�#�#�#r c �F � t dz | _ | � dd� � | � dd� � | � dd� � | � dd � � | � dd
� � | � dd� � | � d
� � | � d� � | � ddd� � | � dddd� � t � � r�t j | � d� � | � d� � � � t j d| � d� � � � t j t j � dd� � | � d� � � � t j t j
ht j k rPt j t j
v r8t j | j t j t j z � � | _ d S d | _ d S )N�_dir�a�D�aab�F�.aa�G�.bb�H�.J�aaa�zzzF�ZZZ�EF�bcd�efg�ha�broken�sym1�sym2�sym3)r r r% r r �symlinkr r
r �open�stat�supports_dir_fd�scandir�supports_fd�O_RDONLY�O_DIRECTORY�dir_fd�r s r �setUpzGlobTests.setUp s� � ���������C��������E�3�������E�3�������E�3�������E�4� � � ����E�6�"�"�"����E�������D�������C���%�%�%����C���t�,�,�,��=�=� D��J�t�y�y��*�*�D�I�I�f�,=�,=�>�>�>��J�x����6�!2�!2�3�3�3��J�r�w�|�|�C��/�/����6�1B�1B�C�C�C��G�R�W���!3�3�3��
�b�n�8T�8T��'�$�,���b�n�0L�M�M�D�K�K�K��D�K�K�Kr c �x � | j �t j | j � � t j | j � � d S r )rD r �close�shutil�rmtreer rE s r �tearDownzGlobTests.tearDown0 s4 � ��;�"��H�T�[�!�!�!��
�d�l�#�#�#�#�#r c �� � � t |� � dk r |d }nt j j |� }t j � � j |� � }t j |fi |��}t j |fi |��}� � t j |fi |��|� � d� |D � � }� � t j t j |� � fi |��|� � � � t j t j |� � fi |��|� � t � j � � 5 t j |fi |��}|D ]5}� �
t j � |� � |� � �6|dk s|dt j z k r|dd � } n|} � � � fd�|D � � | � � � � t j |fi |��|� � t j |� � }
d� |D � � }� � t j |
fi |��|� � � � t j |
fi |��|� � d d d � � n# 1 swxY w Y � � t j |fd� j i|��|� � � � t j |fd� j i|��|� � t j � j � � }� � t j |
fd|i|��|� � � � t j |
fd|i|��|� � � j
��� � t j |fd� j
i|��|� � � � t j |fd� j
i|��|� � � � t j |
fd� j
i|��|� � � � t j |
fd� j
i|��|� � |S ) N� r c �6 � g | ]}t j |� � ��S r �r �fsencode�r �xs r r z"GlobTests.glob.<locals>.<listcomp>? s � �,�,�,�1���A���,�,�,r �**c �Z �� g | ]'}t j � �j |� � ��(S r r )r rR r s �r r z"GlobTests.glob.<locals>.<listcomp>K s+ �� �"O�"O�"O�Q�2�7�<�<���a�#@�#@�"O�"O�"Or c �6 � g | ]}t j |� � ��S r rO rQ s r r z"GlobTests.glob.<locals>.<listcomp>O s � �2�2�2��R�[��^�^�2�2�2r �root_dirrD )�lenr r
r r �glob�iglob�assertCountEqualrP r �assertFalse�isabs�seprD )
r r �kwargs�pattern�p�res�res2�bresrR �expected�bpattern�bres2�btempdirs
` r rX zGlobTests.glob5 s� �� ��u�:�:��?�?��A�h�G�G��g�l�E�*�G��G�L�L���w�/�/���i��$�$�V�$�$���z�!�&�&�v�&�&�����d�j��5�5�f�5�5�s�;�;�;�,�,��,�,�,�����d�i���A���A�A�&�A�A�4�H�H�H����d�j���Q���B�B�6�B�B�D�I�I�I�
���
%�
%� I� I��9�W�/�/��/�/�D��
6�
6��� � �����q�!1�!1�1�5�5�5�5��$���'�T�B�F�]�":�":��q�r�r�7������!�!�"O�"O�"O�"O�$�"O�"O�"O�"*�
,�
,�
,��!�!�$�*�W�"?�"?��"?�"?��F�F�F��{�7�+�+�H�2�2�T�2�2�2�E��!�!�$�)�H�"?�"?��"?�"?��G�G�G��!�!�$�*�X�"@�"@��"@�"@�%�H�H�H� I� I� I� I� I� I� I� I� I� I� I���� I� I� I� I�
���d�i��Q�Q�$�,�Q�&�Q�Q�SW�X�X�X����d�j��R�R�4�<�R�6�R�R�TX�Y�Y�Y��;�t�|�,�,������I�h�<�<��<�V�<�<�e� E� E� E�����J�x�=�=�(�=�f�=�=�u� F� F� F� �;�"��!�!�� �'�@�@�$�+�@��@�@�$�
H�
H�
H��!�!��
�7�A�A�4�;�A�&�A�A�4�
I�
I�
I��!�!�� �(�A�A�4�;�A�&�A�A�5�
J�
J�
J��!�!��
�8�B�B�D�K�B�6�B�B�E�
K�
K�
K� �
s �0D%I!�!I%�(I%c � � t |� � }t |� � }| � t |� � t |� � � � | � t |� � t |� � � � d S r )�list�assertEqual�set�sorted)r �l1�l2s r �assertSequencesEqual_noorderz&GlobTests.assertSequencesEqual_noorderg sb � �
�"�X�X��
�"�X�X������R���#�b�'�'�*�*�*��������V�B�Z�Z�0�0�0�0�0r c � � | j } || � d� � | � d� � g� � || � dd� � | � dd� � g� � || � d� � | � d� � g� � || � d� � g � � t j d� � }| � d� |D � � t h� � t j t
j � t
j d� � � � }| � d� |D � � t h� � t j d� � }| � d � |D � � t h� � t j t
j � t j
t
j � � d� � � � }| � d
� |D � � t h� � d S )Nr( r) r* �zymurgy�*c �, � h | ]}t |� � ��S r ��type�r �rs r � <setcomp>z.GlobTests.test_glob_literal.<locals>.<setcomp>u � � �/�/�/�a�$�q�'�'�/�/�/r c �, � h | ]}t |� � ��S r rt rv s r rx z.GlobTests.test_glob_literal.<locals>.<setcomp>w ry r � *c �, � h | ]}t |� � ��S r rt rv s r rx z.GlobTests.test_glob_literal.<locals>.<setcomp>z ry r c �, � h | ]}t |� � ��S r rt rv s r rx z.GlobTests.test_glob_literal.<locals>.<setcomp>| ry r )ro rX r rj �strr r
r �curdir�bytesrP )r �eqra s r �test_glob_literalzGlobTests.test_glob_literalm s� � �
�
.��
��4�9�9�S�>�>�D�I�I�c�N�N�+�,�,�,�
��4�9�9�S�#������3��!4�!4� 5�6�6�6�
��4�9�9�U���d�i�i��.�.�/�0�0�0�
��4�9�9�Y����$�$�$��i��n�n�����/�/�3�/�/�/�#��7�7�7��i�����R�Y��4�4�5�5�����/�/�3�/�/�/�#��7�7�7��i��o�o�����/�/�3�/�/�/�%��9�9�9��i�����R�[���%;�%;�T�B�B�C�C�����/�/�3�/�/�/�%��9�9�9�9�9r c �B � | � t j d� � g � � | � t j d� � g � � | � t j d| j �� � g � � | � t j dt j | j � � �� � g � � | � t j d| j �� � g � � | � t j d| j �� � g � � d S )N� r )rV )rD )rj rX r r rP rD rE s r �test_glob_empty_patternz!GlobTests.test_glob_empty_pattern~ s� � ������2����+�+�+������3����,�,�,������2���=�=�=�r�B�B�B������3���T�\�1J�1J�K�K�K�R�P�P�P������2�d�k�:�:�:�B�?�?�?������3�t�{�;�;�;�R�@�@�@�@�@r c � � | j } || � d� � t | j g d�� � � � || � d� � t | j ddg� � � � || � d� � t | j ddg� � � � || � d � � t | j dg� � � � || � d
� � t | j ddg� � � � || � d� � t | j ddg� � � � || � d
� � g � � d S )Nza*)r( r* r1 �*ar( r1 z.*r, r. �?aazaa?r* zaa[ab]z*q)ro rX �mapr �r r� s r �test_glob_one_directoryz!GlobTests.test_glob_one_directory� s; � �
�
.��
��4�9�9�T�?�?�C�� �+>�+>�+>�?�?�@�@�@�
��4�9�9�T�?�?�C�� �C��<�8�8�9�9�9�
��4�9�9�T�?�?�C�� �E�5�>�:�:�;�;�;�
��4�9�9�U���S���U�G�4�4�5�5�5�
��4�9�9�U���S���U�E�N�;�;�<�<�<�
��4�9�9�X����D�I��u�~� >� >�?�?�?�
��4�9�9�T�?�?�B�����r c �� � | j }t j � d� � dk r8 || � ddd� � | � ddd� � g� � nM || � ddd� � | � ddd� � | � ddd� � g� � || � ddd� � | � ddd� � g� � d S )N�abCDr( r5 zE*r4 r6 z*g)ro r r
�normcaserX r r� s r �test_glob_nested_directoryz$GlobTests.test_glob_nested_directory� s� � �
�
.��
�7���F�#�#�v�-�-��B�t�y�y��e�T�*�*�T�Y�Y�s�E�4�-H�-H�,I�J�J�J�J�
�B�t�y�y��e�T�*�*�T�Y�Y�s�E�4�-H�-H�-1�Y�Y�s�E�5�-I�-I�-K�
L�
L�
L�
��4�9�9�S�%��&�&����3��u�)E�)E�(F�G�G�G�G�Gr c �� � | j } || � dd� � | � dd� � g� � || � dd� � g � � || � dddd� � | � dddd� � g� � || � dd � � | � d
d� � | � dd
� � g� � d S )Nrr r) r( r� r5 r6 r7 z?a?�*Fr1 r2 r* r+ �ro rX r r� s r �test_glob_directory_namesz#GlobTests.test_glob_directory_names� s� � �
�
.��
��4�9�9�S�#������3��!4�!4� 5�6�6�6�
��4�9�9�S�$����$�$�$�
��4�9�9�S�#�s�D�)�)��I�I�c�5�%��.�.�/� 1� 1� 1�
��4�9�9�U�D�!�!�D�I�I�e�V�$<�$<�$(�I�I�e�S�$9�$9�$;� <� <� <� <� <r c � � t j | � d� � t j z � � }| � |g � � t j | � d� � t j z � � }| � |g � � t j | � d� � t j z � � }| � t |� � d� � | � t |� � | � d� � | � d� � h| � d� � t j z | � d� � t j z hg� � d S �NzZ*Zr3 zaa*� r1 r* )rX r r r] rj rW �assertInrk �r ra s r �'test_glob_directory_with_trailing_slashz1GlobTests.test_glob_directory_with_trailing_slash� s- � ��i�� � �%�(�(�2�6�1�2�2������b�!�!�!��i�� � �%�(�(�2�6�1�2�2������b�!�!�!� �i�� � �%�(�(�2�6�1�2�2������S���1�%�%�%��
�
�c�#�h�h��y�y��'�'����5�)9�)9�:��y�y��'�'�"�&�0�$�)�)�E�2B�2B�R�V�2K�L�!� � � � � r c
� � t j t j | � d� � t j z � � � � }| � |g � � t j t j | � d� � t j z � � � � }| � |g � � t j t j | � d� � t j z � � � � }| � t
|� � d� � | � t |� � t j | � d� � � � t j | � d� � � � ht j | � d� � t j z � � t j | � d� � t j z � � hg� � d S r� ) rX r rP r r] rj rW r� rk r� s r �-test_glob_bytes_directory_with_trailing_slashz7GlobTests.test_glob_bytes_directory_with_trailing_slash� sy � � �i���D�I�I�e�$4�$4�r�v�$=�>�>�?�?������b�!�!�!��i���D�I�I�e�$4�$4�r�v�$=�>�>�?�?������b�!�!�!��i���D�I�I�e�$4�$4�r�v�$=�>�>�?�?������S���1�%�%�%��
�
�c�#�h�h��{�4�9�9�U�#3�#3�4�4��{�4�9�9�U�#3�#3�4�4�6��{�4�9�9�U�#3�#3�b�f�#<�=�=��{�4�9�9�U�#3�#3�b�f�#<�=�=�?�!� � � � � r c � � | j } || � d� � | � d� � g� � || � dd� � | � dd� � | � dd� � g� � | � | � dt j z � � | � d� � g| � d� � t j z gg� � || � dd� � | � dd� � | � dd � � | � dd� � g� � d S )
Nr; rr r4 r6 r� r1 r2 r* r+ )ro rX r r� r r] r� s r �test_glob_symlinkszGlobTests.test_glob_symlinks� s@ � �
�
.��
��4�9�9�V���t�y�y��0�0�1�2�2�2�
��4�9�9�V�S�!�!�D�I�I�f�d�$;�$;�$(�I�I�f�e�$<�$<�$>� ?� ?� ?��
�
�d�i�i�����0�0�� � �&�)�)�*�T�Y�Y�v�->�->���-G�,H�I� K� K� K�
��4�9�9�S�$����I�I�e�V�$�$��I�I�e�S�!�!�4�9�9�V�T�#:�#:�<� =� =� =� =� =r c � � | j } || � d� � | � d� � | � d� � | � d� � g� � || � d� � | � d� � g� � || � d� � | � d� � g� � d S )Nzsym*r9 r: r; r� r� s r �test_glob_broken_symlinksz#GlobTests.test_glob_broken_symlinks� s� � �
�
.��
��4�9�9�V���t�y�y��0�0�$�)�)�F�2C�2C�#�y�y��0�0�2� 3� 3� 3�
��4�9�9�V���t�y�y��0�0�1�2�2�2�
��4�9�9�V���t�y�y��0�0�1�2�2�2�2�2r �win32zWin32 specific testc � � | j } |t j d� � g � � |t j d� � g � � |t j d� � g � � |t j d� � g � � |t j d� � dg� � |t j d� � dg� � |t j d� � g � � |t j d� � g � � d S ) Nz*:s *:z?:s ?:z\\?\c:\s \\?\c:\z\\*\*\s \\*\*\)ro rX r� s r �test_glob_magic_in_drivez"GlobTests.test_glob_magic_in_drive� s� � �
�
.��
��4�9�T�?�?�B����
��4�9�U���R� � � �
��4�9�T�?�?�B����
��4�9�U���R� � � �
��4�9�]�#�#�m�_�5�5�5�
��4�9�^�$�$�~�&6�7�7�7�
��4�9�\�"�"�B�'�'�'�
��4�9�]�#�#�R�(�(�(�(�(r c �� � | � t j |� � |� � | � t j t j |� � � � t j |� � � � d S r )rj rX �escaper rP )r �argrd s r �check_escapezGlobTests.check_escape� s\ � ������S�)�)�8�4�4�4������R�[��%5�%5�6�6���H�8M�8M�N�N�N�N�Nr c � � | j } |dd� � |dd� � |dd� � |dd� � |dd � � |d
d� � d S )N�abc�[z[[]�?z[?]rr z[*]z[[_/*?*/_]]z[[][[]_/[*][?][*]/_]]z
/[[_/*?*/_]]/z/[[][[]_/[*][?][*]/_]]/�r� �r �checks r �test_escapezGlobTests.test_escape� s~ � ��!��
��e�U����
��c�5����
��c�5����
��c�5����
��m�4�5�5�5�
��o�8�9�9�9�9�9r c � � | j } |dd� � |dd� � |dd� � |dd� � |d d
� � |dd� � d S )
Nz?:?z?:[?]z*:*z*:[*]z\\?\c:\?z
\\?\c:\[?]z\\*\*\*z \\*\*\[*]z//?/c:/?z
//?/c:/[?]z//*/*/*z //*/*/[*]r� r� s r �test_escape_windowszGlobTests.test_escape_windows� s| � ��!��
��e�W����
��e�W����
��k�=�)�)�)�
��j�,�'�'�'�
��j�,�'�'�'�
��i��%�%�%�%�%r c � � | j |ddi|��S )N� recursiveT�rX �r r r^ s r �rglobzGlobTests.rglob� s � ��t�y�%�:�4�:�6�:�:�:r c � � | j |ddi|��S )N�include_hiddenTr� r� s r �hglobzGlobTests.hglob� s � ��t�y�%�?��?��?�?�?r c � � | j }ddg} || � d� � | j |� � � || � d� � | j |� � � dg} || � dd� � | j |� � � d S )N�r1 �r, r� z*aa�r, r- rS r- )ro r� r )r r� �lrn s r �test_hidden_globzGlobTests.test_hidden_glob s� � �
�
.��
�x� ��
��4�:�:�e���j�d�j�!�n�-�-�-�
��4�:�:�e���j�d�j�!�n�-�-�-��^��
��4�:�:�d�C� � �*�$�*�b�/�2�2�2�2�2r c � �� | j }g d�}t � � r|g d�z
} || � d� � | j dg|�R � � � || � t j d� � | j t j dfgd� |D � � �R � � � g d�}t � � r|dd gz
} || � dd� � | j dg|�R � � � || � d
d� � | � ddd
ddd� � � � || � d� � | � ddd� � � � ddg}t � � r|dgz
} || � dd� � | j |� � � g d�}t � � r|dgz
} || � dd� � | j |� � � || � ddd� � g � � || � ddd� � | � dd� � � � || � d
dd� � | � d
� � � � t
| j � � 5 t j j � |t j
dd�� � �fd�|D � � � � |t j
�dd� � d�� � �fd�|D � � � � |t j
�dd� � d�� � �fd �|D � � � � |t j
�t j d� � d�� � �t j d� � g�fd!�|D � � z � � |t j
�t j dd� � d�� � �t j d� � g�fd"�|D � � z � � |t j
�t j dd� � d�� � �fd#�|D � � � � |t j
�dd$� � d�� � �d%d&� � g� � |t j
d'd�� � g � � �d
dd� � dg}t � � r| �d(d� � gz
} |t j
�dd� � d�� � |� � g d)�} |t j
ddd�*� � �fd+�||z D � � � � d d d � � d S # 1 swxY w Y d S ),N)�r4 )r3 �r( �r( r) �r( r5 �r( r5 r4 �r( r5 r6 �r( r5 r6 r7 r� �r1 r2 �r* �r* r+ ))r9 )r: )r; �r; r4 )r; r6 )r; r6 r7 rS )r� r� c 3 �6 K � | ]}t j f|z V � �d S r �r r )r �is r � <genexpr>z0GlobTests.test_recursive_glob.<locals>.<genexpr> s+ � � � �)I�)I�q�2�9�,��*:�)I�)I�)I�)I�)I�)Ir )�r( r� )r( r5 r� )r( r5 r6 r� )r1 r� )r* r� )r; r� )r; r6 r� r( r� r� r� r� r� r� za**r� r� r� r� r� r4 )r� r� r� r� r� r5 rr T�r� c � �� g | ]} �|� ��S r r �r r� r s �r r z1GlobTests.test_recursive_glob.<locals>.<listcomp>8 s �� �0H�0H�0H�a���q��0H�0H�0Hr c � �� g | ]} �|� ��S r r r� s �r r z1GlobTests.test_recursive_glob.<locals>.<listcomp>: � �� �(�(�(�a���q��(�(�(r c � �� g | ]} �|� ��S r r r� s �r r z1GlobTests.test_recursive_glob.<locals>.<listcomp>< r� r c �6 �� g | ]} �t j g|�R � ��S r r� r� s �r r z1GlobTests.test_recursive_glob.<locals>.<listcomp>> �- �� �(K�(K�(K����b�i�)<�!�)<�)<�)<�(K�(K�(Kr c �6 �� g | ]} �t j g|�R � ��S r r� r� s �r r z1GlobTests.test_recursive_glob.<locals>.<listcomp>@ r� r c �6 �� g | ]} �t j g|�R � ��S r r� r� s �r r z1GlobTests.test_recursive_glob.<locals>.<listcomp>B s- �� �3�3�3����b�i�$�!�$�$�$�3�3�3r zzz*Fr1 r2 z**zz*Fr; ))r. r/ )r. r0 r� r� )r. )r� r� c � �� g | ]} �|� ��S r r r� s �r r z1GlobTests.test_recursive_glob.<locals>.<listcomp>M s �� �+�+�+�Q���a��+�+�+r )ro r r� r r r r r r
r rX )r r� �full�dirs�expect�recr s @r �test_recursive_globzGlobTests.test_recursive_glob
s6 �� �
�
.��� � �� �=�=� �� � � �
�D� ��4�:�:�d���Z�T�Z��5��5�5�5�6�6�6�
��4�:�:�b�i��&�&��D�J�� �2��J�)I�)I�D�)I�)I�)I�J�J�J� L� L� L�*� *� *���=�=� 8��\�#6�7�7�D�
��4�:�:�d�B������E�!9�D�!9�!9�!9�:�:�:�
��4�:�:�c�4� � �$�*�*��z�<�1C��!:�#<� #<� =� =� =� ��4�:�:�e���d�j�j���8�D�D�E�E�E�$�g�.���=�=� '��~�&�&�F�
��4�:�:�d�D�!�!�:�4�:�v�#6�7�7�7�M�M�M���=�=� '��~�&�&�F�
��4�:�:�d�D�!�!�:�4�:�v�#6�7�7�7�
��4�:�:�d�D�"�%�%�r�*�*�*�
��4�:�:�d�E�3�'�'����� 3�*5� *5� 6� 6� 6�
��4�:�:�c�4��'�'����L�)A�)A�B�B�B�
���
%�
%� -� -��7�<�D��B�t�y���.�.�.�0H�0H�0H�0H�4�0H�0H�0H�I�I�I��B�t�y���d�B���4�8�8�8�(�(�(�(�4�(�(�(�
*�
*�
*��B�t�y���d�C���D�9�9�9�(�(�(�(�4�(�(�(�
*�
*�
*��B�t�y���b�i��.�.�$�?�?�?���b�i��$�$�%�(K�(K�(K�(K�d�(K�(K�(K�K�
M�
M�
M��B�t�y���b�i��r�2�2�d�C�C�C���b�i��$�$�%�(K�(K�(K�(K�d�(K�(K�(K�K�
M�
M�
M��B�t�y���b�i��s�3�3�t�D�D�D�3�3�3�3�d�3�3�3�
5�
5�
5��B�t�y���d�6�*�*�d�;�;�;���e�V�$�$�%�
'�
'�
'��B�t�y��T�2�2�2�B�7�7�7��d�3��t�,�,�d�3�F��}�}�
/��4�4���-�-�.�.���B�t�y���d�D�)�)�T�:�:�:�F�C�C�C�N�N�N�C��B�t�y���d�C�C�C�+�+�+�+�$�s�(�+�+�+�
-�
-�
-�- -� -� -� -� -� -� -� -� -� -� -� -���� -� -� -� -� -� -s �(I<S1�1S5�8S5c � �� d}t j � | j d� � }t j j |gdg|z �R � }t j |� � t j j |gdg|z �R � ��fd�t d� � D � � }|D ]%}| � t |� � |� � �&t j � |dd� � ��fd�t d� � D � � }|}t |� � D ]J}t j � |d� � }|D ]%}| � t |� � |� � �&�Kd S ) N� �deep�drr c �<