o
    HXh`                    @   s  d dl Z d dlZd dlmZmZmZ d dlZd dlZd dlZd dl	Z	d dl
Z
d dlmZ d dlZd dlmZmZ d dlmZ d dlmZmZ edZd dlmZmZmZmZ G d	d
 d
ejZG dd dejZG dd dZG dd dejZG dd dejZ G dd dejZ!dZ"dZ#dZ$dZ%ej&ddgZ'dZ(ej)ddej&ej*ej+B dgZ,dZ-ej.dd d!ej&igZ/d"Z0ej)d#dej1d$d ej&d#dd%gZ2d&Z3d'Z4e5d(kre6  dS dS ))    N)BytesIOUnsupportedOperationDEFAULT_BUFFER_SIZE)support)_4G
bigmemtest)import_module)TESTFNunlinklzma)LZMACompressorLZMADecompressor	LZMAErrorLZMAFilec                   @   s@  e Zd Zdd Zdd Zdd Zdd ZdGd
dZdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Zej e!e"d: d;d<d=d> Z#ej e!e"d: d?d<d@dA Z$dBdC Z%ej&dDdE Z'dFS )HCompressorDecompressorTestCasec                 C   sL  |  ttg  | j ttdd | j ttdd | j ttdd | j ttdd | j tttjd |  t td	d
tjigd W d    n1 sJw   Y  |  ttd | j ttdd |  t ttjdd W d    n1 suw   Y  |  t ttjdd W d    n1 sw   Y  | j ttt	d |  t ttj
t	d W d    n1 sw   Y  |  t ttjt	d W d    n1 sw   Y  t }|  t|j |  t|jdd |  t|jd | }|  t|jd |  t|j t }|  t|j |  t|jdd || |  t|jd d S )Ng@format checkZasdfpreset   filters   idr   r    s   qwmemlimitZzzz   r   r      foo   bars   blahs   quux)assertRaises	TypeErrorr   
ValueErrorr   FORMAT_AUTOFILTER_LZMA2r   
FORMAT_RAWFILTERS_RAW_1	FORMAT_XZFORMAT_ALONEcompressflush
decompressEOFError)selflzcemptylzdr   r   8/opt/python-3.10.19/usr/lib/python3.10/test/test_lzma.pytest_simple_bad_args   sH   
z3CompressorDecompressorTestCase.test_simple_bad_argsc                 C   s   | j ttdgd | j ttddigd | j ttddigd |  t ttjddgd W d    n1 s9w   Y  |  t ttjddgd W d    n1 sXw   Y  |  t ttjddgd W d    d S 1 sxw   Y  d S )	N   wobsiter   xyzzyr   r   ́ r   r   foo)r%   r&   r   r'   r   r)   FILTER_DELTA
FILTER_X86r2   r   r   r6   test_bad_filter_specB   s   "z3CompressorDecompressorTestCase.test_bad_filter_specc                 C   s$   t  }|t | t|jd d S )Ns   nyan)r   r0   COMPRESSED_XZr%   r1   r2   r5   r   r   r6   test_decompressor_after_eofM   s   
z:CompressorDecompressorTestCase.test_decompressor_after_eofc                 C   sZ   t dd}| t|jt t tjdd}| t|jt t tjdd}| t|jt d S )N   r   )	r   r%   r   r0   rA   r   r,   r-   COMPRESSED_ALONErB   r   r   r6   test_decompressor_memlimitR   s   
z9CompressorDecompressorTestCase.test_decompressor_memlimit    c                 C   sN   |  |j ||}| |t | |j| | |j | |j| d S N)assertFalseeofr0   assertEqualINPUTr   
assertTrueunused_data)r2   r5   datar   rN   outr   r   r6   _test_decompressor^   s   
z1CompressorDecompressorTestCase._test_decompressorc                 C   s0   t  }| |ttj t  }| |ttj d S rH   )r   rQ   rA   r   CHECK_CRC64rE   
CHECK_NONErB   r   r   r6   test_decompressor_autof   s   z5CompressorDecompressorTestCase.test_decompressor_autoc                 C      t tj}| |ttj d S rH   )r   r   r,   rQ   rA   rR   rB   r   r   r6   test_decompressor_xzm      
z3CompressorDecompressorTestCase.test_decompressor_xzc                 C   rU   rH   )r   r   r-   rQ   rE   rS   rB   r   r   r6   test_decompressor_aloneq   rW   z6CompressorDecompressorTestCase.test_decompressor_alonec                 C   "   t tjtd}| |ttj d S Nr   )r   r   r*   r+   rQ   COMPRESSED_RAW_1rS   rB   r   r   r6   test_decompressor_raw_1u      z6CompressorDecompressorTestCase.test_decompressor_raw_1c                 C   rY   rZ   )r   r   r*   FILTERS_RAW_2rQ   COMPRESSED_RAW_2rS   rB   r   r   r6   test_decompressor_raw_2y   r]   z6CompressorDecompressorTestCase.test_decompressor_raw_2c                 C   rY   rZ   )r   r   r*   FILTERS_RAW_3rQ   COMPRESSED_RAW_3rS   rB   r   r   r6   test_decompressor_raw_3}   r]   z6CompressorDecompressorTestCase.test_decompressor_raw_3c                 C   rY   rZ   )r   r   r*   FILTERS_RAW_4rQ   COMPRESSED_RAW_4rS   rB   r   r   r6   test_decompressor_raw_4   r]   z6CompressorDecompressorTestCase.test_decompressor_raw_4c              	   C   s   t  }g }tdttdD ]}| |j ||t||d   qd|}| 	|t
 | 	|jtj | |j | 	|jd d S Nr   
   rG   r   rangelenrA   rI   rJ   appendr0   joinrK   rL   r   r   rR   rM   rN   r2   r5   rP   ir   r   r6   test_decompressor_chunks   s   
z7CompressorDecompressorTestCase.test_decompressor_chunksc              	   C   s   t  }g }tdttdD ].}| |j ||d ||d ||d ||t||d   qd|}| 	|t
 | 	|jtj | |j | 	|jd d S rg   ri   rn   r   r   r6   test_decompressor_chunks_empty   s   
z=CompressorDecompressorTestCase.test_decompressor_chunks_emptyc                 C   s&  t  }d}g }ttd }||jtd | |d | |j | t|d | ||jd|d | |j | t|d | ||jt|d  |d | t|d | |j	sw||jd|d | t|d | |j	r`d
|}| |t | |jtj | |jd d S )Nd      
max_lengthrG   )r   rk   rA   rl   r0   rI   needs_inputrK   assertLessEqualrJ   rm   rL   r   r   rR   rN   )r2   r5   ru   rP   Zlen_r   r   r6    test_decompressor_chunks_maxsize   s0   
z?CompressorDecompressorTestCase.test_decompressor_chunks_maxsizec                 C   s   t  }g }| |jtd d ddd ||dd ||tdd d ||tdd   | d|t d S )Nrr   r   rt   rG   rs   i      r   rK   r0   rA   rl   rm   rL   r2   r5   rP   r   r   r6   test_decompressor_inputbuf_1   s   z;CompressorDecompressorTestCase.test_decompressor_inputbuf_1c                 C   s   t  }g }| |jtd d ddd ||d ||tdd d ||tdd d ||tdd   | d|t d S )N   r   rt   rG   i  rs   ,  r|   r}   r   r   r6   test_decompressor_inputbuf_2   s   z;CompressorDecompressorTestCase.test_decompressor_inputbuf_2c                 C   sl   t  }g }||td d d ||tdd d ||tdd   | d|t d S )Nr      r   rG   )r   rl   r0   rA   rK   rm   rL   r}   r   r   r6   test_decompressor_inputbuf_3   s   z;CompressorDecompressorTestCase.test_decompressor_inputbuf_3c                 C   s&   t  }d}| j|t| tj|d d S )Ns	   fooblibarrN   )r   rQ   rA   r   rR   )r2   r5   extrar   r   r6   test_decompressor_unused_data   s
   
z<CompressorDecompressorTestCase.test_decompressor_unused_datac                 C   sl   t  }| t|jt t tj}| t|jt t tj}| t|jt	 t tj
td}| t|jt	 d S rZ   )r   r%   r   r0   r[   r   r,   rE   r-   rA   r*   r+   rB   r   r   r6   test_decompressor_bad_input  s   

z:CompressorDecompressorTestCase.test_decompressor_bad_inputc                 C   s*   t  }| t|jt | t|jt d S rH   )r   r%   r   r0   r[   rB   r   r   r6   test_decompressor_bug_28275  s   z:CompressorDecompressorTestCase.test_decompressor_bug_28275c                 C   s2   t  }|t|  }t }| ||tj d S rH   )r   r.   rL   r/   r   rQ   r   rR   r2   r3   cdatar5   r   r   r6   test_roundtrip_xz  s   z0CompressorDecompressorTestCase.test_roundtrip_xzc                 C   s6   t tj}|t|  }t }| ||tj d S rH   )	r   r   r-   r.   rL   r/   r   rQ   rS   r   r   r   r6   test_roundtrip_alone  s   
z3CompressorDecompressorTestCase.test_roundtrip_alonec                 C   sB   t tjtd}|t|  }ttjtd}| ||tj	 d S rZ   
r   r   r*   rd   r.   rL   r/   r   rQ   rS   r   r   r   r6   test_roundtrip_raw#  s   z1CompressorDecompressorTestCase.test_roundtrip_rawc                 C   sp   t tjtd}|t}||d7 }||d7 }||d7 }|| 7 }ttjtd}| ||tj	 d S )Nr   rG   r   r   r   r   r6   test_roundtrip_raw_empty)  s   
z7CompressorDecompressorTestCase.test_roundtrip_raw_emptyc              	   C   sn   t  }g }tdttdD ]}||t||d   q||  d|}t }| 	||t
j d S rg   r   rj   rk   rL   rl   r.   r/   rm   r   rQ   r   rR   r2   r3   r   ro   r5   r   r   r6   test_roundtrip_chunks3  s   
z4CompressorDecompressorTestCase.test_roundtrip_chunksc              	   C   s   t  }g }tdttdD ](}||t||d   ||d ||d ||d q||  d|}t }| 	||t
j d S rg   r   r   r   r   r6   test_roundtrip_empty_chunks=  s   
z:CompressorDecompressorTestCase.test_roundtrip_empty_chunksc                 C   s"   t  }| j|tt tjtd d S )Nr   )r   rQ   rA   rE   r   rR   rB   r   r   r6   test_decompressor_multistreamL  s   
z<CompressorDecompressorTestCase.test_decompressor_multistreamrr   rs   )sizeZmemusec                 C   s^   t  }|d| |  }t|}z| t|| | t|dd W d }d S d }w )N   xr   )r   r.   r/   r   r0   rK   rk   strip)r2   r   r3   r   ddatar   r   r6   test_compressor_bigmemS  s   
z5CompressorDecompressorTestCase.test_compressor_bigmemr   c                 C   sf   t  }d}t|}z!||| d  }t|}||}| || W d  } }}d S d  } }}w )Ni      )r   random	randbytesr   r.   r0   rK   )r2   r   r5   	blocksizeblockinputr   r   r   r   r6   test_decompressor_bigmem_  s   


z7CompressorDecompressorTestCase.test_decompressor_bigmemc              	   C   s   t tjd D ]:}| t tt | W d    n1 s w   Y  | t tt | W d    n1 s<w   Y  qd S Nr   )rj   pickleHIGHEST_PROTOCOLr%   r&   dumpsr   r   )r2   protor   r   r6   test_pickleo  s   z*CompressorDecompressorTestCase.test_picklec                 C   sH   t td}t }| }tdD ]}|  q| j| | ddd d S )Ngettotalrefcountrr   r   rh   )Zdelta)r   Zget_attributesysr   rj   __init__ZassertAlmostEqual)r2   r   r5   Zrefs_beforero   r   r   r6   &test_refleaks_in_decompressor___init__v  s   
zECompressorDecompressorTestCase.test_refleaks_in_decompressor___init__NrG   )(__name__
__module____qualname__r7   r@   rC   rF   rQ   rT   rV   rX   r\   r`   rc   rf   rp   rq   ry   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   Zskip_if_pgo_taskr   r   r   r   r   Zrefcount_testr   r   r   r   r6   r      sL    (
 	


r   c                   @   sT   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd ZdS )"CompressDecompressFunctionTestCasec                 C   s&  |  ttj |  ttjg  | j ttjddd | j ttjddd | j ttjddd | j ttjddd	 |  t tjdd
dtjigd W d    n1 sSw   Y  |  ttj |  ttjg  | j ttjddd | j ttjddd |  t tjdtji d W d    n1 sw   Y  |  t tjdtjdd W d    n1 sw   Y  |  t tjdtd	 W d    n1 sw   Y  |  t tjdtj	td W d    n1 sw   Y  |  t tjdtj
td W d    d S 1 sw   Y  d S )NrG   xzr   Znoner   Zblahr   rD   r   r   r   r   r   g   1Ar   r"   r!   r   r    )r%   r&   r   r.   r'   r)   r0   r*   r+   r,   r-   r?   r   r   r6   test_bad_args  s<   $z0CompressDecompressFunctionTestCase.test_bad_argsc                 C   s   |  t tjtdd W d    n1 sw   Y  |  t tjttjdd W d    n1 s5w   Y  |  t tjttjdd W d    d S 1 sTw   Y  d S )NrD   r   r   )r%   r   r   r0   rA   r,   rE   r-   r?   r   r   r6   test_decompress_memlimit  s   "z;CompressDecompressFunctionTestCase.test_decompress_memlimitc                 C   s   t t}| |t t t}| |t t tt j}| |t t tt j}| |t t jtt j	t
d}| |t t jtt j	td}| |t t jtt j	td}| |t t jtt j	td}| |t d S rZ   )r   r0   rA   rK   rL   rE   r,   r-   r[   r*   r+   r_   r^   rb   ra   re   rd   r2   r   r   r   r6   test_decompress_good_input  s0   

z=CompressDecompressFunctionTestCase.test_decompress_good_inputc                 C   s   |  ttjtd d  |  ttjtd d  | j ttjtd d tjtd | j ttjt	d d tjt
d | j ttjtd d tjtd | j ttjtd d tjtd d S )N   r"   )r%   r   r   r0   rA   rE   r[   r*   r+   r_   r^   rb   ra   re   rd   r?   r   r   r6    test_decompress_incomplete_input  s   
zCCompressDecompressFunctionTestCase.test_decompress_incomplete_inputc                 C   s  |  t tt W d    n1 sw   Y  |  t tt W d    n1 s/w   Y  |  t tjttjd W d    n1 sLw   Y  |  t tjttj	d W d    n1 siw   Y  |  t tjttj
td W d    d S 1 sw   Y  d S Nr   r"   )r%   r   r   r0   COMPRESSED_BOGUSr[   rE   r,   rA   r-   r*   r+   r?   r   r   r6   test_decompress_bad_input  s"   
"z<CompressDecompressFunctionTestCase.test_decompress_bad_inputc                 C   s   t t}t |}| |t t tt j}t |}| |t t tt j}t |}| |t t jtt jtd}t j|t jtd}| |t d S rZ   )	r   r.   rL   r0   rK   r,   r-   r*   rd   )r2   r   r   r   r   r6   test_roundtrip  s   



z1CompressDecompressFunctionTestCase.test_roundtripc                 C   s"   t tt }| |td  d S )Nrs   )r   r0   rA   rE   rK   rL   r   r   r   r6   test_decompress_multistream  r]   z>CompressDecompressFunctionTestCase.test_decompress_multistreamc                 C   s   t tt }| |t d S rH   r   r0   rA   r   rK   rL   r   r   r   r6   test_decompress_trailing_junk  s   z@CompressDecompressFunctionTestCase.test_decompress_trailing_junkc                 C   s&   t td t }| |td  d S )Nr   r   r   r   r   r6   )test_decompress_multistream_trailing_junk  s   zLCompressDecompressFunctionTestCase.test_decompress_multistream_trailing_junkN)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r6   r     s    r   c                   @   s*   e Zd ZdZd
ddZdd Zdd Zd	S )TempFilez=Context manager - creates a file, and deletes it on __exit__.rG   c                 C   s   || _ || _d S rH   )filenamerO   )r2   r   rO   r   r   r6   r   
  s   
zTempFile.__init__c                 C   s>   t | jd}|| j W d    d S 1 sw   Y  d S )Nwb)openr   writerO   r2   fr   r   r6   	__enter__  s   "zTempFile.__enter__c                 G   s   t | j d S rH   )r
   r   )r2   argsr   r   r6   __exit__  s   zTempFile.__exit__Nr   )r   r   r   __doc__r   r   r   r   r   r   r6   r     s
    
r   c                   @   s  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Z d=d> Z!d?d@ Z"dAdB Z#dCdD Z$dEdF Z%dGdH Z&dIdJ Z'dKdL Z(dMdN Z)dOdP Z*dQdR Z+dSdT Z,dUdV Z-dWdX Z.dYdZ Z/d[d\ Z0d]d^ Z1d_d` Z2dadb Z3dcdd Z4dedf Z5dgdh Z6didj Z7dkdl Z8dmdn Z9dodp Z:dqdr Z;dsdt Z<dudv Z=dwdx Z>dydz Z?d{d| Z@d}S )~FileTestCasec                 C   s   t tt}W d    n1 sw   Y  t t d}W d    n1 s'w   Y  t t d}W d    n1 s=w   Y  t t d	}W d    d S 1 sTw   Y  d S )Nwxa)r   r   rA   r   r   r   r6   	test_init  s   "zFileTestCase.test_initc              	   C   s   t t}t|te t|}| | t W d    n1 s"w   Y  t|d}|	t W d    n1 s<w   Y  t|}| | td  W d    n1 sZw   Y  W d    d S W d    d S 1 srw   Y  d S )Nr   rs   )
pathlibPathr	   r   rA   r   rK   readrL   r   )r2   r   r   r   r   r6    test_init_with_PathLike_filename"  s   


"z-FileTestCase.test_init_with_PathLike_filenamec              	   C   s   t ttO tt}W d    n1 sw   Y  ttd}W d    n1 s*w   Y  ttd}W d    n1 s?w   Y  W d    d S W d    d S 1 sWw   Y  d S )Nr   r   )r   r	   rA   r   r   r   r   r6   test_init_with_filename,  s   
"z$FileTestCase.test_init_with_filenamec              	   C   s:  t t ttd W d    n1 sw   Y  ttd W d    n1 s*w   Y  ttd W d    n1 s?w   Y  ttd W d    n1 sTw   Y  ttd W d    n1 siw   Y  ttd W d    n1 s~w   Y  W d    d S W d    d S 1 sw   Y  d S )Nrrbr   r   r   ab)r   r	   r   r?   r   r   r6   test_init_mode5  s,   
"zFileTestCase.test_init_modec              
   C   s   |  tt dD ]E}tt tt| W d    n1 sw   Y  | t tt| W d    n1 s9w   Y  W d    n1 sHw   Y  qd S )N)r   xb)
addCleanupr
   r	   r   r%   FileExistsError)r2   moder   r   r6   test_init_with_x_modeD  s   z"FileTestCase.test_init_with_x_modec                 C   sr  |  t tttd W d    n1 sw   Y  |  t tttd W d    n1 s3w   Y  |  t tttd W d    n1 sOw   Y  |  t tttd W d    n1 skw   Y  |  t tttd W d    n1 sw   Y  |  t tttd W d    n1 sw   Y  |  t tttd W d    n1 sw   Y  |  t tttd W d    n1 sw   Y  |  t tttd	 W d    n1 sw   Y  |  t tttd
 W d    n	1 sw   Y  |  t tttd W d    d S 1 s2w   Y  d S )N)r   r   r   xtzx+rxZwxrtzr+wtzw+rw)r%   r'   r   r   rA   r?   r   r   r6   test_init_bad_modeN  sB   $zFileTestCase.test_init_bad_modec                 C   s  |  t tt ddd W d    n1 sw   Y  |  t tt dtjd W d    n1 s6w   Y  |  t tt dtjd d W d    n1 sVw   Y  |  t ttt	tj
d W d    n1 stw   Y  |  t ttt	tjd W d    n1 sw   Y  |  t ttt	tjd W d    n1 sw   Y  |  t ttt	tjd W d    n1 sw   Y  |  t ttt	tjd W d    d S 1 sw   Y  d S )Nr   s   asdr   r   )r%   r&   r   r   r   r   CHECK_UNKNOWNCHECK_ID_MAXr'   rA   rS   CHECK_CRC32rR   CHECK_SHA256r?   r   r   r6   test_init_bad_checkf  s0   "z FileTestCase.test_init_bad_checkc                 C   s  |  t tt ddd W d    n1 sw   Y  |  t tt ddd W d    n1 s5w   Y  |  t tt ddd W d    n1 sRw   Y  |  t tt ddd W d    n1 sow   Y  |  t tt ddd W d    n1 sw   Y  |  t tt ddd W d    n1 sw   Y  |  t tttd	d W d    d S 1 sw   Y  d S )
Nr   g(\@r   rh      rv   ir<   r   )r%   r&   r   r   r   OverflowErrorr'   rA   r?   r   r   r6   test_init_bad_presetz  s*   "z!FileTestCase.test_init_bad_presetc                 C   s  |  t tt ddgd W d    n1 sw   Y  |  t tt dddigd W d    n1 s9w   Y  |  t tt dddigd W d    n1 sYw   Y  |  t tt dtjdd	gd W d    n1 s{w   Y  |  t tt dtjdd	gd W d    n1 sw   Y  |  t tt dtjdd	gd W d    d S 1 sw   Y  d S )
Nr   r8   r   r9   r   r   r:   r   r;   )	r%   r&   r   r   r'   r   r)   r=   r>   r?   r   r   r6   test_init_bad_filter_spec  s0   "z&FileTestCase.test_init_bad_filter_specc                 C   sF   |  t tt dtjdtd W d    d S 1 sw   Y  d S )Nr      )r   r   r   )r%   r'   r   r   r   r*   r+   r?   r   r   r6   !test_init_with_preset_and_filters  s
   "z.FileTestCase.test_init_with_preset_and_filtersc                 C   s   t t }t|}|  | |j |  | |j W d    n1 s'w   Y  ttt tt}|j}|  | 	|j |  W d    d S 1 sRw   Y  d S rH   )
r   rA   r   closerI   closedr   r	   _fprM   )r2   srcr   fpr   r   r6   
test_close  s   


"zFileTestCase.test_closec                 C   s   t tt}z| |j |  | |j W |  n|  w | |j t t d}z| |j W |  n|  w | |j d S Nr   )r   r   rA   rI   r   r   r   rM   r   r   r   r6   test_closed  s   zFileTestCase.test_closedc              	   C   s   t tt}z| t|j W |  n|  w | t|j tt	t+ t t	}z| 
| |j  | | t W |  n|  w W d    n1 sSw   Y  | t|j d S rH   )r   r   rA   r%   r   filenor   r'   r   r	   rK   r   ZassertIsInstanceintr   r   r   r6   test_fileno  s   zFileTestCase.test_filenoc                 C   s   t tt}z| |  |  | |  W |  n|  w | t|j t t d}z| 	|  W |  n|  w | t|j tt}dd |_t |}z| 	|  W |  n|  w | t|j d S )Nr   c                   S   s   dS )NFr   r   r   r   r6   <lambda>  s    z,FileTestCase.test_seekable.<locals>.<lambda>)
r   r   rA   rM   seekabler   r   r%   r'   rI   )r2   r   r   r   r   r6   test_seekable  s&   
zFileTestCase.test_seekablec                 C      t tt}z| |  |  | |  W |  n|  w | t|j t t d}z| 	|  W |  n|  w | t|j d S r   )
r   r   rA   rM   readabler   r   r%   r'   rI   r   r   r   r6   test_readable     zFileTestCase.test_readablec                 C   r   r   )
r   r   rA   rI   writabler   r   r%   r'   rM   r   r   r   r6   test_writable  r   zFileTestCase.test_writablec                 C   s  t tt}| | t | | d W d    n1 s!w   Y  t tt}| | t W d    n1 s?w   Y  t tttjd}| | t | | d W d    n1 shw   Y  t tttj	d}| | t | | d W d    n1 sw   Y  t tt
tjtd}| | t | | d W d    n1 sw   Y  t tttjtd}| | t | | d W d    n1 sw   Y  t tttjtd}| | t | | d W d    n	1 sw   Y  t tttjtd}| | t | | d W d    d S 1 s<w   Y  d S )NrG   r   r"   )r   r   rA   rK   r   rL   rE   r   r,   r-   r[   r*   r+   r_   r^   rb   ra   re   rd   r   r   r   r6   	test_read  sV   $zFileTestCase.test_readc                 C   s
  t tt}| |dd W d    n1 sw   Y  t tt}| |dd W d    n1 s9w   Y  t tttjd}| |dd W d    n1 s[w   Y  t tttjd}| |dd W d    d S 1 s~w   Y  d S )Nr   rG   r   )	r   r   rA   rK   r   rE   r   r,   r-   r   r   r   r6   test_read_0/  s   "zFileTestCase.test_read_0c                 C   sv   t tt+}g }	 |d}|sn| t|d || q
| d|t	 W d    d S 1 s4w   Y  d S NTrh   rG   )
r   r   rA   r   rx   rk   rl   rK   rm   rL   )r2   r   chunksresultr   r   r6   test_read_109  s   

"zFileTestCase.test_read_10c                 C   s   t ttd }| | td  W d    n1 sw   Y  t ttt }| | td  W d    n1 s?w   Y  t ttd tj	t
d}| | td  W d    d S 1 sfw   Y  d S )Nr   rs      r"   )r   r   rA   rK   r   rL   rE   rb   r   r*   ra   r   r   r   r6   test_read_multistreamD  s   "z"FileTestCase.test_read_multistreamc                 C   sv   t j}ttt _z.tttd }| | td  W d    n1 s&w   Y  W |t _d S W |t _d S |t _w Nr   )	_compressionBUFFER_SIZErk   rA   r   r   rK   r   rL   )r2   Zsaved_buffer_sizer   r   r   r6   )test_read_multistream_buffer_size_alignedM  s   

z6FileTestCase.test_read_multistream_buffer_size_alignedc                 C   sF   t ttt }| | t W d    d S 1 sw   Y  d S rH   r   r   rA   r   rK   r   rL   r   r   r   r6   test_read_trailing_junkX  s   "z$FileTestCase.test_read_trailing_junkc                 C   sN   t ttd t }| | td  W d    d S 1 s w   Y  d S r  r  r   r   r   r6   #test_read_multistream_trailing_junk\  s   "z0FileTestCase.test_read_multistream_trailing_junkc              	   C   s   t tt5 tt}| | t | | d W d    n1 s%w   Y  W d    d S W d    d S 1 s=w   Y  d S )NrG   )r   r	   rA   r   rK   r   rL   r   r   r   r6   test_read_from_file`  s   
"z FileTestCase.test_read_from_filec              	   C   s   zt d}W n ty   | d Y nw tt t5 t|}| | t	 | | d W d    n1 s;w   Y  W d    d S W d    d S 1 sSw   Y  d S )Nascii%Temporary file name needs to be ASCIIrG   )
r	   encodeUnicodeEncodeErrorskipTestr   rA   r   rK   r   rL   )r2   bytes_filenamer   r   r   r6   'test_read_from_file_with_bytes_filenamef  s   
"z4FileTestCase.test_read_from_file_with_bytes_filenamec                 C   sH   t ttd d }| t|j W d    d S 1 sw   Y  d S )Nr   )r   r   rA   r%   r1   r   r   r   r   r6   test_read_incompletep  s   "z!FileTestCase.test_read_incompletec              	   C   s   t d d }tt|}| t|j W d    n1 sw   Y  tt|}| |ttt | t|jd W d    n1 sGw   Y  t	dD ]$}tt|d | }| t|jd W d    n1 sow   Y  qPd S )Nir      )
rA   r   r   r%   r1   r   rK   rk   rL   rj   )r2   Z	truncatedr   ro   r   r   r6   test_read_truncatedt  s   z FileTestCase.test_read_truncatedc                 C   s   t tt}|  | t|j t t d}| t|j W d    n1 s)w   Y  t tt}| t|jt  W d    d S 1 sIw   Y  d S r   )	r   r   rA   r   r%   r'   r   r&   floatr   r   r   r6   test_read_bad_args  s   "zFileTestCase.test_read_bad_argsc                 C   s@   t tt}| t|j W d    d S 1 sw   Y  d S rH   )r   r   r   r%   r   r   r   r   r   r6   test_read_bad_data     "zFileTestCase.test_read_bad_datac                 C   st   t tt*}g }	 | }|sn|| q
| d|t | | d W d    d S 1 s3w   Y  d S )NTrG   r   r   rA   read1rl   rK   rm   rL   r2   r   Zblocksr  r   r   r6   
test_read1  s   
"zFileTestCase.test_read1c                 C   sD   t tt}| |dd W d    d S 1 sw   Y  d S )Nr   rG   )r   r   rA   rK   r"  r   r   r   r6   test_read1_0  s   "zFileTestCase.test_read1_0c                 C   sv   t tt+}g }	 |d}|sn|| q
| d|t | | d W d    d S 1 s4w   Y  d S r  r!  r#  r   r   r6   test_read1_10  s   

"zFileTestCase.test_read1_10c                 C   s|   t ttd ,}g }	 | }|sn|| q| d|td  | | d W d    d S 1 s7w   Y  d S )Nr   TrG   r!  r#  r   r   r6   test_read1_multistream  s   
"z#FileTestCase.test_read1_multistreamc                 C   s   t tt}|  | t|j t t d}| t|j W d    n1 s)w   Y  t tt}| t|jd  W d    d S 1 sHw   Y  d S r   )r   r   rA   r   r%   r'   r"  r&   r   r   r   r6   test_read1_bad_args  s   "z FileTestCase.test_read1_bad_argsc                 C   s   t tt$}| }| t|d | t| | 	|
 t W d    n1 s-w   Y  t tt&}|d}| t|d | t| | 	|
 t W d    d S 1 saw   Y  d S )Nr   rh   )r   r   rA   peekZassertGreaterrk   rM   rL   
startswithrK   r   )r2   r   r  r   r   r6   	test_peek  s   
"zFileTestCase.test_peekc                 C   s@   t t d}| t|j W d    d S 1 sw   Y  d S r   )r   r   r%   r'   r)  r   r   r   r6   test_peek_bad_args  r   zFileTestCase.test_peek_bad_argsc                 C   s  t t}| }W d    n1 sw   Y  tt t}| tt|| W d    n1 s3w   Y  tt t}| tt|| W d    n1 sSw   Y  tt tt	j
d}| tt|| W d    n1 svw   Y  tt tt	jd}| tt|| W d    n1 sw   Y  tt tt	jtd}| tt|| W d    d S 1 sw   Y  d S r   )r   rL   	readlinesr   rA   assertListEquallistiterrE   r   r,   r-   r_   r*   r^   r2   r   linesr   r   r6   test_iterator  s*   

"zFileTestCase.test_iteratorc                 C   s|   t t}| }W d    n1 sw   Y  tt t}|D ]
}| | | q!W d    d S 1 s7w   Y  d S rH   )r   rL   r-  r   rA   rK   readline)r2   r   r2  liner   r   r6   test_readline  s   

"zFileTestCase.test_readlinec                 C   sr   t t}| }W d    n1 sw   Y  tt t}| | | W d    d S 1 s2w   Y  d S rH   )r   rL   r-  r   rA   r.  r1  r   r   r6   test_readlines  s   

"zFileTestCase.test_readlinesc                 C   sh   t jdtd dd}| t|tj tt|}| 	|
dd dt }| |jj |d dS )z-Decompressed data buffering should be limited    g    >Ar   r   r   z)Excessive amount of data was decompressedN)r   r.   r   Z
assertLessrk   r  r  r   r   rK   r   r   rx   _bufferrawtell)r2   ZbombdecompZ
max_decompr   r   r6   test_decompress_limited  s   z$FileTestCase.test_decompress_limitedc              	   C   s  t  /}t|d}|t W d    n1 sw   Y  tt}| | | W d    n1 s5w   Y  t  5}t|dtjd}|t W d    n1 sVw   Y  tjttjd}| | | W d    n1 suw   Y  t  5}t|dtj	d}|t W d    n1 sw   Y  tjttj	d}| | | W d    n1 sw   Y  t  8}t|dtj
td}|t W d    n1 sw   Y  tjttj
td}| | | W d    d S 1 sw   Y  d S )Nr   r   r"   )r   r   r   rL   r   r.   rK   getvaluer,   r-   r*   r^   )r2   dstr   expectedr   r   r6   
test_write  sB   


"zFileTestCase.test_writec              	   C   s   t  A}t|d}tdttdD ]}|t||d   qW d    n1 s*w   Y  tt}| |	 | W d    d S 1 sGw   Y  d S )Nr   r   rh   )
r   r   rj   rk   rL   r   r   r.   rK   r>  )r2   r?  r   startr@  r   r   r6   test_write_10  s   
"zFileTestCase.test_write_10c              	   C   s  t d d }t dd }t dd  }ddd |||fD }t _}t|d}|| W d    n1 s8w   Y  t|d}|| W d    n1 sRw   Y  t|d}|| W d    n1 slw   Y  | | | W d    d S 1 sw   Y  d S )NrD      rG   c                 s       | ]}t |V  qd S rH   r   r.   .0r   r   r   r6   	<genexpr>      z1FileTestCase.test_write_append.<locals>.<genexpr>r   r   )rL   rm   r   r   r   rK   r>  )r2   part1part2part3r@  r?  r   r   r   r6   test_write_append  s    "zFileTestCase.test_write_appendc                 C   s   zJt td}|t W d    n1 sw   Y  tt}ttd}| | | W d    n1 s8w   Y  W t	t d S W t	t d S t	t w )Nr   r   )
r   r	   r   rL   r   r.   r   rK   r   r
   )r2   r   r@  r   r   r6   test_write_to_file"  s   
zFileTestCase.test_write_to_filec                 C   s   zt d}W n ty   | d Y nw zJt|d}|t W d    n1 s,w   Y  tt}t	t d}| 
| | W d    n1 sNw   Y  W tt  d S W tt  d S tt  w )Nr  r  r   r   )r	   r  r  r  r   r   rL   r   r.   r   rK   r   r
   )r2   r  r   r@  r   r   r6   &test_write_to_file_with_bytes_filename,  s    
z3FileTestCase.test_write_to_file_with_bytes_filenamec                 C   s<  t d d }t dd }t dd  }ddd |||fD }zyttd}|| W d    n1 s5w   Y  ttd}|| W d    n1 sOw   Y  ttd}|| W d    n1 siw   Y  ttd}| | | W d    n1 sw   Y  W tt d S W tt d S tt w )	NrD   rD  rG   c                 s   rE  rH   rF  rG  r   r   r6   rI  >  rJ  z9FileTestCase.test_write_append_to_file.<locals>.<genexpr>r   r   r   )	rL   rm   r   r	   r   r   rK   r   r
   )r2   rK  rL  rM  r@  r   r   r   r6   test_write_append_to_file:  s(   z&FileTestCase.test_write_append_to_filec                 C   s   t t d}|  | t|jd t ttd}| t|jd W d    n1 s,w   Y  t t d!}| t|jd  | t|jd | t|jd W d    d S 1 s[w   Y  d S )Nr   r#   r   r$   texti  )r   r   r   r%   r'   r   rA   r&   r   r   r   r6   test_write_bad_argsK  s   "z FileTestCase.test_write_bad_argsc              	   C   s   t t}| }W d    n1 sw   Y  t  0}t|d}|| W d    n1 s1w   Y  tt}| | | W d    d S 1 sNw   Y  d S r   )	r   rL   r-  r   
writelinesr   r.   rK   r>  )r2   r   r2  r?  r@  r   r   r6   test_writelinesV  s   


"zFileTestCase.test_writelinesc                 C   sT   t tt}|d | | tdd   W d    d S 1 s#w   Y  d S )Ni+  r   r   rA   seekrK   r   rL   r   r   r   r6   test_seek_forward_  s   
"zFileTestCase.test_seek_forwardc                 C   s`   t ttd }|ttd  | | tdd   W d    d S 1 s)w   Y  d S )Nrs   {   )r   r   rA   rW  rk   rL   rK   r   r   r   r   r6    test_seek_forward_across_streamsd  s   "z-FileTestCase.test_seek_forward_across_streamsc                 C   s`   t tt }|d |dd | | tdd   W d    d S 1 s)w   Y  d S )Nrr   i  r   i8  r   r   rA   r   rW  rK   rL   r   r   r   r6   %test_seek_forward_relative_to_currenti  s
   
"z2FileTestCase.test_seek_forward_relative_to_currentc                 C   V   t tt}|dd | | tdd   W d    d S 1 s$w   Y  d S )Nirs   rV  r   r   r   r6   !test_seek_forward_relative_to_endo     "z.FileTestCase.test_seek_forward_relative_to_endc                 C   s^   t tt}|d |d | | tdd   W d    d S 1 s(w   Y  d S )Ni     r[  r   r   r   r6   test_seek_backwardt  s
   

"zFileTestCase.test_seek_backwardc                 C   sn   t ttd %}|ttd  |d | | tdd  t  W d    d S 1 s0w   Y  d S )Nrs   iM  i  )r   r   rA   r   rk   rL   rW  rK   r   r   r   r6   !test_seek_backward_across_streamsz  s
   
"z.FileTestCase.test_seek_backward_across_streamsc                 C   r]  )Nijrs   rV  r   r   r   r6   "test_seek_backward_relative_to_end  r_  z/FileTestCase.test_seek_backward_relative_to_endc                 C   sh   t tt$}|ttd  | | tt | | d W d    d S 1 s-w   Y  d S )N)#  rG   )	r   r   rA   rW  rk   rL   rK   r;  r   r   r   r   r6   test_seek_past_end  s
   "zFileTestCase.test_seek_past_endc                 C   s\   t tt}|d | | d | | t W d    d S 1 s'w   Y  d S )Nir   )r   r   rA   rW  rK   r;  r   rL   r   r   r   r6   test_seek_past_start  s
   
"z!FileTestCase.test_seek_past_startc                 C   s   t tt}|  | t|jd t t d}| t|jd W d    n1 s+w   Y  t tt-}| t|jdd | ttf|jdd | t|jd  | t|jd W d    d S 1 sfw   Y  d S )Nr   r   r   	   r   s   derp)r   r   rA   r   r%   r'   rW  r&   r   r   r   r6   test_seek_bad_args  s   "zFileTestCase.test_seek_bad_argsc                 C   s   t tt,}d}	 | | | |d}|sn|t|7 }q
| | tt W d    n1 s5w   Y  t t d1}tdttdD ]}| | | |	t||d   qI| | tt W d    d S 1 stw   Y  d S )Nr   T   r      )
r   r   rA   rK   r;  r   rk   rL   rj   r   )r2   r   posr  r   r   r6   	test_tell  s"   
	"zFileTestCase.test_tellc                 C   s&   t tt}|  | t|j d S rH   )r   r   rA   r   r%   r'   r;  r   r   r   r6   test_tell_bad_args  s   zFileTestCase.test_tell_bad_argsc                 C   s   t  }|jtdd}| t|d | |j t  }|jtdd}| |j | |j |d}| t|d | |j | || | d S )Nrv   rt   ih3  i]3  rG      )	r   r0   ISSUE_21872_DATrK   rk   rM   rJ   rI   rw   )r2   Zd1ZentireZd2Zout1Zout2r   r   r6   test_issue21872  s   
zFileTestCase.test_issue21872c                 C   sr   t  dg d}t||j }tt d}| ||| | | | W d    d S 1 s2w   Y  d S )NQ)r   rs   r   r	  r   r   )arrayrk   itemsizer   r   rK   r   r;  )r2   qZLENGTHr   r   r   r6   test_issue44439  s   "zFileTestCase.test_issue44439N)Ar   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r
  r  r  r  r  r  r  r  r  r  r$  r%  r&  r'  r(  r+  r,  r3  r6  r7  r=  rA  rC  rN  rO  rP  rQ  rS  rU  rX  rZ  r\  r^  ra  rb  rc  re  rf  rh  rl  rm  rp  ru  r   r   r   r6   r     s~    

	

	
		
	r   c                   @   s\   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd ZdS )OpenTestCasec              	   C   s  t ttd}| | t W d    n1 sw   Y  t [}t |d}|t W d    n1 s:w   Y  t |	 }| |t t |d}|t W d    n1 sbw   Y  t |	 }| |td  W d    d S 1 sw   Y  d S )Nr   r   r   rs   )
r   r   r   rA   rK   r   rL   r   r0   r>  )r2   r   bio	file_datar   r   r6   test_binary_modes  s   "zOpenTestCase.test_binary_modesc              	   C   s@  t d}|dtj}tjttddd}| 	|
 | W d    n1 s)w   Y  t e}tj|ddd}|| W d    n1 sJw   Y  t| d}| 	|| tj|ddd}|| W d    n1 sww   Y  t| d}| 	||d  W d    d S 1 sw   Y  d S )Nr  
r   encodingr   Zatrs   )rL   decodereplaceoslinesepr   r   r   rA   rK   r   r   r0   r>  )r2   uncompresseduncompressed_rawr   rw  rx  r   r   r6   test_text_modes  s"   
"zOpenTestCase.test_text_modesc              	   C   sj  t t ttd}|t W d    n1 sw   Y  ttd}t| }| |t W d    n1 s=w   Y  ttd}| | t W d    n1 s[w   Y  ttd}|t W d    n1 svw   Y  ttd}| | td  W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nr   r   r   rs   )	r   r	   r   r   r   rL   r0   r   rK   )r2   r   rx  r   r   r6   test_filename  s(   

"zOpenTestCase.test_filenamec              	   C   s   t t}t|l t|d}|t W d    n1 s w   Y  t|d}t|	 }| 
|t W d    n1 sBw   Y  t|d}| 
|	 t W d    n1 s`w   Y  W d    d S W d    d S 1 sxw   Y  d S )Nr   r   )r   r   r	   r   r   r   r   rL   r0   r   rK   )r2   r   r   rx  r   r   r6   test_with_pathlike_filename  s   

"z(OpenTestCase.test_with_pathlike_filenamec                 C   s   |  t ttd W d    n1 sw   Y  |  t ttd W d    n1 s1w   Y  |  t tjtddd W d    n1 sNw   Y  |  t tjtddd W d    n1 skw   Y  |  t tjtddd	 W d    d S 1 sw   Y  d S )
Nr   Zrbtr   zutf-8r{  ignore)errorsrz  )newline)r%   r'   r   r   r	   r?   r   r   r6   test_bad_params  s   "zOpenTestCase.test_bad_paramsc              	   C   s   t jtd}t jttdfi |}| | t W d    n1 s%w   Y  t 9}t j|dfi |}|	t W d    n1 sHw   Y  t j
| fi |}| |t W d    d S 1 siw   Y  d S )Nr"   r   r   )r   r*   r+   r   r   r[   rK   r   rL   r   r0   r>  )r2   optionsr   rw  rx  r   r   r6   test_format_and_filters  s   "z$OpenTestCase.test_format_and_filtersc              	   C   s   t d}|dtj}t c}tj|ddd}|| W d    n1 s(w   Y  t	|
 d}| || |d tj|ddd}| | | W d    n1 s]w   Y  W d    d S W d    d S 1 suw   Y  d S )Nr  rz  r   z	utf-16-ler{  r   r   )rL   r}  r~  r  r  r   r   r   r   r0   r>  rK   rW  r   )r2   r  r  rw  r   rx  r   r   r6   test_encoding)  s   

"zOpenTestCase.test_encodingc              	   C   s   t td2}tj|dddd}| | d W d    n1 s$w   Y  W d    d S W d    d S 1 s<w   Y  d S )Ns   foobarr   r  r  )r|  r  Zfoobar)r   r   r.   r   rK   r   )r2   rw  r   r   r   r6   test_encoding_error_handler6  s   "z(OpenTestCase.test_encoding_error_handlerc              	   C   s   t d}t V}tj|dddd}|| W d    n1 s"w   Y  |d tj|dddd}| | |g W d    n1 sIw   Y  W d    d S W d    d S 1 saw   Y  d S )Nr  r   rz  )r|  r  r   r   )	rL   r}  r   r   r   r   rW  rK   r-  )r2   rR  rw  r   r   r   r6   test_newline<  s   

"zOpenTestCase.test_newlinec              
   C   s   |  tt dD ]Q}tt d|v rdnd }tjt||d W d    n1 s)w   Y  | t tt| W d    n1 sEw   Y  W d    n1 sTw   Y  qd S )N)r   r   r   tr  r{  )r   r
   r	   r   r   r%   r   )r2   r   r|  r   r   r6   test_x_modeF  s   zOpenTestCase.test_x_modeN)r   r   r   ry  r  r  r  r  r  r  r  r  r  r   r   r   r6   rv    s    
rv  c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
MiscellaneousTestCasec                 C   sP   |  ttj |  ttj | ttjd  | ttj d S r   )rM   r   is_check_supportedrS   r   rI   r   r   r?   r   r   r6   test_is_check_supportedT  s   z-MiscellaneousTestCase.test_is_check_supportedc                 C   s  |  t td W d    n1 sw   Y  |  t tddi W d    n1 s1w   Y  |  t ttjdd W d    n1 sOw   Y  |  tj ttjdd W d    n1 snw   Y  ttjdd	d
dd}| 	|d d S )Ns
   not a dictr      r  )r   Zjunkrd  r   distrs   r   r      )r   pblplc	dict_size   ]   )
r%   r&   r   _encode_filter_propertiesr'   r)   r   r=   FILTER_LZMA1rK   )r2   Zpropsr   r   r6   test__encode_filter_properties`  s,   
z4MiscellaneousTestCase.test__encode_filter_propertiesc                 C   s   |  t ttjdti W d    n1 sw   Y  |  tj ttjd W d    n1 s6w   Y  ttjd}| 	|d tj | 	|d d | 	|d d | 	|d	 d
 | 	|d d d S )Nz	should bes   too longr  r   r  rs   r  r   r  r   r  r  )
r%   r&   r   _decode_filter_propertiesr>   bytesr   r=   r  rK   )r2   Z
filterspecr   r   r6   test__decode_filter_propertiesu  s   z4MiscellaneousTestCase.test__decode_filter_propertiesc                 C   s6   t t jd}t |}t t j|}| || d S )Nr  )r   r  r  r  rK   )r2   Zspec1Z	reencodedZspec2r   r   r6    test_filter_properties_roundtrip  s   
z6MiscellaneousTestCase.test_filter_properties_roundtripN)r   r   r   r  r  r  r  r   r   r   r6   r  R  s
    r  s  
LAERTES

       O, fear me not.
       I stay too long: but here my father comes.

       Enter POLONIUS

       A double blessing is a double grace,
       Occasion smiles upon a second leave.

LORD POLONIUS

       Yet here, Laertes! aboard, aboard, for shame!
       The wind sits in the shoulder of your sail,
       And you are stay'd for. There; my blessing with thee!
       And these few precepts in thy memory
       See thou character. Give thy thoughts no tongue,
       Nor any unproportioned thought his act.
       Be thou familiar, but by no means vulgar.
       Those friends thou hast, and their adoption tried,
       Grapple them to thy soul with hoops of steel;
       But do not dull thy palm with entertainment
       Of each new-hatch'd, unfledged comrade. Beware
       Of entrance to a quarrel, but being in,
       Bear't that the opposed may beware of thee.
       Give every man thy ear, but few thy voice;
       Take each man's censure, but reserve thy judgment.
       Costly thy habit as thy purse can buy,
       But not express'd in fancy; rich, not gaudy;
       For the apparel oft proclaims the man,
       And they in France of the best rank and station
       Are of a most select and generous chief in that.
       Neither a borrower nor a lender be;
       For loan oft loses both itself and friend,
       And borrowing dulls the edge of husbandry.
       This above all: to thine ownself be true,
       And it must follow, as the night the day,
       Thou canst not then be false to any man.
       Farewell: my blessing season this in thee!

LAERTES

       Most humbly do I take my leave, my lord.

LORD POLONIUS

       The time invites you; go; your servants tend.

LAERTES

       Farewell, Ophelia; and remember well
       What I have said to you.

OPHELIA

       'Tis in my memory lock'd,
       And you yourself shall keep the key of it.

LAERTES

       Farewell.
s   this is not a valid lzma streams   7zXZ  ִF !   t/] bXn䴝o
2h\6(wd"u.n򎍏/=/Mާz-]rZo#z/FMt6 BF$Ql,bnԨNȆ3x2O@Q /OozSt<I#ud6Y]-Pee:	7
pJV%G=?(΂=I3RisPX2jLbc-HoJliQk?@xH12Puw㾪iWЀ#cb5]dWlUGyF7v5h8W5:?rD5@7cԗitSkKvy6Te]:kla4r}r*z8hӼl-KZL3Ϝ!^9w PPKdZ}%$/&,qh{Q)qÀo![Ԋwt`^??\RԎXaЫS>ɕH	%$.oRbU^S/vr̢GkzʀЋIxy-0z^֏_Pi萄ܿky܁+\YYhw̴ |ejz`A叩	=_%voZO	M-<"CMg~b|'x!JFu 87yu_@qc#5)_3]o]5myK+ b t0ȏ׮+iܹk>f${pƈ0_h6Z%'
"冟7X=mNX[FUɆ0a+* _$_ޯ46qɒ`}ʮ`wجVeZ#d{wB:^VaH
\Xu#%*v!	4    Vj?uLU   twPg    YZs  ]    bXn䴝o
2h\6(wd"u.n򎍏/=/Mާz-]rZo#z/FMt6 BF$Ql,bnԨNȆ3x2O@Q /OozSt<I#ud6Y]-Pee:	7
pJV%G=?(΂=I3RisPX2jLbpljr=	3!EvVF״P~E7ƻc%I;砋Z(o>`᪨١}獃4T㘼DMA@ȓSaśTJE}g#ZVɝc>0S/y_(r?@:zBeyX :	xD\&GYJv{)Ao 5F?vVtTf'k\Y|wdd  ,Xsv}%
ߢ.6
h
 BlU}sHpB8ZA;z{5!A$qg/|r^=n6{>8
:'.
:݂'["wD$wq,1,2w$JdmgA&8i;NQrheL;mQN[jEOliB^R].-eiNwbQ~餈4kM)T3)B ^..	H5#NV$Kkt'R2-LH0~?SOE]<Z0a*?rnGd^8uEI
Vⳕi!&1FDP SO3D!w_G+.]>#h;5JK^-[\ʯԡĸprr.l []+0gaKYI,
V_#>wW,63J2=kTUti_lhfxr   )r   r   s  ] bXncyqm' QIVL8_뼥
W$=R;k8	{+cS3mb4*+.9bZrA0s"rGސcu۩.Al<OiŴg4t6"o?^}}[:
[lg2n7@6Tu	8[4PCV"x~NK%k:{6è\@F_ȐsU87JMг;X﮳eO,z,dyjlB8#6PKP؈ҡC?۔_"eޛ>H;#4ź%v9A"2i3߾Dm7o:Jہ6O	Q펕S/MSJd=^BE͑G.b&ٟj\CvҊ?^H>IqYK7DWOl5U{ϣk{O*B-(R@E:VY]ĥgX3 ]n콣Yu*TA$AAiw젇%=DѻqCqpL "t~cix)l)@lynD:Җ? %_h#7QDhnѣ_?q17_|ʷSWt9L|WsL_$Fkvfhî1QG5yIcwrIp:p_va"ّeëH*m}}>l%΄dӂ5fOg^&	@ΟJ{rzMho^U7\!kUd~熊z;PGw^ı3Sf @売sxRD`WϑTZ-X|^[7֢		Q5/@S5VhAKVCMxOO<e*Hk6G+)͜lK}5u*F2   rs   r  s  ] -Ԩd?ﾯH2.g5z	[}WmHgQRA5
v~:o:JCc*o\lE2aU{׸wܾ88\[_9%fs#=<\t=7ft\Q8Ԫآ >-ӎ#ArAmJ~B(`WKkaj S%iXB;EeTbg
jу]"Mr\j~PGHN*Z.	pE1ͩHP~0JK]9F_[ԋ6뿻$kS{,f:Sjz殘Q~r?&ˀ	|x|dhh+'Ł3q`Z#܊Il{6ճxhz%ݘ!RUaX1=R0㤚bd$]Bh2cL`4xZ]T^؉;Y9zo)f]$np;QK @:UcX
!"=.6g=WnOTDW3pntVOjMi$3܊fYKhwO2^&Vi=yZoƶw%c`]8mQh`[q0g"NR)(0\G!xzHyM
\A	arMꄛ!~Hoڇh颾qN!WGڡA`j?5B~E!^ݨy}))D2fuɗx4_6$t9=˿v\8jk)ffnĩMIE5TpӉ3/֏ou;PRFj$hK(c7)ݲ,.yQi`h-	^ [!M.-S+8,  ë~$eP]iog^Ek`~y+^D"!ҧT5Y4ZHf]όx3TUHy7X ( /\JvP8~4kAyPJNaO:eqACmw	uCwUP 8L4w!L2 j;Vːlv@EZ[E`>ޡbZЩ`{;fk1.N(u!LГBjc_}dàY/,bl@p8quHX}OXݾeO`CF=K$I_XJ'v+.vTv5ṑS"(xCXpS'J!G	2 oSdy,fߞE\L h}W#\oz r  )r   start_offsetr   s  ] bXn䴝o
2h\6(wd"u.n򎍏/=/Mާz-]rZo#z/FMt6 BF$Ql,bnԨNȆ3x2O@Q /OozSt<I#ud6Y]-Pee:	7
pJV%G=?(΂=I3RisPX2jLbc-HoJliQk?@xH12Puw㾪iWЀ#cb5]dWlUGyF7v5h8W5:?rD5@7cԗitSkKvy6Te]:kla4r}r*z8hӼl-KZL3Ϝ!^9w PPKdZ}%$/&,qh{Q)qÀo![Ԋwt`^??\RԎXaЫS>ɕH	%$.oRbU^S/vr̢GkzʀЋIxy-0z^֏_Pi萄ܿky܁+\YYhw̴ |ejz`A叩	=_%voZO	M-<"CMg~b|'x!JFu 87yu_@qc#5)_3]o]5myK+ b t0ȏ׮+iܹk>f${pƈ0_h6Z%'
"冟7X=mNX[FUɆ0a+* _$_ޯ46qɒ`}ʮ`wجVeZ#d{wB:^VaH
\Xu#%*v!	4   r	  @   )r   r   r  s  \ bWh'֐,vJq lxBf=&fx
>TnFv_?V<#w؞*]c~]Eg"8=~WDǙ1u9hw|lk6o7{Y_b$=wZ@kmE*ح{j,)mB<ca( -c'B`װ]Bܖ6DՃ1&5 PZ&jŏSӥu$̗oV~xWp4HDY)t"Fߥ"xȒ
[l*Yر@o7ru5$U{	}QxNXX`v-f/\)Bg#2B2444q	93?mPXa)djw2A\C3!o[:0.@\4Jv4kkfss^ea=&rpEՀykTHoŌ0-e\>k	!^qA<EG񶹂sa̒ҶUنaTG@	7*޼]6N񄞟'<ߙsqН%p4{=MH:֤0DӨS `W 7N#	1al	jA:\=D3]eZAdgFQqBro仴@dQ
/ظS5:gDzڐ5H!	uRlQOb	RA -IGE$jѪI2s53D0%P}JO^hlV.owඤ*rG+i[w@_yW.-mU6gSA(=ޒ,DnE\Yˌ~EuVƙm<[u1
w%![·B,%df"g.3XY+4qA
=9*/s1b@FQ\ ,E7[!mA}3R5FH)ccнn{IJB`w&`}@Oxe	|eg@Y88NJ!qqWk*7Jmq
:`.+)ހXQmcPA'ɬ)tZR`]gRFTHS<PeJ^[c~']A,K{MxQ3=a9a2sbE"dDIJ!dGm_rNBqPΧeP!|6ͿIirejPqwS7hMʆ?P}y~I<Q8ߔ>rkv⹊qIs"㩥>D;33'e.;HqW~2x
6	;j[-%@2\ǯ¡Oth_A_W&D܅;X,>-7S)pQBLdsuȕ*)v{FWlj s  ]  @ h3        `DѻZ^3+g-1F%-ps8,|*xТb!cهUn VJ"8%_`?@*^&gɯ'}FN\Mz-˚O@gƥwnG'GIrυy[/_MQ+xF]&,fHgrvqxYF9'Fd<\kai C"4)֧`y|jX!Nǅjv]c5ՙi^Gl:,'4$Ywkkņ>~G5]0dw#(3ʡbXr+m3qŞ*6s-r?CgJN'M
Q
`mNql:qGT!0~4J827At]5MK,j7(l2ڕ(0BhpJ	go??}όV:вkk=Ǎ/`.X*~j";V`t0d)}\bJ
+V!ޘK7`ā~؍mY)/Pm[zZӋPf0ЕJ{Wope]ڷ5<g!̱\72Mc350L-˖Uʰ̉*P.~9o?}P
;m|#03<^HiֳTFq}&ĮΜU̶drwNzsRl5^eVYٟ*Ĩ6+ֈ[_rcfx|~L/ۘCiOt<Q`%5k
7I<#)&C`!˩FMuʕebXa[BOf;Crbٜi]<zT9pFPw堔a q&Wo5q8t4-H	dQJ s."pNg}|d3X[E+WvG/I<L\1O{mW~^@D@A9;BOutNJ5ZO6[7o*[ɷa'uq+y aMļ0'pQHK=nFOY0	|Py~h0d[ _vcI3`WyrkBiŊ^ԁ>"v`$^2.dd@Y|j}riVX4rBNPS[I(;9|^0;.*[l_Xf!43D{t]5Ufb
,Q	@<,-3 7	K7*X~Okz"3sL;^⽪Zfڦ:]}a?5M
}M2Yo īTU"unA̐i~4*JtuוZG~ST,C`2>Qśhu bVKc ޅ-:*;`ݗgS}5e7/!Y'C(bTD_E֘{\fz9˥bqW!;z~is+5k htUޣˆj
C?0Jj;0d#;c&8?Jncb4lhnZe,B-c|&LL86bViF̎4/^W?܄(dOD64,SJc^0	D[憰n^븸)a @+/h3`+P-Bn^/w<M!EY<٦Bǃ"D|&d`70o喤v;]'hA&9~@t<4)=:&6A+ <k\dv^l5C?ԠMCȀ3BPjyzE[oT'*HM7f;'wM 帷 D+PgnkcƐVUovfZ3^翬vxJjn*o>_+D{sHAGݭ7q+Wg"X~4`q)KsV5s*;{<@GjLؒ&	u5]\A|ICeQ*~uXyP
fZEu>'`cZ8jUoe>Rb#H-!ޝkw{/K)A:UM̻{9 ((6iu؞q7-BQ8vACd!'ͮؓިb2K l	|DU>w7}W|g|1 m@6+	D Mҵ'~Co	fI1φ`͂wcdCUEMJH=*I"^S6=@,Gr[>n<(}~4stff	/)
ײwQnsƷ(G<6[~H ~:e(_(c̟gvS=S>
YRGAOdcPܟ"[Q~䈡#CϾHؾmWFQ(XDKB.-՞|N]Z=)MLTiN?4O&u70ؓBNEyϘDʚL_]ܩ1 cؿp-N(#2Ilr __main__)7r  rr  ior   r   r   r  r   r   r   r   testr   ZunittestZtest.supportr   r   Ztest.support.import_helperr   Ztest.support.os_helperr	   r
   r   r   r   r   r   ZTestCaser   r   r   r   rv  r  rL   r   rA   rE   r)   r+   r[   r=   PRESET_DEFAULTPRESET_EXTREMEr^   r_   FILTER_IA64ra   rb   r>   rd   re   ro  r   mainr   r   r   r6   <module>   s|      l      Ix<@0,
.

>
-
D 