gug&SSKJr SSKJrJr SSKrSSKrSSKrSSKJrJ r SSK r SSK r SSK r SSK r SSKrSSKrSSKrSSKrSSKJr SSKJr SSKJrJr SSKrSSKr\R2"S5rSS KJrJrJr SqS r"S S \R@5r!"S S\!5r""SS\!5r#"SS\!5r$"SS\!5r%"SS\!5r&Sr'\(S:Xa\RR"5 gg))support) bigmemtest_4GN)BytesIODEFAULT_BUFFER_SIZE) import_helper)threading_helper)unlinkFakePathbz2)BZ2File BZ2CompressorBZ2Decompressorc[c[[R"S55q[(a[R "S/US9$[ RU5$)Nbunzip2)input)has_cmdline_bunzip2boolshutilwhich subprocess check_outputr decompress)datas 4/opt/alt/python313/lib64/python3.13/test/test_bz2.pyext_decompressrsF""6<< #:;&& {$??~~d##c \rSrSr/SQrSR \5rSrSrSr Sr \ "S5r \ R"\RR \ R "\RR#\55S 55H:r\"\S 5r\ \R-\"\ 5\ S 5- r S S S 5 \ S:dM: O \R3\ S S 9rSrSrSrg !,(df  N3=f)BaseTest&)s root:x:0:0:root:/root:/bin/bash sbin:x:1:1:bin:/bin: sdaemon:x:2:2:daemon:/sbin: sadm:x:3:4:adm:/var/adm: slp:x:4:7:lp:/var/spool/lpd: s sync:x:5:0:sync:/sbin:/bin/sync s-shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown s!halt:x:7:0:halt:/sbin:/sbin/halt s"mail:x:8:12:mail:/var/spool/mail: s"news:x:9:13:news:/var/spool/news: s#uucp:x:10:14:uucp:/var/spool/uucp: s operator:x:11:0:operator:/root: s!games:x:12:100:games:/usr/games: s,gopher:x:13:30:gopher:/usr/lib/gopher-data: s(ftp:x:14:50:FTP User:/var/ftp:/bin/bash s#nobody:x:65534:65534:Nobody:/home: s.postfix:x:100:101:postfix:/var/spool/postfix: s-niemeyer:x:500:500::/home/niemeyer:/bin/bash s>postgres:x:101:102:PostgreSQL Server:/var/lib/pgsql:/bin/bash s6mysql:x:102:103:MySQL server:/var/lib/mysql:/bin/bash s#www:x:103:104::/var/www:/bin/false rsBZh91AY&SY.N>_@n?0F#&FЦMQ4hh$i44S9gd6 Պ.Kvxwߡ|/";ձ#Aoy\O煚f82"%>V,z⟣"E)I^rU26U0^DFݸankR3]f"6l$j@l1..klsE knQ%yvz̹zn7.G]B@!8`sBZh9rE8Psthis is not a valid bzip2 fileriz*.pyrbN compresslevelch[R"5uol[R"U5 gN)tempfilemkstempfilenameosclose)selffds rsetUpBaseTest.setUpRs $,,.M  rc.[UR5 gr&)r r)r,s rtearDownBaseTest.tearDownVst}}r)r))__name__ __module__ __qualname____firstlineno__ TEXT_LINESjoinTEXTDATA EMPTY_DATABAD_DATA test_size bytearrayBIG_TEXTglobr*pathescapedirname__file__fnameopenfhreadinto memoryviewr compressBIG_DATAr.r2__static_attributes__rrrr&s J. 88J D ^D4J0H I"H277<< BGGOOH4M(NPVWX % " Z%9)*%EF FI x   Y ||HA|6H s C C& rc\rSrSrSDSjrSrSrSrSrSr Sr S r S r S r S rS rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!S r"S!r#S"r$S#r%S$r&S%r'S&r(S'r)S(r*S)r+S*r,S+r-S,r.S-r/S.r0S/r1S0r2\3Rh"5S15r5S2r6S3r7S4r8S5r9S6r:S7r;S8rS;r?S<r@S=rAS>rBS?rCS@rDSArESBrFgC)E BZ2FileTestZc[URS5nURURU-5 URU5 SSS5 g!,(df  g=f)Nwb)rGr)writer;)r,streamssuffixfs rcreateTempFileBZ2FileTest.createTempFile]s> $-- &! GGDII' ( GGFO' & &s 0A Ac,UR[[S5 UR[[[R S5 UR[[[R S5 UR[[[R S5 UR[[[R SS9 UR[[[R SS9 UR[[[R SS 5 g) Ngw/^@zrxrbtrr# r) assertRaises TypeErrorr ValueErrorr*devnullr1s r testBadArgsBZ2FileTest.testBadArgsbs )Wg6 *grzz3? *grzz4@ *grzz5A *grzzK *grzzL )Wbjj#qArc(UR5 [UR5nUR[UR [ 55 URUR 5UR5 SSS5 g!,(df  g=fr& rXr r)rarbreadfloat assertEqualr:r,bz2fs rtestReadBZ2FileTest.testReadmsZ  T]] #t   iEG <   TYY[$)) 4$ # #s AB BcURSURS9 [UR5nUR [ UR 5 SSS5 g!,(df  g=f)NrrUrV)rXr=r r)raOSErrorrirls rtestReadBadFileBZ2FileTest.testReadBadFilessG Admm< T]] #t   gtyy 1$ # #s !A A(c,URSS9 [UR5nUR[UR [ 55 URUR 5URS-5 SSS5 g!,(df  g=fNrUrhrls rtestReadMultiStreamBZ2FileTest.testReadMultiStreamxsc A& T]] #t   iEG <   TYY[$))a- 8$ # #s AB Bc[Rn[UR5[lUR SS9 [ UR 5nUR[UR[55 URUR5URS-5 SSS5 U[lg!,(df  N=f!U[lf=frv) _compression BUFFER_SIZElenr;rXr r)rarbrirjrkr:)r, buffer_sizerms rtestReadMonkeyMultiStream%BZ2FileTest.testReadMonkeyMultiStream~s#.. #&tyy>   3     *'4!!)TYY@  dii!m<((3L $ ('(3L $s$$CAB?+C? C  C CcURURS9 [UR5nUR UR 5UR 5 SSS5 g!,(df  g=f)N)rVrXr=r r)rkrir:rls rtestReadTrailingJunk BZ2FileTest.testReadTrailingJunksK 4==1 T]] #t   TYY[$)) 4$ # #s +A## A1cURSURS9 [UR5nUR UR 5UR S-5 SSS5 g!,(df  g=f)Nrwrqrrls rtestReadMultiStreamTrailingJunk+BZ2FileTest.testReadMultiStreamTrailingJunksQ Admm< T]] #t   TYY[$))a- 8$ # #s .A'' A5cUR5 [UR5nUR[UR [ 55 URUR S5S5 SSS5 g!,(df  g=f)Nrr)rXr r)rarbrirjrkrls r testRead0BZ2FileTest.testRead0sX  T]] #t   iEG <   TYYq\3 /$ # #s A A:: BcUR5 [UR5nSnURS5nU(dOX#- nMUR X R 5 SSS5 g!,(df  g=f)Nrr^rXr r)rirkr:r,rmtextstrs rtestReadChunk10BZ2FileTest.testReadChunk10sc  T]] #tDiim     T99 -$ # #s >A-- A;cURSS9 [UR5nSnURS5nU(dOX#- nMUR X R S-5 SSS5 g!,(df  g=f)Nrwrxrr^rrs rtestReadChunk10MultiStream&BZ2FileTest.testReadChunk10MultiStreamsl A& T]] #tDiim     T99q= 1$ # #s AA// A=cUR5 [UR5nURUR S5UR SS5 SSS5 g!,(df  g=f)Nd)rXr r)rkrir:rls r testRead100BZ2FileTest.testRead100sJ  T]] #t   TYYs^TYYt_ =$ # # /A A,cUR5 [UR5nUR5nUR [ U5S5 UR URRU55 URUR5UR5 SSS5 g!,(df  g=fNr) rXr r)peekassertNotEqualr~ assertTruer: startswithrkri)r,rmpdatas rtestPeekBZ2FileTest.testPeeks|  T]] #tIIKE   E A . OODII007 8   TYY[$)) 4 $ # #s BB// B=cUR5 [UR5nSn[U5nUR UR U5U5 UR X0R SU5 [UR 5U- n[[UR 55nUR UR U5U5 UR USUUR U*S5 SSS5 g!,(df  g=f)N)rXr r)r?rkrIr:r~)r,rmnbs r testReadIntoBZ2FileTest.testReadIntos  T]] #tA! A   T]]1-q 1   Q "1 .DII"A#dii.)A   T]]1-q 1   QrUDIIqbcN 3$ # #s CC66 Dc*UR5 [UR5nUR[UR S5 UR H#nURUR 5U5 M% SSS5 g!,(df  g=fr&rXr r)rarbreadliner8rkr,rmlines r testReadLineBZ2FileTest.testReadLinesb  T]] #t   i =  $7($ # #s AB Bc.URSS9 [UR5nUR[UR S5 UR S-H#nURUR 5U5 M% SSS5 g!,(df  g=frvrrs rtestReadLineMultiStream#BZ2FileTest.testReadLineMultiStreamsl A& T]] #t   i =!+  $7,$ # #s AB BcUR5 [UR5nUR[UR S5 UR UR 5UR5 SSS5 g!,(df  g=fr&rXr r)rarb readlinesrkr8rls r testReadLinesBZ2FileTest.testReadLinessY  T]] #t   i >   T^^-t ?$ # #s A A;; B cURSS9 [UR5nUR[UR S5 UR UR 5URS-5 SSS5 g!,(df  g=frvrrls rtestReadLinesMultiStream$BZ2FileTest.testReadLinesMultiStreamsc A& T]] #t   i >   T^^-t/B C$ # #s AA== B cUR5 [UR5nUR[ [ U55UR 5 SSS5 g!,(df  g=fr&rXr r)rklistiterr8rls r testIteratorBZ2FileTest.testIteratorsE  T]] #t   T$t*-t ?$ # #rcURSS9 [UR5nUR[ [ U55UR S-5 SSS5 g!,(df  g=frvrrls rtestIteratorMultiStream#BZ2FileTest.testIteratorMultiStreamsO A& T]] #t   T$t*-t/B C$ # #s 2A  A.cUR5 [UR5nUR5 UR [ [ U5 UR [ UR5 gr&)rXr r)r+rarcnextrrls rtestClosedIteratorDeadlock&BZ2FileTest.testClosedIteratorDeadlocksK t}}%  *dD1 *dnn5rc[URS5nUR[UR5 UR UR 5 SSS5 [ URS5nUR[UR55UR 5 SSS5 g!,(df  Na=f!,(df  g=f)Nwr! r r)rarbrTr:rGrkrrir,rmrWs r testWriteBZ2FileTest.testWrites T]]C (D   i 4 JJtyy !)$-- &!   ^AFFH5tyy A' &) (' &UR5 [UR5nUR[UR 5 UR S5 UR UR5URSS5 SSS5 g!,(df  g=fN) rXr r)rarbseekrkrir:rls rtestSeekForwardBZ2FileTest.testSeekForward-sg  T]] #t   i 3 IIcN   TYY[$))CD/ :$ # #s AB BchURSS9 [UR5nUR[UR 5 UR [ UR5S-5 URUR5URSS5 SSS5 g!,(df  g=f)Nrrxr) rXr r)rarbrr~r:rkrirls rtestSeekForwardAcrossStreams(BZ2FileTest.testSeekForwardAcrossStreams4sz A& T]] #t   i 3 IIc$))ns* +   TYY[$))CD/ :$ # #s A5B## B1c"UR5 [UR5nURS5 UR SS5 UR UR5UR SS5 SSS5 g!,(df  g=fNijr"i^)rXr r)rirrkr:rls rtestSeekBackwardsBZ2FileTest.testSeekBackwards;sb  T]] #t IIcN IIdA    TYY[$))GH*= >$ # #s AB BcURSS9 [UR5n[UR5S-nUS:a%U[UR U55-nUS:aM%UR SS5 URUR 5URSSUR-5 SSS5 g!,(df  g=f)Nrrxrrrr"i)rXr r)r~r:rirrk)r,rmreadtos rtestSeekBackwardsAcrossStreams*BZ2FileTest.testSeekBackwardsAcrossStreamsBs A& T]] #t^c)F1*#dii/001* IIdA    TYY[$))GH*= *I J $ # #sAB>)A B>> C c,UR5 [UR5nURSS5 UR UR 5UR [UR 5S- S5 SSS5 g!,(df  g=f)Nrrr)rXr r)rrkrir:r~rls rtestSeekBackwardsFromEnd$BZ2FileTest.testSeekBackwardsFromEndKse  T]] #t IIdA    TYY[$))C N34F4G*H I$ # #s AB BcURSS9 [UR5nURSS5 UR UR 5UR S-SS5 SSS5 g!,(df  g=f)Nrrxi)rXr r)rrkrir:rls r%testSeekBackwardsFromEndAcrossStreams1BZ2FileTest.testSeekBackwardsFromEndAcrossStreamsQs` A& T]] #t IIeQ    TYY[499q=%&*A B$ # #s AA11 A?cJUR5 [UR5nURS5 UR UR 5[ UR55 UR UR5S5 SSS5 g!,(df  g=fNIr rXr r)rrktellr~r:rirls rtestSeekPostEndBZ2FileTest.testSeekPostEndWsh  T]] #t IIf    TYY[#dii. 9   TYY[# .$ # #s A%B B"cNURSS9 [UR5nURS5 UR UR 5[ UR5S-5 UR UR5S5 SSS5 g!,(df  g=fNrwrxrrrrls rtestSeekPostEndMultiStream&BZ2FileTest.testSeekPostEndMultiStream^sr A& T]] #t IIf    TYY[#dii.1*< =   TYY[# .$ # #s A(B B$clUR5 [UR5nURS5 URS5 UR UR 5[ UR55 UR UR5S5 SSS5 g!,(df  g=frrrls rtestSeekPostEndTwice BZ2FileTest.testSeekPostEndTwiceest  T]] #t IIf  IIf    TYY[#dii. 9   TYY[# . $ # #s A6B%% B3cpURSS9 [UR5nURS5 URS5 UR UR 5[ UR5S-5 UR UR5S5 SSS5 g!,(df  g=frrrls rtestSeekPostEndTwiceMultiStream+BZ2FileTest.testSeekPostEndTwiceMultiStreamms~ A& T]] #t IIf  IIf    TYY[#dii.1*< =   TYY[# . $ # #s A9B'' B5c8UR5 [UR5nURS5 UR UR 5S5 UR UR 5UR5 SSS5 g!,(df  g=f)NrrrXr r)rrkrrir:rls rtestSeekPreStartBZ2FileTest.testSeekPreStartusc  T]] #t IIdO   TYY[! ,   TYY[$)) 4$ # #s AB  Bc<URSS9 [UR5nURS5 UR UR 5S5 UR UR 5URS-5 SSS5 g!,(df  g=f)Nrrxrrrrls rtestSeekPreStartMultiStream'BZ2FileTest.testSeekPreStartMultiStream|sl A& T]] #t IIdO   TYY[! ,   TYY[$))a- 8$ # #s AB  BcUR5 [URS5n[U5nUR UR 5UR 55 UR 5 SSS5 UR[WR 5 g!UR 5 f=f!,(df  ND=fNr!) rXrGr)r rkfilenor+rarc)r,rawfrms r testFilenoBZ2FileTest.testFilenos  $-- &$4=D    > ' *dkk2 ' &s" B1.B"B1B..B11 B?ct[[UR55nURUR 55 UR 5 URUR 55 UR 5 UR[UR5 [[5S5nURUR 55 UR 5 UR[UR5 [UR5nSUl[U5nURUR 55 UR 5 UR[UR5 g!UR 5 f=f!UR 5 f=f!UR 5 f=f)Nrcg)NFrNrNrr*BZ2FileTest.testSeekable..sur) r rr;rseekablerir+rarc assertFalse)r,rmsrcs r testSeekableBZ2FileTest.testSeekables!wtyy)*  OODMMO , IIK OODMMO , JJL *dmm4wy#&    T]]_ - JJL *dmm4dii $ s|    T]]_ - JJL *dmm4# JJL JJL JJLs$AE;3F+F%;F F"%F7cZ[[UR55nURUR 55 UR 5 URUR 55 UR 5 UR[UR5 [[5S5nURUR 55 UR 5 UR[UR5 g!UR 5 f=f!UR 5 f=fNr) r rr;rreadablerir+rarcrrls r testReadableBZ2FileTest.testReadableswtyy)*  OODMMO , IIK OODMMO , JJL *dmm4wy#&    T]]_ - JJL *dmm4 JJL JJLAD3DDD*cZ[[UR55nURUR 55 UR 5 URUR 55 UR 5 UR[UR5 [[5S5nURUR 55 UR 5 UR[UR5 g!UR 5 f=f!UR 5 f=fr$) r rr;rwritablerir+rarcrrls r testWritableBZ2FileTest.testWritableswtyy)*    T]]_ - IIK   T]]_ - JJL *dmm4wy#&  OODMMO , JJL *dmm4 JJL JJLr(ctUR5 [S5Hn[UR5nAM g)Ni')rXranger r))r,ios r testOpenDelBZ2FileTest.testOpenDels- uA &Arc:UR[[S5 g)Nz /non/existent)rarrr r1s rtestOpenNonexistentBZ2FileTest.testOpenNonexistents '7O[S5HnTRT5 M gNrw)r.rT)r/rrWs rcomp'BZ2FileTest.testThreading..compsqAGGDM"r)target)r r)r. threadingThreadr start_threads)r,nthreadsrEr/threadsrrWs @@r testThreadingBZ2FileTest.testThreadingse| T]]D )Q "?DHoNoy''t4oGN!//89 * )O88 * )s4BA>B+B-B>B B B B"cUR5 [URS5nUS-n[UR5nUR U5 UR [U5URSUS5 UR UR 5URUS5 SSS5 [UR5nUR5 UR [U5URS5 UR UR5URS5 SSS5 [UR5nUR5 UR[[U5 UR UR5/5 SSS5 g!,(df  N=f!,(df  N=f!,(df  g=f)Nrrr") rXr~r8r r)rirkrr:rrra StopIteration)r,linelenhalflenrms rtestMixedIterationAndReads&BZ2FileTest.testMixedIterationAndReadssN dooa()Q, T]] #t IIg    T$Z);GH)E F   TYY[$))GH*= >$T]] #t MMO   T$Z); <   T]]_dooa.@ A$T]] #t NN    mT4 8   T^^-r 2$ #$ #$ #$ #s'A*F" A&F3 A G" F03 G GcSnSn[URS5nURU5 SSS5 [URS5nURU5 SSS5 [UR5nURUR 5X-5 SSS5 g!,(df  N=f!,(df  N`=f!,(df  g=f)Ns foofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoos barbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarrr)r r)rTrkri)r,data1data2rms rtestMultiStreamOrdering#BZ2FileTest.testMultiStreamOrderings T]]C (D JJu ) T]]C (D JJu ) T]] #t   TYY[%- 8$ # ) ( ( ( # #s#B& B7:#C& B47 C Cc [URS5nURS5 URURUR5 UR UR 5[5 URURS5 URUR5S5 URUR5S5 URUR5S5 URURS5 SSS5 URWRS5 UR[5 UR SSS5 UR[UR 5 URURS5 UR[UR5 UR[UR5 UR[UR5 [URS5nURS5 URURUR5 UR UR 5[5 URURS5 URUR5S5 URUR5S5 URUR5S5 URURS5 SSS5 URURS5 UR[5 UR SSS5 UR[UR 5 URURS5 UR[UR5 UR[UR5 UR[UR5 [URS5nURUR!5S5 URURUR5 UR UR 5[5 URURS5 URUR5S5 URUR5S5 URUR5S5 URURS5 SSS5 URURS5 UR[5 UR SSS5 UR[UR 5 URURS5 UR[UR5 UR[UR5 UR[UR5 g!,(df  GN=f!,(df  GN=f!,(df  GN=f!,(df  GN=f!,(df  GN:=f!,(df  GN=f NrScontentFTabappendixr!contentappendix)r r)rTrknameassertIsInstancerintmodeassertIsr%r*rclosedrarcrir>s rtestOpenFilenameBZ2FileTest.testOpenFilenames  T]]D )Q GGJ    QVVT]] 3  ! !!((*c 2   QVVT * MM!**, . MM!**, - MM!**, . MM!((E ** ahh%   z * FF+ *ahh/ & *ajj1 *ajj1 *ajj1 T]]D )Q GGK   QVVT]] 3  ! !!((*c 2   QVVT * MM!**, . MM!**, - MM!**, . MM!((E ** ahh%   z * FF+ *ahh/ & *ajj1 *ajj1 *ajj1 T]]D )Q   QVVX'9 :   QVVT]] 3  ! !!((*c 2   QVVT * MM!**, - MM!**, . MM!**, - MM!((E ** ahh%   z * FF+ *ahh/ & *ajj1 *ajj1 *ajj1i* )+ ** )+ ** )+ *sJC4W- W? C4X8 X#?DX5; Y- W<? X X # X25 Y Yc [URS5n[US5nURS5 UR UR UR 5 UR UR 5UR 55 UR URS5 URUR5S5 URUR5S5 URUR5S5 URURS5 SSS5 URWRS5 UR[5 UR SSS5 UR[UR 5 UR URS5 UR[UR5 UR[UR5 UR[UR5 SSS5 [URS5n[US5nURS5 UR UR UR 5 UR UR 5UR 55 UR URS5 URUR5S5 URUR5S5 URUR5S5 URURS5 SSS5 URWRS5 UR[5 UR SSS5 UR[UR 5 UR URS5 UR[UR5 UR[UR5 UR[UR5 SSS5 [URS5n[US5nUR UR5S5 UR UR UR 5 UR UR 5UR 55 UR URS5 URUR5S5 URUR5S5 URUR5S5 URURS5 SSS5 URWRS5 UR[5 UR SSS5 UR[UR 5 UR URS5 UR[UR5 UR[UR5 UR[UR5 SSS5 g!,(df  GN/=f!,(df  GN=f!,(df  GNi=f!,(df  GNR=f!,(df  GN=f!,(df  GN=f!,(df  GNf=f!,(df  GN2=f!,(df  g=fr[)rGr)r rTrkr`rrcrdr%r*rrerarcri)r,rawrWs rtestOpenFileWithName BZ2FileTest.testOpenFileWithNameRst $-- &#d#q #  2  SZZ\:  . ajjlE2 ajjlD1 ajjlE2 ahh.$ MM!((D )"":./   j!(( 3   QVVT *   j!** 5   j!** 5   j!** 5#'&$-- &#d#q $  2  SZZ\:  . ajjlE2 ajjlD1 ajjlE2 ahh.$ MM!((D )"":./   j!(( 3   QVVT *   j!** 5   j!** 5   j!** 5#'&$-- &#d#q  +=>  2  SZZ\:  . ajjlD1 ajjlE2 ajjlD1 ahh.$ MM!((D )"":./   j!(( 3   QVVT *   j!** 5   j!** 5   j!** 5#' &K$#/.' &($#/.' &($#/.' &s Y.C>Y "9Y. Y(B$Y.* Z$7C>Z59Z$. Z;B$Z$= [ D Z69[ [B$[ Y Y. Y+ &Y.. Y= Z Z$ Z! Z$$ Z36 [ [ [ [ [(c[5n[US5nURS5 UR[5 UR SSS5 UR[ RUR5 URURS5 SSS5 UR[5 WR SSS5 UR[WR5 [US5nURS5 UR[5 UR SSS5 UR[ RUR5 URURS5 SSS5 UR[5 UR SSS5 UR[UR5 URS5 [US5nURUR5S5 UR[5 UR SSS5 UR[ RUR5 URURS5 SSS5 UR[5 UR SSS5 UR[UR5 g!,(df  GN=f!,(df  GNL=f!,(df  GN4=f!,(df  GN=f!,(df  GN=f!,(df  GN=f!,(df  GN=f!,(df  N=f!,(df  N=f)NrSr\r]r^rr!r_)rr rTraAttributeErrorr`ioUnsupportedOperationrrkrcrcrri)r,biorWs rtestOpenFileWithoutName#BZ2FileTest.testOpenFileWithoutNames/i S$ 1 GGJ "">23   b55qxx @   QVVT *    z * FF+ *ahh/ S$ 1 GGK "">23   b55qxx @   QVVT *    z * FF+ *ahh/  S$ 1   QVVX'9 :"">23   b55qxx @   QVVT *    z * FF+ *ahh/732  + * 32  + *32  + *s'K K  AK6 K07'L L+AL L&(6M  L8+AM  M K K K-0 K? L L L#& L58 M M  M M)c[R"UR[R[R-[R -5n[US5n[ US5nURS5 URURUR5 URUR5UR55 URURS5 SSS5 UR[5 WR SSS5 UR[WR5 SSS5 [R"UR[R[R-[R-5n[US5n[ US5nURS5 URURUR5 URUR5UR55 URURS5 SSS5 UR[5 WR SSS5 UR[WR5 SSS5 [R"UR[R5n[US5n[ US5nURUR!5S5 URURUR5 URUR5UR55 URURS5 SSS5 UR[5 WR SSS5 UR[WR5 SSS5 g!,(df  GN=f!,(df  GN=f!,(df  GN=f!,(df  GN=f!,(df  GN=f!,(df  GN=f!,(df  N=f!,(df  N=f!,(df  g=f)NrSr\r]r^r!r_)r*rGr)O_WRONLYO_CREATO_TRUNCr rTrkr`rrcrarcO_APPENDO_RDONLYri)r,r-rirWs rtestOpenFileWithIntName#BZ2FileTest.testOpenFileWithIntNames WWT]]BKK"**$  2  SZZ\:  . $ "":./   j!(( 3^+$# /. ^$# /. ^$# /. ^s O%+BO-O% O(O%$ P1BO73P P (P QBP-&Q P>(Q O O% O" O%% O47 P P P P P*- P; 7Q> Q Q QcURn[R"U5n[US5nUR UR 5 UR URU5 SSS5 [US5nUR UR5UR 5 UR URU5 SSS5 [US5nUR UR5UR 5 UR URU5 SSS5 g!,(df  N=f!,(df  N{=f!,(df  g=fNrSr!) r)r*fsencoder rTr;rkr`ri)r, str_filenamebytes_filenamerWs rtestOpenBytesFilename!BZ2FileTest.testOpenBytesFilenames}} \2 ^T *a GGDII    QVV^ 4+^T *a   QVVXtyy 1   QVV^ 4+\4 (A   QVVXtyy 1   QVV\ 2) (+ *+ *) (s%8D&;AD7AE& D47 E Ec[UR5n[US5nURUR5 UR UR UR5 SSS5 [US5nUR UR5UR5 UR UR UR5 SSS5 g!,(df  Nt=f!,(df  g=fr|)r r)r rTr;rkr`ri)r,r)rWs rtestOpenPathLikeFilename$BZ2FileTest.testOpenPathLikeFilenamesDMM* Xt $ GGDII    QVVT]] 3%Xt $   QVVXtyy 1   QVVT]] 3% $% $% $sAC8AC# C # C1c|[RS[S5-SS9nUR[ U5[ R 5 [[U55nURURS5S5 S[-nURURRR5US5 g)Ng>A r#r"z)Excessive amount of data was decompressed)r rKrb assertLessr~r|r}r rrkrirassertLessEqual_bufferrir)r,bombdecomp max_decomps rtestDecompressLimited!BZ2FileTest.testDecompressLimiteds||ECH,A|> D <#;#;<' Q/,,  V^^//446 7 9rc>[UR5n[U5nUR[UR [ 55 URUR 5UR5 UR[5 [R SSS5 URURS5 SSS5 URUR5 SSS5 g!,(df  NV=f!,(df  NC=f!,(df  g=fr)rr;r rarbrirjrkr:rmr r`rcrrer,rprms rtestReadBytesIOBZ2FileTest.testReadBytesIOs TYY 3!!)TYY@  dii8&&~6HH7  D1    SZZ ( 76 s; DA)C= C,$C=#D, C: 6C== D D Dc[UR5n[U5nUR5nUR [ U5S5 UR URRU55 URUR5UR5 SSS5 SSS5 g!,(df  N=f!,(df  g=fr) rr;r rrr~rr:rrkri)r,rprmrs rtestPeekBytesIOBZ2FileTest.testPeekBytesIOs TYY 3 ##CJ2 4 4U ;<  dii8   s# CBB3"C3 C =C Cc`[5n[US5nUR[UR5 UR UR 5 UR[ 5 [R SSS5 URURS5 SSS5 UR[UR55UR 5 URUR5 SSS5 g!,(df  N=f!,(df  Nv=f!,(df  g=f)NrrS)rr rarbrTr:rmr r`rkrcrgetvaluerrers rtestWriteBytesIOBZ2FileTest.testWriteBytesIOs Y#c"d!!)TZZ8 499%&&~6HH7  D1 #   ^CLLN;TYY G   SZZ (Y76#"Ys< DAD)C=:$DAD= D D D D D-ch[UR5n[U5nUR[UR 5 UR S5 UR UR5URSS5 SSS5 SSS5 g!,(df  N=f!,(df  g=fr) rr;r rarbrrkrir:rs rtestSeekForwardBytesIO"BZ2FileTest.testSeekForwardBytesIOst TYY 3!!)TYY7 #  diio>  s# B#ABB# B B## B1cL[UR5n[U5nURS5 UR SS5 UR UR5UR SS5 SSS5 SSS5 g!,(df  N=f!,(df  g=fr)rr;r rirrkr:rs rtestSeekBackwardsBytesIO$BZ2FileTest.testSeekBackwardsBytesIOso TYY 3 # $"  dii.AB  s# BAB3B B B B#cURSSn[[U55nUR[UR 5 SSS5 [[U55nUR UR [UR55UR5 UR[UR S5 SSS5 [S5HDn[[USU55nUR[UR S5 SSS5 MF g!,(df  N=f!,(df  Ns=f!,(df  Mz=f)Nr") r;r rraEOFErrorrirkr~r:r.)r, truncatedrWr/s rtest_read_truncatedBZ2FileTest.test_read_truncatedsIIdsO WY' (A   h /) WY' (A   QVVC N3TYY ?   h 2)rA2A/0A!!(AFFA610 ) ( ( ( 10s$!D!A D.."D? D+. D<? E cD[R"S/SQ5n[U5UR-n[[ 5S5nUR UR U5U5 UR UR5U5 SSS5 g!,(df  g=f)NQ)r"rr`rwr)arrayr~itemsizer rrkrTr)r,qLENGTHrWs rtest_issue44439BZ2FileTest.test_issue44439,sl KK_ -Q!**$ WY $   QWWQZ 0   QVVXv .% $ $s AB BrNN)r"r)Gr4r5r6r7rXrernrsryrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rrrr!r&r+r1r4r9r?r requires_working_threadingrMrSrXrfrjrqryrrrrrrrrrrrMrNrrrPrPZsl B5 2 9 35 9 0 . 2> 5 488@ D @ D 6B B1B@F;;?KJ C ////593545"5" = ,7(002 3 3" 952n86t0B 4D 34 9)9 )?C 7/rrPcj\rSrSrSrSrSr\R\ "\ S-SS9S55r S r S r g ) BZ2CompressorTesti5c[5nUR[UR5 URUR5nX!R 5- nUR [U5UR5 gr&)rrarbrKr:flushrkrr,bz2crs r testCompressBZ2CompressorTest.testCompress6sV )T]]3}}TYY'  -tyy9rc[5nURS5nX!R5- nURX R5 gNr)rrKrrkr<rs rtestCompressEmptyString)BZ2CompressorTest.testCompressEmptyString=s7}}S!  /rc[5nSnSnURUS-US-S-nU(dOX1RU5- nUS- nM:X1R5- nUR [ U5UR5 g)Nrrr^r")rr:rKrrkr)r,rrrrs rtestCompressChunks10&BZ2CompressorTest.testCompressChunks10Cs ))AbD!A#r*C MM#& &D FA   -tyy9rrrsizememusecD[5nSU-nURU5nXBR5- nSn[R U5nUR [ U5U5 UR [ URS55S5 Sng!Snf=f!Snf=f)Nxr)rrKrr rrkr~strip)r,rrr compresseds rtestCompress4G BZ2CompressorTest.testCompress4GPsd{ t,J **, &JD~~j)    SY -   SD!12A 6D D Ds#B ABBBc[[RS-5H@nUR[5 [R "[ 5U5 SSS5 MB g!,(df  MT=fNr")r.pickleHIGHEST_PROTOCOLrarbdumpsrr,protos r testPickleBZ2CompressorTest.testPicklebsI622Q67E""9- ]_e4.-8-- A"" A1 rNN)r4r5r6r7rrrrskip_if_pgo_taskrrrrrMrNrrrr5sC:0 : S3Yq)* 5rrc\rSrSrSrSrSrSrSr\ R\ "\ S-SS 9S 55r S rS rS rSrSrSr\ R(S5rSrSrg)BZ2DecompressorTestihc:UR[[S5 g)N*)rarbrr1s rtest_Constructor$BZ2DecompressorTest.test_Constructoris )_b9rc[5nUR[UR5 URUR5nUR X R 5 gr&)rrarbrr;rkr:r,bz2drs rtestDecompress"BZ2DecompressorTest.testDecompresslsB  )T__5tyy) yy)rc[5nSnSnURUS-US-S-nU(dOX!RU5- nUS- nM:URX R5 g)Nrrr^r")rr;rrkr:)r,rrrrs rtestDecompressChunks10*BZ2DecompressorTest.testDecompressChunks10rsl  ))AbD!A#r*C OOC( (D FA  yy)rc[5nSnURURU-5nURX0R5 URUR U5 g)Nsthis is unused data)rrr;rkr: unused_data)r,rrrs rtestDecompressUnusedData,BZ2DecompressorTest.testDecompressUnusedData~sN , tyy45 yy) ));7rc[5nURUR5nUR[URS5 UR[URS5 g)Nsanythingr)rrr;rarrs r testEOFError BZ2DecompressorTest.testEOFErrorsH tyy) (DOO[A (DOOS9rrgffffff @rc [SU5n[R"U5nX1S- U-S--n[R U5n[ 5nUR U5nURXt:H5 SnSnSng!SnSnSnf=f)Nir")minrandom randbytesr rKrrr)r,r blocksizeblockrrr decompresseds rtestDecompress4G$BZ2DecompressorTest.testDecompress4Gs($/   + !V 1A56Dd+J"$D??:6L OOL0 1DJLDJLs AA;;Bc[[RS-5H@nUR[5 [R "[ 5U5 SSS5 MB g!,(df  MT=fr)r.rrrarbrrrs rrBZ2DecompressorTest.testPicklesJ622Q67E""9- _.6.-8--rc[5nSn/n[UR5S- nURUR URSUUS95 UR UR 5 UR[US5U5 URUR SUS95 UR UR 5 UR[US5U5 URUR URUSUS95 UR[US5U5 UR(dPURUR SUS95 UR[US5U5 UR(dMPSRU5nURX0R5 URURS5 g)Nr@ max_lengthr) rr~rLappendrr needs_inputrkreofr9r@r)r,bzdroutlen_s rtestDecompressorChunksMaxsize1BZ2DecompressorTest.testDecompressorChunksMaxsizes 4==!B& 3>>$--"6-7"9 : ) SWz2 3>>#*>=> ) SWz2 3>>$--"6-7"9 : SR\:6'' JJs~~cj~A B  SWz :'''hhsm mm, #.rc[5n/nURURURSSSS9S5 UR URSS55 UR URURSSS55 UR URURSS55 URSR U5UR 5 g)Nrrrrrirrkrr;rr9r:r,rrs rtest_decompressor_inputbuf_10BZ2DecompressorTest.test_decompressor_inputbuf_1s  $334(67: < 3>>#q)* 3>>$))C"4b9: 3>>$))CD/23 # 2rc[5n/nURURURSSSS9S5 UR URS55 UR URURSSS55 UR URURSSS55 UR URURSS55 URSR U5UR 5 g)Nrrrir,rrs rtest_decompressor_inputbuf_20BZ2DecompressorTest.test_decompressor_inputbuf_2s  $334(67: < 3>>#&' 3>>$))C"4a89 3>>$))C"4a89 3>>$))CD/23 # 2rc[5n/nURURURSSS55 URURURSSS55 URURURSS55 UR SR U5UR 5 g)Nr rwr r)rrrr;rkr9r:rs rtest_decompressor_inputbuf_30BZ2DecompressorTest.test_decompressor_inputbuf_3s 3>>$))DS/156 3>>$))C"4a89 3>>$))CD/23 # 2rc[5nUR[URURS-5 UR[URURS-5 g)N)rra Exceptionrr=)r,rs r test_failure BZ2DecompressorTest.test_failuresH )S^^T]]R5GH )S^^T]]R5GHrc[R"[S5n[5nU"5n[ S5HnUR 5 M UR U"5U- SSS9 g)Ngettotalrefcountrrr^)delta)r get_attributesysrr.__init__assertAlmostEqual)r,rr refs_beforer/s rtest_refleaks_in___init__-BZ2DecompressorTest.test_refleaks_in___init__s["006HI&( sA LLN /1K?"MrcUR[R"[5R[ 55S5 gr)rkr__new__rbytesr1s r(test_uninitialized_BZ2Decompressor_crash3,3*3 I  NN3rrcP\rSrSrSrSrSrSrSrSr Sr S r S r S r S rg )CompressDecompressTestic[RUR5nUR[ U5UR5 gr&)r rKr:rkr)r,rs rr#CompressDecompressTest.testCompresss-||DII& -tyy9rcd[RS5nURXR5 gr)r rKrkr<r,rs rr.CompressDecompressTest.testCompressEmptyStrings"||C  /rcx[RUR5nURXR5 gr&r rr;rkr:r+s rr%CompressDecompressTest.testDecompresss&~~dii( yy)rcR[RS5nURUS5 gr)r rrkr+s rtestDecompressEmpty*CompressDecompressTest.testDecompressEmptys ~~c" s#rcf[RUR5nURUS5 gr)r rr<rkr+s rtestDecompressToEmptyString2CompressDecompressTest.testDecompressToEmptyString s$~~doo. s#rchUR[[RURSS5 g)Nr)rarcr rr;r1s rtestDecompressIncomplete/CompressDecompressTest.testDecompressIncomplete$s" *cnndiioFrcbUR[[RUR5 gr&)rarrr rr=r1s rtestDecompressBadData,CompressDecompressTest.testDecompressBadData's '3>>4==Arc[RURS-5nURXRS-5 grDr.r+s rtestDecompressMultiStream0CompressDecompressTest.testDecompressMultiStream*s.~~dii!m, yy1}-rc[RURUR-5nUR XR 5 gr&r rr;r=rkr:r+s rtestDecompressTrailingJunk1CompressDecompressTest.testDecompressTrailingJunk.s/~~dii$--78 yy)rc[RURS-UR-5nUR XR S-5 grDr@r+s r%testDecompressMultiStreamTrailingJunk+D+0!D< D(+ D9< E cUR[URURS5 UR[URURS5 UR[URURSSS9 UR[URURSSS9 UR[URURSSS 9 g) Nwbtxbtr!rir]ignore)errorsrZ)newline)rarcrGr)r1s rtest_bad_paramsOpenTest.test_bad_paramss *))T]]E ; *))T]]E ; *))T]]D7  L *))T]]D  K *))T]]D$  HrcURRS5nURS[R5nUR UR SSS9nURU5 SSS5 [ UR S5n[UR55RS5nURXB5 SSS5 UR UR SSS9nURUR5U5 SSS5 g!,(df  N=f!,(df  Nd=f!,(df  g=f)NrYrZr[z utf-16-ler]r!r_) r:rarbr*rcrGr)rTrrirk)r,rrdrWrPs r test_encodingOpenTest.test_encodingsyy(,,tRZZ8 YYt}}d[Y AQ GGDMB $-- &!&qvvx077 DI   Y 8'YYt}}d[Y AQ   QVVXt ,B A B A & &B As$D:D$!D0 D D-0 D>c>URURS5nURS5 SSS5 URURSSSS9nURUR 5S5 SSS5 g!,(df  NT=f!,(df  g=f)NrSsfoobarr_rYrs)r^rtfoobar)rGr)rTrkrir>s rtest_encoding_error_handler$OpenTest.test_encoding_error_handlersq YYt}}d +q GGM ", YYt}}dWXY N   QVVXx 0O N, + N NsA=!B= B  BcvURRS5nURURSSSS9nUR U5 SSS5 URURSSSS9nUR UR 5U/5 SSS5 g!,(df  NU=f!,(df  g=f)NrYr[rirZ)r^rur_ )r:rarGr)rTrkr)r,rrWs r test_newlineOpenTest.test_newlinesyy( YYt}}dWdY Kq GGDML YYt}}dWdY Kq   Q[[]TF 3L KL K K KsB."B* B'* B8rNN)r4r5r6r7rGrQrVrerkrnrvryr}rrMrNrrrGrG7s6);";$A&- H -14rrGc.[R"5 gr&)r reap_childrenrNrrtearDownModulers r__main__)*testr test.supportrrrunittestrnrrr*rrAr'rrrrHrr test.support.os_helperr r r|r import_moduler r rrrrTestCaserrPrrr'rGrr4mainrNrrrs(  +  &)3 !!%(77$1x  1hX /(X /v0505fd3(d3N%.X%.Pv4xv4r z MMOr