o
    Rh*
                     @  sx   U d dl mZ d dlmZ d dlmZmZmZ d dlm	Z
 ee ZdZdZi Zded< dddZefdddddZdS )    )annotations)Sequence)ascii_lettersdigits	hexdigits)quotez;/?:@&=+$,-_.!~*'()#z	-_.!~*'()zdict[str, list[str]]encode_cacheexcludestrreturnSequence[str]c                 C  s   | t v rt |  S g }|t | < tdD ]%}t|}|tv r"|| q|ddt|dd    dd    qtt| D ]}| | |t| | < q>|S )N   %0   )	r   rangechrASCII_LETTERS_AND_DIGITSappendhexupperlenord)r	   cacheich r   O/home/air/sanwanet/backup_V2/venv/lib/python3.10/site-packages/mdurl/_encode.pyget_encode_cache   s   ,r   T)keep_escapedstringr    boolc          	      C  sZ  d}t |}t| }d}||k rt| | }|rF|dkrF|d |k rFtdd | |d |d  D rF|| ||d  7 }|d7 }|d7 }q|d	k rU||| 7 }|d7 }q|d
kr|dkr|d
kr|dkr|d |k rt| |d  }|dkr|dkr|t| | | |d   7 }|d7 }|d7 }q|d7 }|d7 }q|t| | 7 }|d7 }||k s|S )N r   %   r   c                 s  s    | ]}|t v V  qd S )N)r   ).0cr   r   r   	<genexpr>;   s    zencode.<locals>.<genexpr>      r   i   i  i  i   z	%EF%BF%BD)r   r   r   allencode_uri_component)	r!   r	   r    resultr   lr   code	next_coder   r   r   encode-   s>   "r0   N)r	   r
   r   r   )r!   r
   r	   r
   r    r"   r   r
   )
__future__r   collections.abcr   r!   r   r   r   urllib.parser   r+   r   ENCODE_DEFAULT_CHARSENCODE_COMPONENT_CHARSr   __annotations__r   r0   r   r   r   r   <module>   s    
