-
<c       s    d  Z    d k Z d k Z d k Z  d k Z  y 	 d k Z Wn 
 e j
 o  e Z n X d d d d d d d d	 g Z  d e	 f d
     YZ
  e
 Z  d Z  d Z  d Z  d Z  d Z  d Z  d Z  d Z " d Z # d Z $ d Z % d Z & d Z ' d Z ( d Z ) d Z * d Z + d Z , d Z - d Z . d Z  / d Z! 0 d Z" 1 d  Z# 2 d! Z$ 3 d" Z% 4 d# Z& 7 d Z' 8 d Z( 9 d Z) : d Z* ; d Z+ < d Z, = d Z- > d Z. ? d Z/ @ d Z0 A d Z1 B d Z2 E d k3 Z3 F e3 i4 f Z5 G e6 e3 d$  o H e5 e3 i7 f Z5 n K d%   Z8 [ d f  d&     YZ9  e i: d' j o  d(   Z; n  d)   Z;  d f  d*     YZ< d	 e< f d+     YZ= d S(,   s   Read and write ZIP files.Ns
   BadZipfiles   errors
   ZIP_STOREDs   ZIP_DEFLATEDs
   is_zipfiles   ZipInfos   ZipFiles	   PyZipFilec      s    t  Z  RS(   N(   s   __name__s
   __module__(    (    (    s   /usr/lib/python2.2/zipfile.pys
   BadZipfile s   	i    i   s   <4s4H2lHs   PKs   <4s4B4H3l5H2ls   PKs   <4s2B4H3l2Hs   PKi   i   i   i   i   i   i   i	   i
   i   i   i   i   i   i   i   i   s   UnicodeTypec    s   K O P yx Q t  |  d  } R | i d d  S | i   } T | i   U | d d !d j o | d d j o V d	 Sn Wn W t j
 o
 X n Xd
 S(   s   Quickly see if file is a ZIP file by checking the magic number.

    Will not accept a ZIP archive with an ending comment.
    s   rbii   i    i   s   PKis     i   N(   s   opens   filenames   fpins   seeks   reads   endrecs   closes   IOError(   s   filenames   fpins   endrec(    (    s   /usr/lib/python2.2/zipfile.pys
   is_zipfileK s   (c      sD   [ t  Z d  Z \ ^ d d d d d d d f d  Z t d   Z RS(   s>   Class with attributes describing each file in the ZIP archive.s   NoNamei  i   i    c    s   ^ _ t  |  |  _ ` | |  _ b t |  _ c d |  _ d d |  _ e d |  _ f d |  _	 g d |  _
 h d |  _ i d |  _ j d |  _ k d |  _ l d |  _ d  S(   Ns    i    i   (   s	   _normpaths   filenames   selfs	   date_times
   ZIP_STOREDs   compress_types   comments   extras   create_systems   create_versions   extract_versions   reserveds	   flag_bitss   volumes   internal_attrs   external_attr(   s   selfs   filenames	   date_time(    (    s   /usr/lib/python2.2/zipfile.pys   __init__^ s   c    s'  t u v |  i } w | d d d >| d d >B| d B} x | d d >| d	 d >B| d d B} y |  i d
 @o { d } } } n% } |  i } ~ |  i }  |  i }  t	 i
 t t  |  i |  i |  i  |  i | | |  | |  t |  i  t |  i   }  | |  i |  i Sd S(   s'   Return the per-file header as a string.i    i  i	   i   i   i   i   i   i   i   N(   s   selfs	   date_times   dts   dosdates   dostimes	   flag_bitss   CRCs   compress_sizes	   file_sizes   structs   packs   structFileHeaders   stringFileHeaders   extract_versions   reserveds   compress_types   lens   filenames   extras   header(   s   selfs   headers   CRCs   compress_sizes	   file_sizes   dosdates   dts   dostime(    (    s   /usr/lib/python2.2/zipfile.pys
   FileHeadert s   ))	!(   s   __name__s
   __module__s   __doc__s   __init__s
   FileHeader(    (    (    s   /usr/lib/python2.2/zipfile.pys   ZipInfo[ s   $s   /c    s     |  i t i d  Sd  S(   Ns   /(   s   paths   replaces   oss   sep(   s   path(    (    s   /usr/lib/python2.2/zipfile.pys	   _normpath s   c    s     |  Sd  S(   N(   s   path(   s   path(    (    s   /usr/lib/python2.2/zipfile.pys	   _normpath s   c      s    t  Z d  Z   e Z  d e d  Z  d   Z  d   Z !d   Z	 (d   Z
 -d   Z 4d   Z <d	   Z @d
   Z bd   Z se e d  Z d   Z d   Z d   Z RS(   s   Class with methods to open, read, write, close, list zip files.

    z = ZipFile(file, mode="r", compression=ZIP_STORED)

    file: Either the path to the file, or a file-like object.
          If it is a path, the file will be opened and closed by ZipFile.
    mode: The mode can be either read "r", write "w" or append "a".
    compression: ZIP_STORED (no compression) or ZIP_DEFLATED (requires zlib).
    s   rc    sU     | t j o  n<  | t j o  t o  t d  n n  t d   d |  _  h  |  _  g  |  _  | |  _   | d |  _	 }  t |  t j oY  d |  _  | |  _  h  d d <d d <d d	 <}  t | | |  |  _ n1  d
 |  _  | |  _  t | d t  |  _  | d j o  |  i   n  | d j o  n  | d	 j o  |  i }  | i d d   | i   }  | d d !t j o | d d j o'  |  i    | i |  i d  n  | i d d  n;  |  i o   |  i i    t |  _ n  t d  d S(   s>   Open the ZIP file with mode read "r", write "w" or append "a".s.   Compression requires the (missing) zlib modules(   That compression method is not supportedi    s   rbs   rs   wbs   ws   r+bs   ai   s   nameii   i   is     s   Mode must be "r", "w" or "a"N(   s   compressions
   ZIP_STOREDs   ZIP_DEFLATEDs   zlibs   RuntimeErrors   selfs   debugs
   NameToInfos   filelists   modes   keys   types   files   _STRING_TYPESs   _filePasseds   filenames   modeDicts   opens   fps   getattrs   Nones   _GetContentss   seeks   reads   endrecs   stringEndArchives	   start_dirs   close(   s   selfs   files   modes   compressions   fps   modeDicts   endrecs   key(    (    s   /usr/lib/python2.2/zipfile.pys   __init__ sH   $(c    sk      y  |  i   WnJ  t j
 o;  |  i o   |  i i    t |  _ n    n Xd S(   sO   Read the directory, making sure we close the file if the format
        is bad.N(   s   selfs   _RealGetContentss
   BadZipfiles   _filePasseds   fps   closes   None(   s   self(    (    s   /usr/lib/python2.2/zipfile.pys   _GetContents s   c    sQ     |  i }  | i d d   | i   d }  | i d  }  | d d !t j p | d d j o  t d  n  t	 i
 t |  }  |  i d	 j o  | GHn  | d
 }  | d }  | d | }  | | }  |  i d j o  d G| G| G| GHn  | | |  _  | i |  i d   d }
  x |
 | j  o | i d  }  |
 d }
  | d d !t j o  t d  n  t	 i
 t |  }  |  i d j o  | GHn  | i | t  }  t |  }  | i | t  | _  | i | t  | _  |
 | t | t | t }
 | t | | _ | d	 d !\ | _ | _  | _! | _" | _# | _$ } } | _' | _( | _) | d d !\ | _* | _+ | _, | d ?d | d
 ?d @| d @| d ?| d
 ?d @| d @d f | _- 
|  i. i/ |  | |  i0 | i <|  i d j o d G|
 GHn qNWx |  i. D] }	 | i |	 i d  | i d  } | d d !t3 j o t d  n t	 i
 t4 |  } |	 i d | t5 | t6 |	 _7 | i | t5  } | |	 i j o t9 d |	 i | f  n qsWd S(   s/   Read in the table of contents for the ZIP file.ii   i   i    i   is     s.   File is not a zip file, or ends with a commenti   i   i   s   given, inferred, offseti.   s&   Bad magic number for central directoryi   i   i   i	   i  i   i   i?   s   totali   s    Bad magic number for file headers3   File name in directory "%s" and header "%s" differ.N(:   s   selfs   fps   seeks   tells   filesizes   reads   endrecs   stringEndArchives
   BadZipfiles   structs   unpacks   structEndArchives   debugs   size_cds	   offset_cds   xs   concats	   start_dirs   totals   centdirs   stringCentralDirs   structCentralDirs   _CD_FILENAME_LENGTHs   filenames   ZipInfos   _CD_EXTRA_FIELD_LENGTHs   extras   _CD_COMMENT_LENGTHs   comments   _CD_LOCAL_HEADER_OFFSETs   header_offsets   create_versions   create_systems   extract_versions   reserveds	   flag_bitss   compress_types   ts   ds   CRCs   compress_sizes	   file_sizes   volumes   internal_attrs   external_attrs	   date_times   filelists   appends
   NameToInfos   datas   fheaders   stringFileHeaders   structFileHeaders   _FH_FILENAME_LENGTHs   _FH_EXTRA_FIELD_LENGTHs   file_offsets   fnames   RuntimeError(   s   selfs   fps   centdirs   fnames   concats   fheaders   ds	   offset_cds   filenames   datas   totals   filesizes   ts   size_cds   xs   endrec(    (    s   /usr/lib/python2.2/zipfile.pys   _RealGetContents sh   (	 !L"F 	#c    sG   !"#g  } $x' |  i D$] } %| i | i  q W&| Sd S(   s+   Return a list of file names in the archive.N(   s   ls   selfs   filelists   datas   appends   filename(   s   selfs   datas   l(    (    s   /usr/lib/python2.2/zipfile.pys   namelist!s   	 	c    s   (*+|  i Sd S(   sJ   Return a list of class ZipInfo instances for files in the
        archive.N(   s   selfs   filelist(   s   self(    (    s   /usr/lib/python2.2/zipfile.pys   infolist(s   c    sd   -./d d d d f GH0x? |  i D0]1 } 1d | i } 2d | i | | i f GHq( Wd S(   s+   Print a table of contents for the zip file.s   %-46s %19s %12ss	   File Names   Modified    s   Sizes   %d-%02d-%02d %02d:%02d:%02ds   %-46s %s %12dN(   s   selfs   filelists   zinfos	   date_times   dates   filenames	   file_size(   s   selfs   dates   zinfo(    (    s   /usr/lib/python2.2/zipfile.pys   printdir-s    	c    sU   456xE |  i D6]7 } 7y 8|  i | i  Wn 9:| i Sn Xq Wd S(   s%   Read all the files and check the CRC.N(   s   selfs   filelists   zinfos   reads   filename(   s   selfs   zinfo(    (    s   /usr/lib/python2.2/zipfile.pys   testzip4s    	c    s   <=>|  i | Sd S(   s,   Return the instance of ZipInfo given 'name'.N(   s   selfs
   NameToInfos   name(   s   selfs   name(    (    s   /usr/lib/python2.2/zipfile.pys   getinfo<s   c    s  @AB|  i d d f j o Ct d  n D|  i o Et d  n G|  i |  } H|  i i   } I|  i i	 | i
 d  J|  i i | i  } K|  i i	 | d  L| i t j o Mn N| i t j oz Ot o Pt d  n St i d  } T| i |  } V| i d  | i   } W| o X| | } n n Zt d	 | i | f  ]t i |  } ^| | i j o _t d
 |  n `| Sd S(   s)   Return file bytes (as a string) for name.s   rs   as   read() requires mode "r" or "a"s3   Attempt to read ZIP archive that was already closedi    s1   De-compression requires the (missing) zlib moduleis   Zs-   Unsupported compression method %d for file %ss   Bad CRC-32 for file %sN(   s   selfs   modes   RuntimeErrors   fps   getinfos   names   zinfos   tells   fileposs   seeks   file_offsets   reads   compress_sizes   bytess   compress_types
   ZIP_STOREDs   ZIP_DEFLATEDs   zlibs   decompressobjs   dcs
   decompresss   flushs   exs
   BadZipfiles   binasciis   crc32s   crcs   CRC(   s   selfs   names   fileposs   bytess   dcs   crcs   exs   zinfo(    (    s   /usr/lib/python2.2/zipfile.pys   read@s2   
c    s   bcd|  i i | i  o$ e|  i o fd G| i GHn n g|  i d d f j o ht d  n i|  i o jt d  n l| i	 t
 j o t o mt d  n o| i	 t t
 f j o pt d  n d S(	   s6   Check for errors before writing a file to the archive.s   Duplicate name:s   ws   as    write() requires mode "w" or "a"s4   Attempt to write ZIP archive that was already closeds.   Compression requires the (missing) zlib modules(   That compression method is not supportedN(   s   selfs
   NameToInfos   has_keys   zinfos   filenames   debugs   modes   RuntimeErrors   fps   compress_types   ZIP_DEFLATEDs   zlibs
   ZIP_STORED(   s   selfs   zinfo(    (    s   /usr/lib/python2.2/zipfile.pys   _writecheckbs   c    sg  suvt  i |  } wt i | d  } x| d d !}
 z| t	 j o {t
 | |
  }	 n }t
 | |
  }	 ~| d d >|	 _ | t	 j o |  i |	 _ n | |	 _ |  i |	  t | d  } d |	 _ |  i i   |	 _ d |	 _ } d |	 _ } d |	 _ } |  i i |	 i    |  i i   |	 _ |	 i t j o% t i t i t i  d  } n
 t	 } x d o | i" d d  } | o Pn | t$ |  } t% i& | |  } | o) | i' |  } | t$ |  } n |  i i |  qW| i(   | oE | i)   } | t$ |  } |  i i |  | |	 _ n | |	 _ | |	 _ | |	 _ |  i i   } |  i i+ |	 i d	 d  |  i i t, i- d
 |	 i |	 i |	 i   |  i i+ | d  |  i. i/ |	  |	 |  i0 |	 i <d S(   sL   Put the bytes from filename into the archive under the name
        arcname.i   i    i   i   s   rbii   i   i   s   <lllN(1   s   oss   stats   filenames   sts   times	   localtimes   mtimes	   date_times   arcnames   Nones   ZipInfos   zinfos   external_attrs   compress_types   selfs   compressions   _writechecks   opens   fps	   flag_bitss   tells   header_offsets   CRCs   compress_sizes	   file_sizes   writes
   FileHeaders   file_offsets   ZIP_DEFLATEDs   zlibs   compressobjs   Z_DEFAULT_COMPRESSIONs   DEFLATEDs   cmprs   reads   bufs   lens   binasciis   crc32s   compresss   closes   flushs   positions   seeks   structs   packs   filelists   appends
   NameToInfo(   s   selfs   filenames   arcnames   compress_types   fps   mtimes   cmprs   CRCs	   file_sizes   zinfos	   date_times   bufs   sts   compress_sizes   position(    (    s   /usr/lib/python2.2/zipfile.pys   writessf   	 


!c    sx  |  i |  t |  | _ t i |  | _ | i	 t
 j oS t i t i t i d  } | i |  | i   } t |  | _ n | i | _ |  i i   | _ |  i i | i    |  i i   | _ |  i i |  | i d @o5 |  i i t i d | i | i | i   n |  i i |  | |  i | i <d S(   sK   Write a file into the archive.  The contents is the string
        'bytes'.ii   s   <lllN(    s   selfs   _writechecks   zinfos   lens   bytess	   file_sizes   binasciis   crc32s   CRCs   compress_types   ZIP_DEFLATEDs   zlibs   compressobjs   Z_DEFAULT_COMPRESSIONs   DEFLATEDs   cos   compresss   flushs   compress_sizes   fps   tells   header_offsets   writes
   FileHeaders   file_offsets	   flag_bitss   structs   packs   filelists   appends
   NameToInfos   filename(   s   selfs   zinfos   bytess   co(    (    s   /usr/lib/python2.2/zipfile.pys   writestrs&   !c    s   |  i   d S(   s2   Call the "close()" method in case the user forgot.N(   s   selfs   close(   s   self(    (    s   /usr/lib/python2.2/zipfile.pys   __del__s   c 
   sm  |  i t j o d Sn |  i d d f j od } |  i i   }	 xs|  i D]e} | d } | i	 } | d d d >| d d >B| d	 B} | d
 d >| d d >B| d d	 B} t i t t | i | i | i | i | i | i | | | i | i | i t | i  t | i  t | i  d | i | i | i   } |  i i" |  |  i i" | i  |  i i" | i  |  i i" | i  qe W|  i i   } t i t$ t% d d | | | |	 |	 d 	 } |  i i" |  |  i i'   n |  i( o |  i i)   n t |  _ d S(   sJ   Close the file, and for mode "w" and "a" write the ending
        records.Ns   ws   ai    i   i  i	   i   i   i   i   i   (*   s   selfs   fps   Nones   modes   counts   tells   pos1s   filelists   zinfos	   date_times   dts   dosdates   dostimes   structs   packs   structCentralDirs   stringCentralDirs   create_versions   create_systems   extract_versions   reserveds	   flag_bitss   compress_types   CRCs   compress_sizes	   file_sizes   lens   filenames   extras   comments   internal_attrs   external_attrs   header_offsets   centdirs   writes   pos2s   structEndArchives   stringEndArchives   endrecs   flushs   _filePasseds   close(
   s   selfs   counts   centdirs   dostimes   endrecs   dosdates   dts   zinfos   pos2s   pos1(    (    s   /usr/lib/python2.2/zipfile.pys   closes@   	 	))'"(   s   __name__s
   __module__s   __doc__s   Nones   fps
   ZIP_STOREDs   __init__s   _GetContentss   _RealGetContentss   namelists   infolists   printdirs   testzips   getinfos   reads   _writechecks   writes   writestrs   __del__s   close(    (    (    s   /usr/lib/python2.2/zipfile.pys   ZipFile s    		0F"<c      s/   t  Z d  Z d d  Z 3d   Z RS(   sD   Class to create ZIP archives with Python library files and packages.s    c    s  t  i i |  \ } } t  i i |  o t  i i | d  } t  i i	 |  o| o d | | f } n
 | } |  i o d G| Gd G| GHn 	|  i | d d !|  \ }
 }	 
|  i o d G|	 GHn |  i |
 |	  t  i |  } | i d  x| D] } t  i i | |  } t  i i |  \ } } t  i i |  o@ t  i i	 t  i i | d   o |  i | |  n nj | d j oY |  i | d d !|  \ }
 }	 |  i o d G|	 GHn |  i |
 |	  n q2Wn |  i o  d	 G| GHn !x t  i |  D!] } "t  i i | |  } #t  i i |  \ } } $| d j oY %|  i | d d !&|  \ }
 }	 '|  i o (d G|	 GHn )|  i |
 |	  n qeWnw +| d d j o ,t d
  n .|  i | d d !|  \ }
 }	 /|  i o 0d G|	 GHn 1|  i |
 |	  d S(   s,  Add all files from "pathname" to the ZIP archive.

        If pathname is a package directory, search the directory and
        all package subdirectories recursively for all *.py and enter
        the modules into the archive.  If pathname is a plain
        directory, listdir *.py and enter all modules.  Else, pathname
        must be a Python *.py file and the module will be put into the
        archive.  Added modules are always module.pyo or module.pyc.
        This method will compile the module.py into module.pyc if
        necessary.
        s   __init__.pys   %s/%ss   Adding package ins   asi    is   Addings   .pys   Adding files from directorys.   Files added with writepy() must end with ".py"s   Adding fileN(   s   oss   paths   splits   pathnames   dirs   names   isdirs   joins   initnames   isfiles   basenames   selfs   debugs   _get_codenames   fnames   arcnames   writes   listdirs   dirlists   removes   filenames   splitexts   roots   exts   writepys   RuntimeError(   s   selfs   pathnames   basenames   dirlists   names   roots   initnames   filenames   exts   arcnames   fnames   paths   dir(    (    s   /usr/lib/python2.2/zipfile.pys   writepys^   
	"
 	% 	"c 	   sR  39:| d } ;| d } <| d } =t i i |  o$ t i |  d t i |  d j o ?| } n @t i i |  p$ t i |  d t i |  d j  oI Bd k	 } C|  i o Dd G| GHn E| i | |  F| } n
 H| } It i i |  d } J| o Kd | | f } n L| | f Sd S(	   s   Return (filename, archivename) for the path.

        Given a module name path, return the correct file path and
        archive name, compiling if necessary.  For example, given
        /python/lib/string, return (/python/lib/string.pyc, string).
        s   .pys   .pycs   .pyoi   Ns	   Compilingi   s   %s/%s(   s   pathnames   file_pys   file_pycs   file_pyos   oss   paths   isfiles   stats   fnames
   py_compiles   selfs   debugs   compiles   splits   archivenames   basename(	   s   selfs   pathnames   basenames   file_pycs   fnames
   py_compiles   file_pys   archivenames   file_pyo(    (    s   /usr/lib/python2.2/zipfile.pys   _get_codename3s"   =>	
(   s   __name__s
   __module__s   __doc__s   writepys   _get_codename(    (    (    s   /usr/lib/python2.2/zipfile.pys	   PyZipFiles   A(>   s   __doc__s   structs   oss   times   binasciis   zlibs   ImportErrors   Nones   __all__s	   Exceptions
   BadZipfiles   errors
   ZIP_STOREDs   ZIP_DEFLATEDs   structEndArchives   stringEndArchives   structCentralDirs   stringCentralDirs   structFileHeaders   stringFileHeaders   _CD_SIGNATUREs   _CD_CREATE_VERSIONs   _CD_CREATE_SYSTEMs   _CD_EXTRACT_VERSIONs   _CD_EXTRACT_SYSTEMs   _CD_FLAG_BITSs   _CD_COMPRESS_TYPEs   _CD_TIMEs   _CD_DATEs   _CD_CRCs   _CD_COMPRESSED_SIZEs   _CD_UNCOMPRESSED_SIZEs   _CD_FILENAME_LENGTHs   _CD_EXTRA_FIELD_LENGTHs   _CD_COMMENT_LENGTHs   _CD_DISK_NUMBER_STARTs   _CD_INTERNAL_FILE_ATTRIBUTESs   _CD_EXTERNAL_FILE_ATTRIBUTESs   _CD_LOCAL_HEADER_OFFSETs   _FH_SIGNATUREs   _FH_EXTRACT_VERSIONs   _FH_EXTRACT_SYSTEMs   _FH_GENERAL_PURPOSE_FLAG_BITSs   _FH_COMPRESSION_METHODs   _FH_LAST_MOD_TIMEs   _FH_LAST_MOD_DATEs   _FH_CRCs   _FH_COMPRESSED_SIZEs   _FH_UNCOMPRESSED_SIZEs   _FH_FILENAME_LENGTHs   _FH_EXTRA_FIELD_LENGTHs   typess
   StringTypes   _STRING_TYPESs   hasattrs   UnicodeTypes
   is_zipfiles   ZipInfos   seps	   _normpaths   ZipFiles	   PyZipFile(6   s   structFileHeaders   _FH_UNCOMPRESSED_SIZEs   _FH_EXTRA_FIELD_LENGTHs   ZipFiles   _FH_COMPRESSION_METHODs
   is_zipfiles   stringFileHeaders   ZIP_DEFLATEDs   _CD_COMMENT_LENGTHs   _CD_CRCs   _FH_FILENAME_LENGTHs   binasciis	   PyZipFiles   structEndArchives   __all__s	   _normpaths   _STRING_TYPESs   _CD_SIGNATUREs   _CD_COMPRESS_TYPEs   _FH_GENERAL_PURPOSE_FLAG_BITSs   _CD_EXTRA_FIELD_LENGTHs   _FH_LAST_MOD_DATEs   _FH_CRCs   times   structs
   ZIP_STOREDs   _CD_DATEs   stringEndArchives   _CD_EXTERNAL_FILE_ATTRIBUTESs   structCentralDirs   _FH_LAST_MOD_TIMEs   typess   _FH_SIGNATUREs   _CD_INTERNAL_FILE_ATTRIBUTESs   _CD_CREATE_SYSTEMs   _CD_FILENAME_LENGTHs   _CD_EXTRACT_SYSTEMs   zlibs   _CD_TIMEs   _CD_CREATE_VERSIONs   stringCentralDirs   _CD_COMPRESSED_SIZEs   _FH_COMPRESSED_SIZEs   _CD_LOCAL_HEADER_OFFSETs   ZipInfos
   BadZipfiles   errors   _CD_UNCOMPRESSED_SIZEs   _FH_EXTRACT_VERSIONs   _CD_FLAG_BITSs   oss   _CD_DISK_NUMBER_STARTs   _CD_EXTRACT_VERSIONs   _FH_EXTRACT_SYSTEM(    (    s   /usr/lib/python2.2/zipfile.pys   ? sx   !																																								0 ]