+
    Bi                        ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t	^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHtHtHtHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtHtHt  ^ RItRt!]"! ]!RR	4      t#R
t$R t%R t&]P                  ! 4       t']%! ]#]'](! ]!4      4      t)Rt*Rt+Rt,Rt-Rt.Rt/]P`                  Pc                  R4      t2]P`                  Pc                  R4      t3]P`                  Pi                  ]P`                  Pk                  ]64      R4      t7]Pp                  Ps                  ]*R,           4      t:Rt; ! R R]	Px                  4      t= ! R R]=4      t>]P~                  ! 4        ! R R]>4      4       t@ ! R R]	Px                  4      tAR  tB]CR!8X  d   ]	P                  ! 4        R# R#   ]  d    Rt ELOi ; i)"    N)support)import_helper)	os_helper)ZipFileZipInfo
ZIP_STOREDZIP_DEFLATED)
extract_tbextract_stackprint_tbzHdef get_name():
    return __name__
def get_file():
    return __file__
<???>execz def do_raise(): raise TypeError
c                     \         P                  ! V 4      p\        P                  P                  \
        P                  ! R ^ \        V4      R,          VR,          4      ,           V,           pV# )z<iLL    )marshaldumps	importlibutilMAGIC_NUMBERstructpackint)comtimesizedatapycs   &&&  */usr/lib/python3.14/test/test_zipimport.pymake_pycr   (   sY    ==D>>&&FAJ,d[.@	BBDHIC J    c                 B    V P                  \        P                  R 4      # ).)replaceossep)paths   &r   module_path_to_dotted_namer'   /   s    <<$$r    ziptestmoduleziptestmodule2ziptestmodule3ziptestpackageziptestpackage2ziptestpackage3	junk95142zjunk95142.zipzipimport_data.py.pycc                   ,   a  ] tR t^Dt o R tR tRtV tR# )ImportHooksBaseTestCasec                   \         P                  R ,          V n        \         P                  R ,          V n        \         P                  R ,          V n        \         P                  P                  4        \        P                  ! 4       V n        R# :NNNN)	sysr&   	meta_path
path_hookspath_importer_cacheclearr   modules_setupmodules_beforeselfs   &r   setUpImportHooksBaseTestCase.setUpF   sT    HHQK	q)..+%%'+99;r    c                ,   V P                   \        P                   R &   V P                  \        P                  R &   V P                  \        P                  R &   \        P                  P                  4        \        P                  ! V P                  !   R# r5   )	r&   r6   r7   r8   r9   r:   r   modules_cleanupr<   r=   s   &r   tearDown ImportHooksBaseTestCase.tearDownM   s]    ii>>a OOq%%'%%t':':;r    )r7   r<   r&   r8   N)__name__
__module____qualname____firstlineno__r?   rC   __static_attributes____classdictcell____classdict__s   @r   r3   r3   D   s     << <r    r3   c            	         a  ] tR t^Ut o ]tR t]3R lt]	3RRRRRRRR/R	 llt
RRRR/R
 ltR tR tRRRR/R ltR tR tR tR tR t]P*                  P-                  RR4      R 4       tR tR tR tR tR tR tR tR tR t R  t!R! t"R" t#R# t$R$ t%R% t&R& t'R' t(R( t)R) t*R* t+R+ t,R, t-R- t.R. t/R/ t0R0 t1R1 t2R2 t3R3 t4R4 t5R5 t6R6 t7R7 t8R8 t9R9 t:]Pv                  ! ]<Pz                  RJ R:4      R; 4       t>R< t?R= t@R> tAR? tB]CP                  ! R@4      RA 4       tE]CP                  ! R@4      RB 4       tFRC tGRDtHV tIR# )EUncompressedZipImportTestCasec                    \         P                  ! 4        \        P                  P	                  4        \
        P                  V 4       R # N)	linecache
clearcache	zipimport_zip_directory_cacher:   r3   r?   r=   s   &r   r?   #UncompressedZipImportTestCase.setUpY   s0     	&&,,.%%d+r    c                   V P                  \        P                  V4       VP                  4        EF4  w  r4\	        V\
        4      '       d   Vw  rT\        P                  P                  ! V.VP                  R 4      O5!  pVR,          \        P                  8X  d@   \        P                  P                  V4      '       g   \        P                  ! V4       K  K  \        P                  P                  V4      p\        P                  P                  V4      '       g   \        P                  ! V4       \        VR4      ;_uu_ 4       pVP                  V4       RRR4       EK7  	  R#   + '       g   i     EKM  ; i)/wbN)
addCleanupr   rmtreeitems
isinstancetupler$   r&   joinsplitr%   isdirmakedirsdirnameopenwrite)	r>   filesdirNamenamer   r   r&   dnamefps	   &&&      r   makeTree&UncompressedZipImportTestCase.makeTree`   s     		(('2++-JD$&&"77<<:$**S/:DBx266!ww}}T**KK% + -ww}}U++KK&$%%HHTN &% ( &%%s   E,,E>commentNfile_commentstuffprefix c          	     *   V P                  \        P                  V4       \        VR V P                  R7      ;_uu_ 4       pV P                  WWFR7       Ve   W8n        RRR4       Veo   \        VR4      ;_uu_ 4       p	V	P                  4       p
RRR4       \        VR4      ;_uu_ 4       p	V	P                  V4       V	P                  X
4       RRR4       R# R#   + '       g   i     L; i  + '       g   i     Lf; i  + '       g   i     R# ; i)wcompression)rn   rp   NrbrX   )
rZ   r   unlinkr   ru   writeZiprm   rd   readre   )r>   rf   zipNamerm   rn   ro   rp   kwzfr   s   &&&$$$$,   r   makeZip%UncompressedZipImportTestCase.makeZips   s    
 		(('2Wct/?/?@@AMM!MM"#	 A
 gt$$vvx %gt$$ %$	  A@ %$$$$s$   C?C.,#DC+	.C>	D	c                  VP                  4        F  w  rV\        V\        4      '       d   Vw  rvM\        pVP	                  \
        P                  R 4      p\        WE,           \        P                  ! V4      4      pV P                  Vn        Ve   W8n        Vf   ^ Vn        VP                  V4       K  VP                  W4       K  	  R# )rW   N)r\   r]   r^   NOWr#   r$   r%   r   time	localtimeru   compress_typerm   CRCmkdirwritestr)	r>   r|   rf   rn   rp   rh   r   r   zinfos	   &&&$$    r   rx   &UncompressedZipImportTestCase.writeZip   s    ++-JD$&&"t<<,DFM4>>%+@AE"&"2"2E' ,|	 

5' (r    c                T    \        R 4       Uu/ uF  pRV R2\        bK  	  up# u upi )i  r}   r0   )rangetest_src)r>   ns   & r   getZip64Files+UncompressedZipImportTestCase.getZip64Files   s+    .3El;l!A3c
H$l;;;s   %c                p    R V9  d   RVR &   V P                   ! V3/ VB  V P                  ! V.VO5/ VB  R# )rp   zpre/fix/N)r~   doTestWithPreBuiltZip)r>   expected_extrf   modulesr{   s   &&&*,r   doTest$UncompressedZipImportTestCase.doTest   s<    2%BxLU!b!""<@'@R@r    callc                  \         P                  P                  ! \        .VP	                  R 4      RR O5!  p\
        P                  P                  ^ V4       \        P                  ! RP                  V4      4      pVe	   V! V4       V'       dL   VP                  4       pV P                  V\         P                  P                  ! V.VO5!  V,           4       R# R# )rW   Nr"   rY   )r$   r&   r_   TEMP_ZIPr`   r6   insertr   import_moduleget_fileassertEqual)	r>   r   r   rp   r   r{   zip_pathmodfiles	   &&$$*,   r   r   3UncompressedZipImportTestCase.doTestWithPreBuiltZip   s    77<<B6<<+<Sb+AB8$%%chhw&78I<<>DT277<< $+")$+-9$: ; r    c                   R \         P                  9   d   V P                  R4       R \         P                  9   d   \         P                  R  R\        /p V P                  RVR 4       V P                  \        8w  d   V P                  R4       R# R#   \         d.    T P                  \        8w  d   T P                  R4        R#  R# i ; i)zlibzzlib is a builtin modulezzlib.pyr0   z"expected test to raise ImportErrorz&expected test to not raise ImportErrorN)r6   builtin_module_namesskipTestr   r   r   ru   r   failImportErrorr	   r>   rf   s   & r   testAFakeZlib+UncompressedZipImportTestCase.testAFakeZlib   s    & S---MM45S[[ F#H%	@KKuf-
 :-		>? .	  	D</		BC 0	Ds   B 1C
Cc                Z    \         R ,           \        /pV P                  R V\         4       R# r0   NTESTMODr   r   r   s   & r   testPy$UncompressedZipImportTestCase.testPy   s     5(+E5'*r    c                j    \         \        ,           \        /pV P                  \        V\         4       R # rP   )r   pyc_exttest_pycr   r   s   & r   testPyc%UncompressedZipImportTestCase.testPyc   s!    7"H-GUG,r    c                    \         R ,           \        \         \        ,           \        /pV P	                  \        V\         4       R# r   )r   r   r   r   r   r   s   & r   testBoth&UncompressedZipImportTestCase.testBoth   s,    5(7"H.GUG,r    c                >  a  R p\         P                  P                  V4      p\         P                  P	                  \        VRR4      VR4      p\        R,           \        R3\        R,           \        ^,
          V3/pV 3R lpS P                  RV\        VR	7       R# )
   state = 'old'???r   Fr0   state = 'new'r1   c                 @   < SP                  V P                  R 4       R# )oldNr   stater   r>   s   &r   checkFUncompressedZipImportTestCase.testUncheckedHashBasedPyc.<locals>.check       SYY.r    Nr   	r   r   source_hash_bootstrap_external_code_to_hash_pyccompiler   r   r   r>   sourcer   bytecoderf   r   s   f     r   testUncheckedHashBasedPyc7UncompressedZipImportTestCase.testUncheckedHashBasedPyc   s    !nn00800BBFE6*

 53"86!C"Hh#79	/D%u5r    z_imp.check_hash_based_pycsalwaysc                >  a  R p\         P                  P                  V4      p\         P                  P	                  \        VRR4      VR4      p\        R,           \        R3\        R,           \        ^,
          V3/pV 3R lpS P                  RV\        VR	7       R# )
r   r   r   Fr0   r   r1   c                 @   < SP                  V P                  R 4       R# )newNr   r   s   &r   r   OUncompressedZipImportTestCase.test_checked_hash_based_change_pyc.<locals>.check   r   r    Nr   r   r   s   f     r   "test_checked_hash_based_change_pyc@UncompressedZipImportTestCase.test_checked_hash_based_change_pyc   s    !nn00800BBFE6*

 53"86!C"Hh#79	/D%u5r    c                R    \         R ,           R/pV P                  RV\         4       R# )r0   rq   N)r   r   r   s   & r   testEmptyPy)UncompressedZipImportTestCase.testEmptyPy   s     5"%D%)r    c                    \        \        4      pV^ ;;,          ^,          uu&   \        R,           \        \        \        ,           V/pV P                  RV\        4       R# )r   r0   N	bytearrayr   r   r   r   r   )r>   badmagic_pycrf   s   &  r   testBadMagic*UncompressedZipImportTestCase.testBadMagic  sD     *Q45(7"L2E5'*r    c                   \        \        4      pV^ ;;,          ^,          uu&   \        \        ,           V/p V P	                  RV\        4       V P                  R4       R#   \        P                   dR   pT P                  TP                  \        4       T P                  RTP                  P                  4        Rp?R# Rp?ii ; i)r   r0   zThis should not be reachedzmagic numberN)r   r   r   r   r   r   rS   ZipImportErrorassertIsInstance	__cause__r   assertInmsg)r>   r   rf   excs   &   r   testBadMagic2+UncompressedZipImportTestCase.testBadMagic2	  s     *Q47"L1	=KKug.II23'' 	=!!#--=MM.#--*;*;<<	=s   (A# #C	8ACC	c                    \        \        4      pV^;;,          ^,          uu&   \        R,           \        \        \        ,           V/pV P                  RV\        4       R# )   r0   Nr   )r>   badtime_pycrf   s   &  r   testBadMTime*UncompressedZipImportTestCase.testBadMTime  sF    ) 	B45(7"K1E5'*r    c                    \        \        R\        \        4      4      p\        R,           \        \        \
        ,           V/pV P                  RV\        4       R# )   r0   Nr   )r   test_colenr   r   r   r   )r>   twenty_thirty_eight_pycrf   s   &  r   test2038MTime+UncompressedZipImportTestCase.test2038MTime  sB     #+7Is8}"M5(7"$;=E5'*r    c                    \         \        P                  ,           pVR ,           \        ,           \        V\
        ,           \        ,           \        /pV P                  \        V\         \
        4       R# __init__N)TESTPACKr$   r%   r   r   r   r   )r>   packdirrf   s   &  r   testPackage)UncompressedZipImportTestCase.testPackage&  sG    RVV#:%/7"W,h8GUHg6r    c                f   \         \        P                  ,           pV\        ,           \        P                  ,           pVR ,           \        ,           \
        VR ,           \        ,           \
        V\        ,           \        ,           \
        /pV P                  \        V\         \        \        4       R# r   )r   r$   r%   	TESTPACK2r   r   r   r   r>   r   packdir2rf   s   &   r   testSubPackage,UncompressedZipImportTestCase.testSubPackage,  so     RVV#Y&/:%/J&0(G#g-x9 	GUHiAr    c                   \         \        P                  ,           pV\        ,           \        P                  ,           pVR VR V\        ,           \
        ,           \        /pV P                  \
        V\         \        \        4       R # rP   )r   r$   r%   r   r   r   r   r   r   s   &   r   testSubNamespacePackage5UncompressedZipImportTestCase.testSubNamespacePackage6  s[     RVV#Y&/$4G#g-x9 	GUHiAr    c                   V P                  \        P                  \        4       \	        \        R V P
                  R7      ;_uu_ 4       pVP                  R4       VP                  R\        4       VP                  R4       VP                  R\        4       VP                  R4       VP                  R\        4       VP                  R\        4       R	R	R	4       V P                  R
R7       R	#   + '       g   i     L$; i)rs   rt   aa/__init__.pya/ba/b/__init__.pya/b/ca/b/c/__init__.py
a/b/c/d.pyN__init__.pyinitfile
rZ   r   rw   r   r   ru   r   r   r   _testPackager>   r|   s   & r   testPackageExplicitDirectories<UncompressedZipImportTestCase.testPackageExplicitDirectoriesA  s    	(((3Xs0@0@AAQGGCLJJ1GGENJJ((3GGGJJ*H5JJ|X. B 	=1 BAs   	BC11D	c                   V P                  \        P                  \        4       \	        \        R V P
                  R7      ;_uu_ 4       pVP                  R\        4       VP                  R\        4       VP                  R\        4       VP                  R\        4       RRR4       V P                  RR7       R#   + '       g   i     L$; i)	rs   rt   r  r  r
  r  Nr  r  	rZ   r   rw   r   r   ru   r   r   r  r  s   & r   testPackageImplicitDirectories<UncompressedZipImportTestCase.testPackageImplicitDirectoriesN  s    	(((3Xs0@0@AAQJJ1JJ((3JJ*H5JJ|X.	 B
 	=1 BAs   	AB>>C	c                   V P                  \        P                  \        4       \	        \        R V P
                  R7      ;_uu_ 4       pVP                  R4       VP                  R4       VP                  R4       VP                  R\        4       RRR4       V P                  RR7       R#   + '       g   i     L$; i)rs   rt   r  r  r	  r  Nr  r  r  s   & r   'testNamespacePackageExplicitDirectoriesEUncompressedZipImportTestCase.testNamespacePackageExplicitDirectoriesX  s    	(((3Xs0@0@AAQGGCLGGENGGGJJ|X.	 B
 	4( BAs   	A
B//B?	c                   V P                  \        P                  \        4       \	        \        R V P
                  R7      ;_uu_ 4       pVP                  R\        4       RRR4       V P                  RR7       R#   + '       g   i     L$; i)rs   rt   r  Nr  r  r  s   & r   'testNamespacePackageImplicitDirectoriesEUncompressedZipImportTestCase.testNamespacePackageImplicitDirectoriesb  s\    	(((3Xs0@0@AAQJJ|X. B4( BAs   	A<<B	c           
     `   \         P                  ! \        P                  P	                  \
        R 4      4      pVf   V P                  \         P                  VP                  R4       V P                  \         P                  VP                  R4       V P                  \         P                  VP                  R4       MV P                  VP                  R4      4       V P                  VP                  R4      \        4       V P                  VP                  R4      P                  \        P                  P	                  \
        R RV4      4       \        P                  P!                  ^ \
        4       V P#                  R \        P$                  4       \&        P(                  ! R4      pV P+                  R \        P$                  4       V P-                  \        P$                  R,          V4       Vf   V P/                  VP0                  4       M@V P                  VP0                  \        P                  P	                  \
        R RV4      4       V P                  \3        VP4                  4      ^VP4                  4       V P                  VP4                  ^ ,          \        P                  P	                  \
        R R4      4       \&        P(                  ! R4      pV P+                  R\        P$                  4       V P+                  R\        P$                  4       V P-                  \        P$                  R,          V4       V P-                  VP6                  P8                  V4       V P                  VP0                  \        P                  P	                  \
        R RRR4      4       R# )r  Nbza.bza.b.c.dza.b.cczd.py)rS   zipimporterr$   r&   r_   r   assertRaisesr   
is_package
get_sourceget_code
assertTruer   r   co_filenamer6   r   assertNotInr   r   r   r   assertIsassertIsNone__file__r   __path__r   d)r>   r  zir   mod2s   &&   r   r  *UncompressedZipImportTestCase._testPackagei  sY   ""277<<##>?i66sKi66sKi66SIOOBMM#./R]]3/:R[[-99WW\\(ChGI 	8$ckk*%%-c3;;'ckk%(#.cll+S\\WW\\(ChGIS\\*As||<a"'',,xc*JK&&2gs{{+i-ckk),d3ceeggt$hS#vF	Hr    c                   \         \        P                  ,           pV\        ,           \        P                  ,           pV\        ,           \        P                  ,           pVR V\
        ,           \        ,           \        VR VR V\
        ,           \        ,           \        V\        ,           \        ,           \        V\
        ,           \        ,           \        /pVR V\        ,           \        ,           \        VR V\        ,           \        ,           \        V\
        ,           \        ,           \        /p\        P                  P                  R4      pV P                  WF4       \        pV P                  WW4       \        P                  P!                  ^ V4       \        P                  P!                  ^ V4       \"        P$                  ! \         4      pV P'                  ^\)        VP*                  4      4       VP*                  w  rV P'                  \        P                  P-                  \        4      V	P/                  \        P                  4      R,          4       V P'                  RV
P/                  \        P                  4      R,          4       \"        P$                  ! VP1                  \        P                  R4      R R 4      pV P'                  ^\)        VP*                  4      4       \3        VP*                  4      ^ ,          P/                  R\        P                  ,           4      ^,          pV P'                  VR R V4       \"        P$                  ! RP5                  \         \
        34      4      pV P'                  RVP6                  P/                  \        P                  4      R,          4       \"        P$                  ! RP5                  \         \        34      4      pV P'                  \        P                  P-                  \        4      VP6                  P/                  \        P                  4      R,          4       RP5                  \         \        34      p\"        P$                  ! V4      pV P'                  ^\)        VP*                  4      4       VP*                  w  rV P'                  \        P                  P-                  \        4      V	P/                  \        P                  4      R,          4       V P'                  RV
P/                  \        P                  4      R,          4       \"        P$                  ! RP5                  V\
        34      4      pV P'                  \        P                  P-                  \        4      VP6                  P/                  \        P                  4      R,          4       \"        P$                  ! RP5                  V\        34      4      pV P'                  \        P                  P-                  \        4      VP6                  P/                  \        P                  4      R,          4       \"        P$                  ! RP5                  V\        34      4      pV P'                  RVP6                  P/                  \        P                  4      R,          4       R # )N	path1.zipr"   rY   )r   r$   r%   r   	TESTPACK3r   r   r   TESTMOD3TESTMOD2r&   abspathr~   TEMP_DIRrk   r6   r   r   r   r   r   r,  basenamer`   r#   listr_   r+  )r>   r   r   packdir3files1files2zip1zip2r   p1p2mpathsubpkgs   &            r   testMixedNamespacePackage7UncompressedZipImportTestCase.testMixedNamespacePackage  si    RVV#Y&/i'"&&04G#g-xDDW$w.X%/W$w.: 4H$w.DX%/W$w.	: ww{+V"f# 	4 4 %%h/
 	C-.))(3RXXbff5Eb5IJbhhrvv&6r&:; %%h&6&6rvvs&CCR&HIC-.S\\"1%++K"&&,@A!D#2. %%chh'/B&CDcll&8&8&@&DE %%chh(/C&DE))(3++BFF3B7	9 8Y/0%%f-C-.))(3RXXbff5Eb5IJbhhrvv&6r&:; %%chh/@&AB))(3++BFF3B7	9 %%chh/A&BC))(3++BFF3B7	9 %%chh/A&BCcll&8&8&@&DEr    c                h   \         \        P                  ,           pV\        ,           \        P                  ,           pV\        ,           \        P                  ,           pVR V\
        ,           \        ,           \        VR VR V\
        ,           \        ,           \        V\        ,           \        ,           \        V\
        ,           \        ,           \        /p\        P                  P                  R4      pV P                  WE4       VR V\        ,           \        ,           \        VR V\        ,           \        ,           \        V\
        ,           \        ,           \        /p\        P                  P                  R4      pV P                  Wg4       \        P                  P                  ^ V4       \        P                  P                  ^ V4       \        P                   ! \         4      pV P#                  ^\%        VP&                  4      4       VP&                  w  rV P#                  RV	P)                  \        P                  4      R,          4       V P#                  RV
P)                  \        P                  4      R,          4       \        P                   ! VP+                  \        P                  R4      R R 4      pV P#                  ^\%        VP&                  4      4       \-        VP&                  4      ^ ,          P)                  R\        P                  ,           4      ^,          pV P#                  VR R V4       \        P                   ! RP/                  \         \
        34      4      pV P#                  RVP0                  P)                  \        P                  4      R,          4       \        P                   ! RP/                  \         \        34      4      pV P#                  RVP0                  P)                  \        P                  4      R,          4       RP/                  \         \        34      p\        P                   ! V4      pV P#                  ^\%        VP&                  4      4       VP&                  w  rV P#                  RV	P)                  \        P                  4      R,          4       V P#                  RV
P)                  \        P                  4      R,          4       \        P                   ! RP/                  V\
        34      4      pV P#                  RVP0                  P)                  \        P                  4      R,          4       \        P                   ! RP/                  V\        34      4      pV P#                  RVP0                  P)                  \        P                  4      R,          4       \        P                   ! RP/                  V\        34      4      pV P#                  RVP0                  P)                  \        P                  4      R,          4       R # )Nr2  z	path2.zipr"   r3  rY   r4  r5  )r   r$   r%   r   r6  r   r   r   r7  r&   r9  r~   r8  r6   r   r   r   r   r   r,  r`   r#   r<  r_   r+  )r>   r   r   r=  r>  r@  r?  rA  r   rB  rC  rD  rE  s   &            r   testNamespacePackage2UncompressedZipImportTestCase.testNamespacePackage  s"    RVV#Y&/i'"&&04G#g-xDDW$w.X%/W$w.: ww{+V"4H$w.DX%/W$w.	:
 ww{+V" 	4 4 %%h/
 	C-.bhhrvv&6r&:;bhhrvv&6r&:; %%h&6&6rvvs&CCR&HIC-.S\\"1%++K"&&,@A!D#2. %%chh'/B&CDcll&8&8&@&DE %%chh(/C&DEcll&8&8&@&DE 8Y/0%%f-C-.bhhrvv&6r&:;bhhrvv&6r&:; %%chh/@&ABcll&8&8&@&DE %%chh/A&BCcll&8&8&@&DE %%chh/A&BCcll&8&8&@&DEr    c                8   \         \        P                  ,           pV\        ,           \        P                  ,           pVR ,           \        ,           \
        VR ,           \        ,           \
        V\        ,           \        ,           \
        R\        ,           \
        /pV P                  VRR7       \        P                  ! \        4      pV P                  VP                  \        4       V P                  VP                  \         4      4       \        P                   ! 4       ;_uu_ 4        \        P"                  ! R\$        4       VP'                  \         4      pV P                  VP)                  \         4      VP*                  4       RRR4       VP-                  R4      pV P/                  V4       V P1                  VP2                  \        P                  4       V P5                  VP2                  P                  R4      4       \6        P8                  P;                  V4      pVP2                  P=                  V4       V P                  VP2                  P)                  R4      VP*                  4       VP-                  \         4      p\6        P8                  P;                  V4      pVP2                  P=                  V4       V P                  VP)                  \         4      VP*                  4       \6        P>                  ! \         4      P@                  ^ ,          p\        PB                  PE                  \        \         4      p	V P                  W4       V P5                  VP                  VR ,           4      4       V P                  VP                  V\        ,           4      4       V P5                  VP                  V\        ,           4      4       V\        ,           p
\G        V
4      p\6        P>                  ! V4      pV P                  V\H        PJ                  9   4       V PM                  VPO                  \         4      4       V PM                  VPO                  V
4      4       V P                  VP)                  V
4      VP*                  4       VPP                  P2                  pV PM                  VPO                  V4      4       V P                  VP)                  V4      VP*                  4       \        P                  ! \        \        P                  ,           \         ,           4      pV P                  VP                  \        4       V P                  VPR                  \         \        P                  ,           4       R#   + '       g   i     EL; i)r   spam   spamrn   ignoreN)*r   r$   r%   r   r   r   r   r~   rS   r!  r   r   archiver&  r#  warningscatch_warningssimplefilterDeprecationWarningload_moduleget_filenamer+  	find_specassertIsNotNoner   loaderassertFalser   r   module_from_specexec_moduler   r,  r&   r_   r'   r6   r   r*  r$  __spec__rp   )r>   r   r   rf   r.  r   specexec_modexisting_pack_pathexpected_path_pathmod_pathmod_namerY  zi2s   &             r   testZipImporterMethods4UncompressedZipImportTestCase.testZipImporterMethods"  s   RVV#Y&/:%/J&0(G#g-x'!8- 	U1""8,X.h/0 $$&&!!(,>?..*CR__X6E	 ' ||F#T"dkk9+@+@A//78>>2248)11&98;L;LM||H%nn--d3$2CLLA&44X>GGJWW\\(H=+@w';<=g	&9:;x''9:;g%-h7%%h/CKK/0"--12"--122CLLA $$&++H56,,X6E ##Hrvv$5$@Ah/X%67Y '&&s   +A VV	c                   \         \        P                  ,           pV\        ,           \        P                  ,           pVR ,           \        ,           \
        VR ,           \        ,           \
        V\        ,           \        ,           \
        R\        ,           \
        /pW.pV P                  VRR7       \        P                  ! \        4      pV P                  \        VP                  4       4      \        . VOVO4      4       VP                  4        V P                  \        VP                  4       4      \        . VOVO4      4       R\        ,           \
        /pVP                  V4       \!        \        RV P"                  R7      ;_uu_ 4       pV P%                  WvRR7       RRR4       VP                  4        V P                  \        VP                  4       4      \        . VOVO4      4       VP'                  R4      pV P)                  V4       V P+                  VP,                  \        P                  4       \        P.                  ! \        4       VP                  4        V P1                  VP                  4       4       V P3                  \        P4                  P7                  VP8                  4      4       V P3                  VP'                  R4      4       R#   + '       g   i     ELF; i)	r   rL  rM  rN  spam2r  rt   Nname_does_not_matter)r   r$   r%   r   r   r   r   r~   rS   r!  r   r   sorted
_get_filesinvalidate_cachesupdater   ru   rx   rW  rX  r   rY  removerZ  r*  rT   getrP  )	r>   r   r   rf   extra_filesr.  newfiler|   r^  s	   &        r   testInvalidateCaches2UncompressedZipImportTestCase.testInvalidateCaches^  s   RVV#Y&/:%/J&0(G#g-x'!8- )U1""8,0&9O59O;9O2PQ
0&9O59O;9O2PQW$h/WXs0@0@AAQMM!7M; B 	0&9O59O;9O2PQ||G$T"dkk9+@+@A
		(
))88<<RZZHI",,'=>? BAAs   K""K3	c                   \         \        P                  ,           pV\        ,           \        P                  ,           pVR ,           \        ,           \
        VR ,           \        ,           \
        V\        ,           \        ,           \
        R\        ,           \
        /pW.pV P                  VRR7       \        P                  ! \        4      pV P                  \        VP                  4       4      \        . VOVO4      4       \        P                  ! \        4      pV P                  \        VP                  4       4      \        . VOVO4      4       R\        ,           \
        /pVP                  V4       \        \        RV P                   R7      ;_uu_ 4       pV P#                  WRR7       RRR4       VP%                  4        V P                  \        VP                  4       4      \        . VOVO4      4       VP'                  R4      p	V P)                  V	4       V P+                  V	P,                  \        P                  4       R#   + '       g   i     L; i)r   rL  rM  rN  rh  r  rt   N)r   r$   r%   r   r   r   r   r~   rS   r!  r   r   rj  rk  rm  r   ru   rx   rl  rW  rX  r   rY  )
r>   r   r   rf   rp  r.  rd  rq  r|   r^  s
   &         r   *testInvalidateCachesWithMultipleZipimportsHUncompressedZipImportTestCase.testInvalidateCachesWithMultipleZipimports  s   RVV#Y&/:%/J&0(G#g-x'!8- )U1""8,0&9O59O;9O2PQ##H- 016:PE:PK:P3QRW$h/WXs0@0@AAQMM!7M; B 	 016:PE:PK:P3QR}}W%T"dkk9+@+@A BAs   II	c                N
   \         \        P                  ,           pV\        ,           \        P                  ,           pVR ,           \        ,           \
        V\        ,           \        ,           \
        /pV P                  VRR7       \        P                  ! \        \        P                  ,           V,           4      pV P                  VP                  \        4       V P                  VP                  V4       V P                  VP                  \        4      4       \         P"                  ! 4       ;_uu_ 4        \         P$                  ! R\&        4       VP)                  \        4      pV P                  VP+                  \        4      VP,                  4       RRR4       VP/                  \        4      p\0        P2                  P5                  V4      pVP6                  P9                  V4       V P                  VP6                  P+                  \        4      VP,                  4       V P;                  VP                  \        \        P                  ,           R ,           4      4       V P;                  VP                  \        \        P                  ,           \        ,           4      4       \        \        P                  ,           V,           \        ,           p\        P                  ! V4      pVP/                  \        4      pV P=                  V4       V P?                  VP6                  \        P                  4       V P;                  VP6                  P                  \        4      4       \0        P2                  P5                  V4      p	VP6                  P9                  V	4       V P                  VP6                  P+                  \        4      V	P,                  4       \        \        P                  ,           \        ,           p
\A        V
4      p\0        PB                  ! V4      pV P                  V\D        PF                  9   4       V PI                  VPK                  \        4      4       V PI                  VPK                  V
4      4       V P                  VP+                  V
4      VP,                  4       VPL                  pV PI                  VPK                  V4      4       V P                  VP+                  V4      VP,                  4       R#   + '       g   i     EL; i)r   s   eggsrN  rO  N)'r   r$   r%   r   r   r   r   r~   rS   r!  r   r   rP  rp   r&  r#  rQ  rR  rS  rT  rU  rV  r+  rW  r   r   r[  rY  r\  rZ  rX  r   r'   r   r6   r   r*  r$  
__loader__)r>   r   r   rf   r.  r   r^  pkg_pathrd  load_modrb  rc  rY  s   &            r   $testZipImporterMethodsInSubDirectoryBUncompressedZipImportTestCase.testZipImporterMethodsInSubDirectory  sQ   RVV#Y&/J&0(G#g-x9U1""8bff#4w#>?X.G,i01$$&&!!(,>?..+CR__Y7F '
 ||I&nn--d3$11)<cllKy266'9J'FGHy266'9G'CDEbff$w.:##H- }}W%T"dkk9+@+@A//89>>2248)KK$$W-x/@/@	B rvv%/-h7%%h/CKK/0"--	23"--122CLLA &++H56,,X6EK '&&s   :A TT$	c                   V P                  \        P                  \        4       \	        \        R V P
                  R7      ;_uu_ 4       pVP                  R4       VP                  R4       VP                  R4       \        \        R4      4      pVP                  RV4       RRR4       V P                  4        R#   + '       g   i     L"; i)rs   rt   r  r  r	     a/b/c/testdata.datN)rZ   r   rw   r   r   ru   r   bytesr   r   _testGetDatar>   r|   r   s   &  r   testGetDataExplicitDirectories<UncompressedZipImportTestCase.testGetDataExplicitDirectories  s    	(((3Xs0@0@AAQGGCLGGENGGGs$DJJ+T2 B 	 BAs   	AB==C	c                :   V P                  \        P                  \        4       \	        \        R V P
                  R7      ;_uu_ 4       p\        \        R4      4      pVP                  RV4       RRR4       V P                  4        R#   + '       g   i     L"; i)rs   rt   r~  r  N)
rZ   r   rw   r   r   ru   r  r   r   r  r  s   &  r   testGetDataImplicitDirectories<UncompressedZipImportTestCase.testGetDataImplicitDirectories  sh    	(((3Xs0@0@AAQs$DJJ+T2 B 	 BAs   	'B

B	c           
        \         P                  ! \        P                  P	                  \
        R 4      4      p\        P                  P	                  RRRR4      p\        \        R4      4      pV P                  VP                  V4      V4       V P                  VP                  \        P                  P	                  \
        V4      4      V4       V P                  VP                  \        P                  P	                  RRR4      4      R4       V P                  VP                  \        P                  P	                  \
        RRR4      4      R4       V P                  \        VP                  \        P                  P	                  RR4      4       V P                  \        VP                  \        P                  P	                  \
        RR4      4       R# )	ignoredr  r  r   ztestdata.datr~  rq   r    N)rS   r!  r$   r&   r_   r   r  r   r   get_datar"  OSError)r>   r.  pathnamer   s   &   r   r  *UncompressedZipImportTestCase._testGetData  s*   ""277<<)#DE77<<S#~>U3Z X.5RWW\\(H%EFMRWW\\#sB%?@#FRWW\\(Cb%IJCP'2;;S#0FG'2;;XsC0PQr    c                    R p\        \        VRR4      \        \        V4      4      p\        \
        ,           VRR/pV P                  \
        V\        RR7       R# )zif 1:  # indent hack
        def get_file():
            return __file__
        if __loader__.get_data("some.data") != b"some data":
            raise AssertionError("bad data")
r   r   z	some.dataz	some datarq   )rp   N)r   r   r   r   r   r   r   )r>   srcr   rf   s   &   r   testImporterAttr.UncompressedZipImportTestCase.testImporterAttr  sP    2
 wsGV4c3s8D7"Ck+GUGB7r    c                L   R p\         R,           V/pV P                  V4       \        P                  P	                  ^ \
        4       \        P                  ! \         4      pV P                  VP                  ^4      ^4        T P                  TP                  ^ 4      ^ 4       R# )z[if 1:  # indent hack
        def test(val):
            assert(val)
            return val
r0   N)r   r~   r6   r&   r   r   r   r   r   testr"  AssertionError)r>   r  rf   r   s   &   r   testDefaultOptimizationLevel:UncompressedZipImportTestCase.testDefaultOptimizationLevel  s|     5#&U8$%%g.!a( SXXa[!,r    c                ^    \         R ,           \        /pV P                  R V\         RR7       R# )r0   )ro   Ns6  Some StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome StuffSome Stuffr   r   s   & r   testImport_WithStuff2UncompressedZipImportTestCase.testImport_WithStuff  s,     5(+E5'* 	 	,r    c                Z    V P                  \        P                  ! V4      \        4       R # rP   )r   inspect	getsourcer   )r>   modules   &&r   assertModuleSource0UncompressedZipImportTestCase.assertModuleSource  s    **62H=r    c                r    \         R ,           \        /pV P                  R V\         V P                  R7       R# )r0   r   N)r   r   r   r  r   s   & r   testGetSource+UncompressedZipImportTestCase.testGetSource  s*    5(+E5'0G0GHr    c                    \        \        \        R R4      \        \	        \        4      4      p\
        R,           \        \
        \        ,           V/pV P                  \        V\
        V P                  R7       R# )r   r   r0   r   N)	r   r   r   r   r   r   r   r   r  )r>   r   rf   s   &  r   testGetCompiledSource3UncompressedZipImportTestCase.testGetCompiledSource  sQ    wx&93HN5(7"C)GUG$2I2IJr    c                b    \         R ,           \        RR/pV P                  R V\         VR7       R# )r0   xyz.txtz>>> log.append(True)
r   Nr   )r>   callbackrf   s   && r   
runDoctest(UncompressedZipImportTestCase.runDoctest  s,    5(46E5'9r    c                    . p\         P                  R up\         n         \         P                  ! RVR\        4       R7       V\         n        V P	                  VR.4       R #   T\         n        i ; i)Nr  Tpackagemodule_relativeglobs)doctestmastertestfilelocalsr   )r>   r  log
old_masters   &&  r   doDoctestFile+UncompressedZipImportTestCase.doDoctestFile  s^    %,^^T"
GN	(64h
 (GNdV$ (GNs   "A" "A/c                <    V P                  V P                  4       R # rP   )r  r  r=   s   &r   testDoctestFile-UncompressedZipImportTestCase.testDoctestFile*  s    **+r    c                    . p\         P                  ! R VR\        4       R7      P                  4        V P	                  VR.4       R# )r  Tr  N)r  DocFileTestr  runr   )r>   r  r  s   && r   doDoctestSuite,UncompressedZipImportTestCase.doDoctestSuite-  s<    vt(	
 #%dV$r    c                <    V P                  V P                  4       R # rP   )r  r  r=   s   &r   testDoctestSuite.UncompressedZipImportTestCase.testDoctestSuite5  s    ++,r    c                R    VP                  4        \        R 4      h  \         d   pTP                  P                  p\        T^4      ^ ,          w  rErgT P                  T\        P                  4       4       \        TP                  ^4      ^ ,          w  rErgT P                  T\        P                  4       4       \        P                  ! 4       p\        T^T4       T P                  TP                  4       \         P"                  ! 4       '       d   RMR4        Rp?R# Rp?ii ; i)zThis ought to be impossiblez$    def do_raise(): raise TypeError
z$                    ^^^^^^^^^^^^^^^
N)do_raiser  	Exception__traceback__tb_nextr
   r   	raise_srcstripr   tb_frameioStringIOr   assertEndsWithgetvaluer   has_no_debug_ranges)	r>   r  etbr}   lnor   liness	   &&       r   doTraceback)UncompressedZipImportTestCase.doTraceback8  s    	@OO$ !!>??#  	((B%b!,Q/LA!T9??#45(a8;LA!T9??#45ARA

11337 	s    D&C3D!!D&c                r    \         R ,           \        /pV P                  RV\         V P                  R7       R# )r0   Nr   )r   r  r   r  r   s   & r   testTraceback+UncompressedZipImportTestCase.testTracebackN  s*    5),D%t/?/?@r    zneed an unencodable filenamec                @   \         P                  R ,           pV P                  \        R,           \        /V4       \
        P                  ! V4      P                  \        4      p\        P                  P                  V4      pVP                  P                  V4       R# z.zipr0   N)r   TESTFN_UNENCODABLEr~   r   r   rS   r!  rW  r   r   r[  rY  r\  )r>   filenamer^  r   s   &   r   testUnencodable-UncompressedZipImportTestCase.testUnencodableR  sl     //&8gox0(;$$X.88Ann--d3$r    c           	        \         P                  R ,           pV P                  \        R,           \        /V4       \
        P                  ! V4       V P                  \        4      ;_uu_ 4        \
        P                  ! \        P                  ! V4      4       RRR4       V P                  \        4      ;_uu_ 4        \
        P                  ! \        \        P                  ! V4      4      4       RRR4       V P                  \        4      ;_uu_ 4        \
        P                  ! \        \        P                  ! V4      4      4       RRR4       R#   + '       g   i     L; i  + '       g   i     L~; i  + '       g   i     R# ; ir  )r   TESTFNr~   r   r   rS   r!  r"  	TypeErrorr$   fsencoder   
memoryviewr>   r  s   & r   testBytesPath+UncompressedZipImportTestCase.testBytesPath[  s    ##f,gox0(;h'y))!!"++h"78 *y))!!)BKK,A"BC *y))!!*R[[-B"CD *)	 *))))))s$   .+E>4E(4E;E%	(E8	;F	c                ^    \         R ,           \        /pV P                  R V\         RR7       R# )r0   s   commentrm   Nr   r   s   & r   testComment)UncompressedZipImportTestCase.testCommentg  s$    5(+E5':>r    c                `    \         R ,           \        /pV P                  R V\         RRR7       R# )r0   s   hi)ro   rm   Ns@  cruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftcruftr   r   s   & r   testBeginningCruftAndComment:UncompressedZipImportTestCase.testBeginningCruftAndCommentk  s&    5(+E5'Nr    c                l    \         R ,           \        /pV P                  R V\         RR,          R7       R# )r0      cr  N  r   r   s   & r   testLargestPossibleComment8UncompressedZipImportTestCase.testLargestPossibleCommento  s)    5(+E5'4=3IJr    cpuc                L    V P                  4       pV P                  R VR4       R# )r0   f6Nr   r   r   s   & r   	testZip64'UncompressedZipImportTestCase.testZip64s  s     ""$E5$'r    c                ^    V P                  4       pV P                  R VRRR,          R7       R# )r0   f65536r  r  Nr  r  r   s   & r   testZip64CruftAndComment6UncompressedZipImportTestCase.testZip64CruftAndCommentx  s)    ""$E5(DM4JKr    c           
       a a \         P                  ! R RR R24       RS P                  R R2p\        P                  P                  \        V4      p\        P                  ! V4      pS P                  \        P                  \        4       V'       Eg    S P                  \        8w  d   \         P                  ! RR4       S P                  \        P                  \        P                  4       \        \        P                  R	4      ;_uu_ 4       pVP                  R
4       VP                  \        P                   P#                  4       4       VP%                  R\        P&                  4       VP                  \        P                   P#                  4       4       RRR4       \        P(                  ! \        P                  R4       \+        \        RS P                  RR7      ;_uu_ 4       oSP                  \        P                  R4       SP-                  \/        RR4      \0        4       SP                  \        P                  R4       RRR4       V 3R lpS P                  \        8X  d    \3        R\         R24       V! \        4       EMHR pV Uu. uF  qv! V4      V3NK  	  pp\        \        R	4      ;_uu_ 4       p\5        V4       Fa  w  r\        V
R4      ;_uu_ 4       pVP%                  V	\        P6                  4       VP                  VP9                  4       4       RRR4       Kc  	  RRR4       \+        \        R4      ;_uu_ 4       oS P;                  SP=                  R4      P>                  R4       S P;                  SP9                  R4      \0        P#                  4       RV R2R7       V V3R lpV! R4       V! R4       RRR4       S PA                  RR4       R#   + '       g   i     EL\; i  + '       g   i     EL; iu upi   + '       g   i     EK\  ; i  + '       g   i     EL; i  + '       g   i     Lz; i) 	largefileztest generates files >r   z# bytes and takes a long time to runsparse-zip64-cr-  z	-0x*.partr  z+test requires a lot of CPU for compression.rX   s   dataNrs   F)ru   strict_timestampsdata1z	module.pydata2c           
        < Rp\        V R4      ;_uu_ 4       pRp  VP                  4       pVP                  \        V4      4      pV'       g   MWQ8w  d   V'       g   \        P
                  P                  \        RSP                  R RVR R24      p\        P                  ! \        P
                  P                  V4      RR	7       \        VR
4      p\        RV4       VP                  V4       K  V'       d   VP                  4        RpK  V'       d   VP                  4        RRR4       R#   T'       d   TP                  4        i i ; i  + '       g   i     R# ; i)    rv   NTr   r-  -z#011xz.part)exist_okrX   Createds                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   )rd   tellry   r   r$   r&   r_   TEST_DATA_DIRru   rb   rc   printre   close)rh   
empty_pager}   partoffsetr   part_fullnamer>   s   &      r   make_sparse_zip_partsOUncompressedZipImportTestCase.testZip64LargeFile.<locals>.make_sparse_zip_parts  s   )
$%%D)"%&VVXF#$66#j/#:D#' %#1'+46GGLL(5*89I9I!8LA+1%.)?5&M
 %'KK(*(F15%& ,0t+DD$))]$C $

4 0#'$(JJL'+ JJL9 &%6   JJL  7 &%%s0   EAD3BD3=D3E3EEE"	z'Creating sparse parts to check in into :c                     \         P                  ! R V 4      ;p'       d   \        VP                  ^4      ^R7      # \	        RV : R24      h)z-(0x[0-9a-f]{9})\.part$)basezname=z does not fit expected pattern.)researchr   group
ValueError)rh   ms   & r   extract_offsetHUncompressedZipImportTestCase.testZip64LargeFile.<locals>.extract_offset  sC    		"<dCC1Cqwwqz33 ED7*I!JKKr    rv   rz	Recreate z, unexpected contents.)r   c                    < SP                  V 4      pSP                  VP                  R4       SP                  VP                  R4       R# )  r   Nr     r!  r   r   r   )getinfor   	date_timeassertGreater	file_size)rh   r   r>   r|   s   & r   assertDataEntryIUncompressedZipImportTestCase.testZip64LargeFile.<locals>.assertDataEntry  s9    IIdOE$$U__6KL&&uDr    r0   r  )        r(  r   )!r   requiresru   r$   r&   r_   r
  globrZ   r   rw   r   r   r  rd   re   linesepencodeseekSEEK_CURutimer   r   r   r   r  rj  SEEK_SETry   r   r"  r#  r   )r>   
parts_globfull_parts_globpre_built_zip_partsr}   r  r  r   offset_partsr  part_fnr  r&  r|   s   f            @r   testZip64LargeFile0UncompressedZipImportTestCase.testZip64LargeFile}  s>   $ZL 1 	
" &d&6&6q%9C
'',,}jA"ii8	(((3"":-  A OOI,,i.>.>?i&&-- 

))+,{BKK0

))+,	 .
 HHY%%z2 ,,"'	 
 	(('2

K)>? 	(('2)@ :-?aPQ%h/L =PP<Oq^A.2<OLPh%%'-l';OFgt,,vr{{3		, -, (< & 3''1  IIk*446K   FF;'):#O#44JK ! E  (( ( 	""5(3i .--  p Q -,, &%% ('sR   BO10A!PP%P3-A P-P3A<Q1P	P	P0)
P33Q	Q	 )JrE   rF   rG   rH   r   ru   r?   r:  rk   r   r~   rx   r   r   r   r   r   r   r   r   unittestmockpatchr   r   r   r   r   r   r   r   r  r  r  r  r  r  rF  rI  re  rr  ru  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  skipIfr   r  r  r  r  r  r  r   requires_resourcer  r  r6  rI   rJ   rK   s   @r   rN   rN   U   s    K, '/ #& &. +/7;DF(( (b ($<A;#';02;@B+--
6 ]]5x@6 A6*+
=++7B	B22))!HFKFZGFR:8x@BB81Ff	R	8- ,>IK:

%,%-@,A __Y11T935%5%
E?OK u%( &( u%L &Lr4 r4r    rN   c                       ] tR tRt]tRtR# )CompressedZipImportTestCasei  r8  N)rE   rF   rG   rH   r	   ru   rI   r8  r    r   r?  r?    s    Kr    r?  c                      a  ] tR tRt o R tR tR tR tR tR t	]
P                  ! ]P                  R4      R	 4       tR
 tR tRtV tR# )BadFileZipImportTestCasei  c                d    V P                  \        P                  \        P                  V4       R # rP   )r"  rS   r   r!  r  s   &&r   assertZipFailure)BadFileZipImportTestCase.assertZipFailure  s#    )22#//	;r    c                (    V P                  R 4       R# )AdfjdkFJKDFJjdklfjsNrC  r=   s   &r   
testNoFile#BadFileZipImportTestCase.testNoFile  s    34r    c                (    V P                  R 4       R# )rq   NrG  r=   s   &r   testEmptyFilename*BadFileZipImportTestCase.testEmptyFilename  s    b!r    c           	     2   V P                  \        \        P                  R 4       V P                  \        \        P                  \        R R7       V P                  \        \        P                  \        \        P                  ! \        4      4      4       R # )N)kwd)r"  r  rS   r!  r   r<  r$   r  r=   s   &r   testBadArgs$BadFileZipImportTestCase.testBadArgs  s`    )Y%:%:DA)Y%:%:GN)Y%:%:r{{734	6r    c                6    V P                  R R,          4       R# )Ai  NrG  r=   s   &r   testFilenameTooLong,BadFileZipImportTestCase.testFilenameTooLong  s    cEk*r    c                    \         P                  ! \        4       \         P                  ! \        4       V P	                  \        4       R # rP   )r   rw   r   create_empty_filerC  r=   s   &r   testEmptyFile&BadFileZipImportTestCase.testEmptyFile  s,    !##G,g&r    zmode 000 not supported.c                T   \         P                  ! \        4       \        P                  ! \        \        P
                  ^ 4      p \        P                  ! V4       V P                  \        P                  4      ;_uu_ 4       p\        P                  ! \        4       RRR4       \        P                  ! \        R4       \         P                  ! \        4       R#   + '       g   i     LG; i  \        P                  ! \        R4       \         P                  ! \        4       i ; i)r   Ni  )r   rw   r   r$   rd   O_CREATr  r"  rS   r   r!  chmod)r>   fdcms   &  r   testFileUnreadable+BadFileZipImportTestCase.testFileUnreadable  s    !WWWbjj#.		&HHRL""9#;#;<<%%g. =
 HHWe$W% =<
 HHWe$W%s$   =C0 CC0 C-	(C0 07D'c                    \         P                  ! \        4       \        \        R 4      pVP	                  R4       VP                  4        V P                  \        4       R# )w+Naaaaaaaaaaaaaaaaaaaaaa)r   rw   r   rd   re   r  rC  )r>   rj   s   & r   testNotZipFile'BadFileZipImportTestCase.testNotZipFile  s?    !'4 


g&r    c                   \         P                  ! \        4       \        \        R 4      pVP	                  \
        P                  ! RR4      4       VP	                  R4       VP                  4        \        P                  ! \        4      p \        P                  ! 4       ;_uu_ 4        \        P                  ! R\        4       V P                  \        VP                   R4       RRR4       V P                  \        VP"                  R4       V P                  \        VP$                  R4       V P                  \        VP&                  R4       V P                  \        VP(                  R4       V P                  \        VP*                  R4       V P                  \        VP,                  R4       V P                  \        VP.                  R4       \        P0                  pV P3                  VP%                  R4      4       \        P                  ! 4       ;_uu_ 4        \        P                  ! R\        4       V P                  W2P                   R4       RRR4       V P                  W2P*                  R4       V P                  \4        VP,                  R4       V P                  W2P.                  R4       V P                  W2P(                  R4       \        P6                  P9                  4        R#   + '       g   i     EL; i  + '       g   i     L; i  \        P6                  P9                  4        i ; i)ra  z=IiPKrO  Nabcaaaaaaaaaaaaaaaaaa)r   rw   r   rd   re   r   r   r  rS   r!  rQ  rR  rS  rT  r"  r  rU  find_modulerW  r\  r#  r%  r  r$  r   r*  r  rT   r:   )r>   rj   r|   errors   &   r   _testBogusZipFile*BadFileZipImportTestCase._testBogusZipFile'  s   !'4 
T:./


!!'*	3((**%%h0BC!!)Q]]DA + i=id;i=it<iT:iT:it<,,Eakk%01((**%%h0BC!!%> + eZZ7gqzz59e\\59e\\59**002- +** +* **002s>   L *=K8'D<L #8LA=L 8L			L L	L  L?r8  N)rE   rF   rG   rH   rC  rH  rK  rO  rS  rW  r9  r<  r   is_wasir^  rc  rj  rI   rJ   rK   s   @r   rA  rA    sW     ;5"6+'
 __W__&?@& A&'3 3r    rA  c                  :    \         P                  ! \        4       R # rP   )r   rw   r   r8  r    r   tearDownModulern  I  s    Wr    __main__)Er6   r$   r   r*  r   importlib.utilr  r   r   r9  unittest.mockrQ  r  r   test.supportr   r   zipfiler   r   r   r	   rS   rQ   r  r  r  	tracebackr
   r   r   r   r   r   r   r   r  r   r'   r   r   r   r   r8  r7  r   r   r6  r&   r9  r:  r   r_   rc   r+  r
  r   cache_from_sourcepyc_filer   TestCaser3   rN   requires_zlibr?  rA  rn  rE   mainr8  r    r   <module>rz     s   
 	     	       & " > >     	 9 9 (GV
,/	% iikGS#h-0 		77??;'77???+RWW__X68HI>>++GeO<
<h// <"Z4$; Z4z 	"?  O3x00 O3d zMMO c!  Ds   .F5 5	GG