U
    [e                     @   s   d dl Z zed W n$ ek
r8   dddgZdgZY n2X dddddd	d
ddddddddddgZdddgZee Zdd Zdd Zdd Zdd Z	dd  Z
e d!e
 dS )"    N   )   i  )i   i  )i  i  )i   i  )r   i )i   i )i   i )i   i )i   i )i   i )i   i )i   i )i  	 i	 )i  
 i
 )i   i )i   i )i   i )i  i )i   i )i   i c                 C   s0   t D ]&\}}||   kr |krn q dS qdS )NTF)_ESCAPE_RANGES)octetstartend r   R/var/www/html/services/stratfitenv/lib/python3.8/site-packages/openid/codecutil.py_in_escape_range.   s    r
   c                 C   s    t | }d|  kodkS   S )Ni   i  ord	characterZ
char_valuer   r   r	   _starts_surrogate_pair5   s    r   c                 C   s    t | }d|  kodkS   S )Ni   i  r   r   r   r   r	   _ends_surrogate_pair:   s    r   c                 C   s   g }t | }|D ]z}t|}t|rHt|dD ]}|d|  q2qt|r|t|}|| dD ]}|d|  qfq|t| q|S )Nzutf-8z%%%X)iterr   r
   chrencodeappendr   next)chunkreplacementsZ
chunk_iterr   	codepointcharZnext_characterr   r   r	   _pct_encoded_replacements?   s    r   c                 C   s*   | j | j| j }t|}d|| jfS )z
    Encoding error handler that does percent-escaping of Unicode, to be used
    with codecs.register_error
    TODO: replace use of this with urllib.parse.quote as appropriate
     )objectr   r   r   join)errr   r   r   r   r	   _pct_escape_handlerP   s    r   Zoid_percent_escape)codecsr   
ValueErrorZUCSCHARZIPRIVATEr   r
   r   r   r   r   register_errorr   r   r   r	   <module>   sL   
