ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     U
    e5d                     @   s   d Z ddlZdd Zdd Zdd Zd	d
 Zdd ZdZdd Zdd Z	dd Z
dd Zdd Zdd Zdd ZG dd dejZG dd dejZG d d! d!ejZG d"d# d#eejZG d$d% d%eejZd&d' ZdS )(uY    Codec for the Punicode encoding, as specified in RFC 3492

Written by Martin v. Löwis.
    Nc                 C   sP   t  }t }| D ]*}t|dk r0|t| q|| qt|}t||fS )z 3.1 Basic code point segregation   )	bytearraysetordappendaddsortedbytes)strbaseextendedc r   */usr/lib64/python3.8/encodings/punycode.py	segregate
   s    r   c                 C   s&   d}| D ]}t ||k r|d7 }q|S )z@Return the length of str, considering only characters below max.r      )r   )r
   maxresr   r   r   r   selective_len   s
    
r   c                 C   sN   t | }|d7 }||krdS | | }||kr8|d |fS ||k r|d7 }qdS )a  Return a pair (index, pos), indicating the next occurrence of
    char in str. index is the position of the character considering
    only ordinals up to and including char, and pos is the position in
    the full string. index/pos is the starting position in the full
    string.r   )r   N)len)r
   charindexposlr   r   r   r   selective_find   s    r   c                 C   s   d}g }d}|D ]r}d }}t |}t| |}	|	d ||  }
t| |||\}}|dkrZq~|
|| 7 }
||
d  |}d}
q>|}q|S )3.2 Insertion unsort codingr   r   r   r   )r   r   r   r   )r
   r   ZoldcharresultZoldindexr   r   r   r   Zcurlendeltar   r   r   insertion_unsort0   s"    
r   c                 C   s,   d| d  | }|dk rdS |dkr(dS |S )N$   r      r   )jbiasr   r   r   r   TF   s      r$   s$   abcdefghijklmnopqrstuvwxyz0123456789c                 C   sn   t  }d}t||}| |k r2|t|   t|S |t|| | d|     | | d|  } |d7 }q
dS )(3.3 Generalized variable-length integersr   r    r   N)r   r$   r   digitsr	   )Nr#   r   r"   tr   r   r   generate_generalized_integerN   s    
r)   c                 C   sX   |r| d } n| d } | | | 7 } d}| dkr@| d } |d7 }q&|d|  | d   }|S )Ni     r   i  #   r    &   r   )r   firstnumcharsZ	divisionsr#   r   r   r   adapt[   s    

r/   c                 C   sP   t  }d}t|D ]4\}}t||}|| t||dk| | d }qt|S )z3.4 Bias adaptationH   r   r   )r   	enumerater)   extendr/   r	   )Zbaselendeltasr   r#   Zpointsr   sr   r   r   generate_integersj   s    

r5   c                 C   s8   t | \}}t| |}tt||}|r4|d | S |S )N   -)r   r   r5   r   )textr   r   r3   r   r   r   punycode_encodeu   s    
r8   c           
      C   s   d}d}d}zt | | }W n0 tk
rL   |dkr<td|d df Y S X |d7 }d|  krjdkrxn n
|d }nHd|  krd	krn n
|d
 }n&|dkrtd| |d   n|dfS t||}	||| 7 }||	k r||fS |d|	  }|d7 }qdS )r%   r   r   strictzincomplete punicode stringNA   Z   0   9      z Invalid extended code point '%s'r    )r   
IndexErrorUnicodeErrorr$   )
r   extposr#   errorsr   wr"   r   digitr(   r   r   r   decode_generalized_number   s2    



rE   c           	      C   s   d}d}d}d}|t |k rt||||\}}|dkr:| S ||d 7 }||t | d  7 }|dkr~|dkrvtd	| td
}|t | d  }| d| t| | |d  } t||dkt | }|}q| S )r   r   r   r0   r   Nr   i r9   zInvalid character U+%x?)r   rE   r@   r   chrr/   )	r   r   rB   r   r   r#   rA   Znewposr   r   r   r   insertion_sort   s,      rH   c                 C   s   t | tr| d} t | tr&t| } | d}|dkrLd}t| d }n.t| d | d|}t| |d d  d }t|||S )Nasciir6   r    r   )
isinstancer
   encode
memoryviewr	   rfindupperrH   )r7   rB   r   r   r   r   r   r   punycode_decode   s    



rP   c                   @   s    e Zd ZdddZdddZdS )	Codecr9   c                 C   s   t |}|t|fS N)r8   r   selfinputrB   r   r   r   r   rL      s    zCodec.encodec                 C   s*   |dkrt d| t||}|t|fS N)r9   replaceignorezUnsupported error handling )r@   rP   r   rS   r   r   r   decode   s    
zCodec.decodeN)r9   )r9   )__name__
__module____qualname__rL   rY   r   r   r   r   rQ      s   
rQ   c                   @   s   e Zd ZdddZdS )IncrementalEncoderFc                 C   s   t |S rR   )r8   rT   rU   finalr   r   r   rL      s    zIncrementalEncoder.encodeN)F)rZ   r[   r\   rL   r   r   r   r   r]      s   r]   c                   @   s   e Zd ZdddZdS )IncrementalDecoderFc                 C   s$   | j dkrtd| j  t|| j S rV   )rB   r@   rP   r^   r   r   r   rY      s    
zIncrementalDecoder.decodeN)F)rZ   r[   r\   rY   r   r   r   r   r`      s   r`   c                   @   s   e Zd ZdS )StreamWriterNrZ   r[   r\   r   r   r   r   ra      s   ra   c                   @   s   e Zd ZdS )StreamReaderNrb   r   r   r   r   rc      s   rc   c                	   C   s    t jdt jt jttttdS )NZpunycode)namerL   rY   incrementalencoderincrementaldecoderstreamwriterstreamreader)	codecs	CodecInforQ   rL   rY   r]   r`   ra   rc   r   r   r   r   getregentry   s    rk   )__doc__ri   r   r   r   r   r$   r&   r)   r/   r5   r8   rE   rH   rP   rQ   r]   r`   ra   rc   rk   r   r   r   r   <module>   s(   
