ž †2{Yïc@sfddlmZmZmZddlmZddlmZddlm Z Gdd„de ƒZ dS( i(uabsolute_importudivisionuunicode_literals(u text_type(u bisect_lefti(uTriecBsk|EeZdZdd„Zdd„Zdd„Zdd„Zd d „Zdd d „Z d d„Z dS(uTriecCsntdd„|jƒDƒƒs.tdƒ‚n||_t|jƒƒ|_d|_dt|ƒf|_dS(Ncss|]}t|tƒVqdS(N(u isinstanceu text_type(u.0ux((u5/tmp/pip-bsqfwp-build/pip/_vendor/html5lib/trie/py.pyu su Trie.__init__..uAll keys must be stringsui( uallukeysu TypeErroru_datausortedu_keysu _cachestrulenu _cachepoints(uselfudata((u5/tmp/pip-bsqfwp-build/pip/_vendor/html5lib/trie/py.pyu__init__ s   u Trie.__init__cCs ||jkS(N(u_data(uselfukey((u5/tmp/pip-bsqfwp-build/pip/_vendor/html5lib/trie/py.pyu __contains__suTrie.__contains__cCs t|jƒS(N(ulenu_data(uself((u5/tmp/pip-bsqfwp-build/pip/_vendor/html5lib/trie/py.pyu__len__su Trie.__len__cCs t|jƒS(N(uiteru_data(uself((u5/tmp/pip-bsqfwp-build/pip/_vendor/html5lib/trie/py.pyu__iter__su Trie.__iter__cCs |j|S(N(u_data(uselfukey((u5/tmp/pip-bsqfwp-build/pip/_vendor/html5lib/trie/py.pyu __getitem__suTrie.__getitem__cCsþ|dks"|dks"|j r/t|jƒS|j|jƒro|j\}}t|j|||ƒ}}nt|j|ƒ}}tƒ}|t|jƒkr§|Sx8|j|j|ƒrá|j|j|ƒ|d7}qªW||_||f|_|S(Nui( uNoneu_keysusetu startswithu _cachestru _cachepointsu bisect_leftulenuadd(uselfuprefixulouhiustartuiukeys((u5/tmp/pip-bsqfwp-build/pip/_vendor/html5lib/trie/py.pyukeyss"   u Trie.keyscCsŽ||jkrdS|j|jƒrO|j\}}t|j|||ƒ}nt|j|ƒ}|t|jƒkrzdS|j|j|ƒS(NTF( u_datauTrueu startswithu _cachestru _cachepointsu bisect_leftu_keysulenuFalse(uselfuprefixulouhiui((u5/tmp/pip-bsqfwp-build/pip/_vendor/html5lib/trie/py.pyuhas_keys_with_prefix6suTrie.has_keys_with_prefixN( u__name__u __module__u __qualname__u__init__u __contains__u__len__u__iter__u __getitem__uNoneukeysuhas_keys_with_prefix(u __locals__((u5/tmp/pip-bsqfwp-build/pip/_vendor/html5lib/trie/py.pyuTrie s    uTrieN( u __future__uabsolute_importudivisionuunicode_literalsupip._vendor.sixu text_typeubisectu bisect_leftu_baseuTrieuABCTrie(((u5/tmp/pip-bsqfwp-build/pip/_vendor/html5lib/trie/py.pyus