Ë
    ¤2Úiã  ã                   óR   — d dl mZmZmZ d dlmZ d dlmZ ddlm	Z
  G d„ de
«      Z	y)	é    )Úabsolute_importÚdivisionÚunicode_literals)Ú	text_type)Úbisect_lefté   )ÚTriec                   ó8   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd	d„Zd„ Z	y)
r	   c                 óÖ   — t        d„ |j                  «       D «       «      st        d«      ‚|| _        t	        |j                  «       «      | _        d| _        dt        |«      f| _        y )Nc              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­w©N)Ú
isinstancer   )Ú.0Úxs     úH/var/www/html/acx/venv/lib/python3.12/site-packages/html5lib/_trie/py.pyú	<genexpr>z Trie.__init__.<locals>.<genexpr>   s   è ø€ ÒA°”:˜a¤×+ÑAùs   ‚zAll keys must be stringsÚ r   )	ÚallÚkeysÚ	TypeErrorÚ_dataÚsortedÚ_keysÚ	_cachestrÚlenÚ_cachepoints)ÚselfÚdatas     r   Ú__init__zTrie.__init__
   sR   € ÜÑA°T·Y±Y³[ÔAÔAÜÐ6Ó7Ð7àˆŒ
Ü˜DŸI™I›KÓ(ˆŒ
ØˆŒØ¤ D£	˜NˆÕó    c                 ó   — || j                   v S r   ©r   ©r   Úkeys     r   Ú__contains__zTrie.__contains__   s   € Ø�d—j‘jÐ Ð r    c                 ó,   — t        | j                  «      S r   )r   r   ©r   s    r   Ú__len__zTrie.__len__   s   € Ü�4—:‘:‹Ðr    c                 ó,   — t        | j                  «      S r   )Úiterr   r'   s    r   Ú__iter__zTrie.__iter__   s   € Ü�D—J‘JÓÐr    c                 ó    — | j                   |   S r   r"   r#   s     r   Ú__getitem__zTrie.__getitem__   s   € Ø�z‰z˜#‰Ðr    Nc                 ó8  — |�|dk(  s| j                   st        | j                   «      S |j                  | j                  «      r*| j                  \  }}t        | j                   |||«      x}}nt        | j                   |«      x}}t        «       }|t        | j                   «      k(  r|S | j                   |   j                  |«      rB|j                  | j                   |   «       |dz  }| j                   |   j                  |«      rŒB|| _        ||f| _        |S )Nr   r   )r   ÚsetÚ
startswithr   r   r   r   Úadd)r   ÚprefixÚloÚhiÚstartÚir   s          r   r   z	Trie.keys   sñ   € Øˆ>˜V rš\°·²Ü�t—z‘z“?Ð"à×Ñ˜TŸ^™^Ô,Ø×&Ñ&‰FˆB�Ü# D§J¡J°¸¸BÓ?Ð?ˆE‘Aä# D§J¡J°Ó7Ð7ˆE�Aä‹uˆØ”C˜Ÿ
™
“OÒ#ØˆKà�j‰j˜‰m×&Ñ& vÔ.Ø�H‰H�T—Z‘Z ‘]Ô#Ø�‰FˆAð �j‰j˜‰m×&Ñ& vÕ.ð  ˆŒØ" A˜JˆÔàˆr    c                 ó@  — || j                   v ry|j                  | j                  «      r(| j                  \  }}t	        | j
                  |||«      }nt	        | j
                  |«      }|t        | j
                  «      k(  ry| j
                  |   j                  |«      S )NTF)r   r0   r   r   r   r   r   )r   r2   r3   r4   r6   s        r   Úhas_keys_with_prefixzTrie.has_keys_with_prefix6   s‚   € Ø�T—Z‘ZÑØà×Ñ˜TŸ^™^Ô,Ø×&Ñ&‰FˆB�Ü˜DŸJ™J¨°°BÓ7‰Aä˜DŸJ™J¨Ó/ˆAà”�D—J‘J“ÒØà�z‰z˜!‰}×'Ñ'¨Ó/Ð/r    r   )
Ú__name__Ú
__module__Ú__qualname__r   r%   r(   r+   r-   r   r8   © r    r   r	   r	   	   s%   „ ò+ò!òò òóó.0r    r	   N)Ú
__future__r   r   r   Úsixr   Úbisectr   Ú_baser	   ÚABCTrier<   r    r   ú<module>rB      s    ðß BÑ BÝ å å "ô:0ˆ7õ :0r    