ÿØÿà 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                     @   s6   d dl Z e jZG dd de jZG dd de jZdS )    Nc                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )

BaseStreamc                 C   s   | j rtdd S )NzI/O operation on closed file)closed
ValueErrorself r   $/usr/lib64/python3.8/_compression.py_check_not_closed   s    zBaseStream._check_not_closedc                 C   s   |   stdd S )NzFile not open for reading)readableioUnsupportedOperationr   r   r   r   _check_can_read   s    zBaseStream._check_can_readc                 C   s   |   stdd S )NzFile not open for writing)writabler   r   r   r   r   r   _check_can_write   s    zBaseStream._check_can_writec                 C   s(   |   std|  s$tdd S )Nz3Seeking is only supported on files open for readingz3The underlying file object does not support seeking)r
   r   r   seekabler   r   r   r   _check_can_seek   s    
zBaseStream._check_can_seekN)__name__
__module____qualname__r	   r   r   r   r   r   r   r   r   	   s   r   c                       sf   e Zd Zdd ZdddZ fddZdd	 Zd
d ZdddZdd Z	e
jfddZdd Z  ZS )DecompressReaderc                 C   s   dS )NTr   r   r   r   r   r
   $   s    zDecompressReader.readabler   c                 K   s>   || _ d| _d| _d| _|| _|| _| jf | j| _|| _d S )NFr   )_fp_eof_pos_size_decomp_factory_decomp_args_decompressor_trailing_error)r   fpZdecomp_factoryZtrailing_errorZdecomp_argsr   r   r   __init__'   s    zDecompressReader.__init__c                    s   d | _ t  S N)r   supercloser   	__class__r   r   r#   ;   s    zDecompressReader.closec                 C   s
   | j  S r!   )r   r   r   r   r   r   r   ?   s    zDecompressReader.seekablec              
   C   sP   t |:}|d$}| t|}||d t|< W 5 Q R X W 5 Q R X t|S )NB)
memoryviewcastreadlen)r   bZviewZ	byte_viewdatar   r   r   readintoB   s    $zDecompressReader.readintor   c                 C   s   |dk r|   S |r| jrdS d }| jjr| jjp<| jt}|sDq| jf | j	| _z| j
||}W q | jk
r   Y qY qX n4| jjr| jt}|stdnd}| j
||}|r"qq"|sd| _| j| _dS |  jt|7  _|S )Nr       zACompressed file ended before the end-of-stream marker was reachedT)readallr   r   eofZunused_datar   r)   BUFFER_SIZEr   r   
decompressr   Zneeds_inputEOFErrorr   r   r*   )r   sizer,   Zrawblockr   r   r   r)   H   s@    


zDecompressReader.readc                 C   s,   | j d d| _d| _| jf | j| _d S )Nr   F)r   seekr   r   r   r   r   r   r   r   r   _rewindr   s    zDecompressReader._rewindc                 C   s   |t jkrnR|t jkr"| j| }n<|t jkrP| jdk rD| t jrDq6| j| }ntd	||| jk rr| 
  n
|| j8 }|dkr| tt j|}|sq|t|8 }q|| jS )Nr   zInvalid value for whence: {})r   SEEK_SETSEEK_CURr   SEEK_ENDr   r)   DEFAULT_BUFFER_SIZEr   formatr6   minr*   )r   offsetwhencer,   r   r   r   r5   x   s&    






zDecompressReader.seekc                 C   s   | j S r!   )r   r   r   r   r   tell   s    zDecompressReader.tell)r   )r   )r   r   r   r
   r    r#   r   r-   r)   r6   r   r7   r5   r?   __classcell__r   r   r$   r   r   !   s   

*r   )r   r:   r1   BufferedIOBaser   	RawIOBaser   r   r   r   r   <module>   s   