� ��^i���Z�ddlmZmZmZddlmZddlmZddlm Z Gd�de ��Z dS) �)�absolute_import�division�unicode_literals)� text_type)� bisect_left�)�Triec�:�eZdZd�Zd�Zd�Zd�Zd�Zd d�Zd�Z dS) r c��td�|���D����std���||_t |�����|_d|_dt|��f|_dS)Nc3�@K�|]}t|t��V��dS�N)� isinstancer)�.0�xs ��/builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_vendor/html5lib/_trie/py.py� z Trie.__init__.. s,����A�A��:�a��+�+�A�A�A�A�A�A�zAll keys must be strings�r) �all�keys� TypeError�_data�sorted�_keys� _cachestr�len� _cachepoints)�self�datas r�__init__z Trie.__init__ su���A�A�T�Y�Y�[�[�A�A�A�A�A� 8��6�7�7� 7��� ��D�I�I�K�K�(�(�� ������D� � �N����rc��||jvSr �r�r�keys r� __contains__zTrie.__contains__s���d�j� � rc�*�t|j��Sr )rr�rs r�__len__z Trie.__len__s���4�:���rc�*�t|j��Sr )�iterrr's r�__iter__z Trie.__iter__s���D�J���rc��|j|Sr r"r#s r� __getitem__zTrie.__getitem__s���z�#��rNc�0�|� |dks|jst|j��S|�|j��r$|j\}}t |j|||��x}}nt |j|��x}}t��}|t |j��kr|S|j|�|��rE|�|j|��|dz }|j|�|���E||_||f|_|S)Nrr)r�set� startswithrrrr�add)r�prefix�lo�hi�start�irs rrz Trie.keyss�� �>�V�r�\�\���\��t�z�?�?� "� � � �T�^� ,� ,� 8��&�F�B��#�D�J���B�?�?� ?�E�A�A�#�D�J��7�7� 7�E�A��u�u�� �C�� �O�O� #� #��K��j��m�&�&�v�.�.� � �H�H�T�Z��]� #� #� #� ��F�A��j��m�&�&�v�.�.� � ���"�A�J���� rc�.�||jvrdS|�|j��r"|j\}}t |j|||��}nt |j|��}|t |j��krdS|j|�|��S)NTF)rr0rrrrr)rr2r3r4r6s r�has_keys_with_prefixzTrie.has_keys_with_prefix6s��� �T�Z� � ��4� � � �T�^� ,� ,� 0��&�F�B���D�J���B�7�7�A�A��D�J��/�/�A� ��D�J��� � ��5��z�!�}�'�'��/�/�/rr ) �__name__� __module__� __qualname__r r%r(r+r-rr8�rrr r s�������+�+�+�!�!�!���� � � ��������. 0� 0� 0� 0� 0rr N) � __future__rrr�pip._vendor.sixr�bisectr�_baser �ABCTrier<rr�rBs���B�B�B�B�B�B�B�B�B�B�%�%�%�%�%�%�������"�"�"�"�"�"�:0�:0�:0�:0�:0�7�:0�:0�:0�:0�:0r