-í
ç¶<c       sO    d  Z    d k Z  d k Z  d k Z  d d d d d d g Z  d e i f d „  ƒ  YZ c e a e d	 „  Z … d
 „  Z	 ˜ d „  Z
 ¯ d Z ¶ h  e d <e d <e d <e d <d d <d d <Z ¿ h  d d <d d <d d <d d <d d <d d <Z È d „  Z Í d „  Z × d „  Z Ý d „  Z d S(   s<   Various tools used by MIME-reading or MIME-writing programs.Ns   Messages   choose_boundarys   encodes   decodes   copyliterals
   copybinaryc      s    t  Z d  Z   d d „ Z  d „  Z ) d „  Z ; d „  Z > d „  Z F d „  Z N d „  Z	 S d	 „  Z
 V d
 „  Z Y d „  Z RS(   sˆ   A derived class of rfc822.Message that knows about MIME headers and
    contains some hooks for decoding encoded and multipart messages.i   c    sd     t  i i |  | | ƒ  |  i d ƒ |  _  |  i d ƒ |  _  |  i	 ƒ   |  i
 ƒ  d  S(   Ns   content-transfer-encodings   content-type(   s   rfc822s   Messages   __init__s   selfs   fps   seekables	   getheaders   encodingheaders
   typeheaders	   parsetypes
   parseplist(   s   selfs   fps   seekable(    (    s   /usr/lib/python2.2/mimetools.pys   __init__ s
   c    s    |  i }  | t j o  d } n  d | j o3  | i d ƒ }  | | |  _  | |  } n ! d |  _ " | i d ƒ } # x: t	 t
 | ƒ ƒ D# ]# } $ | | i ƒ  i ƒ  | | <q£ W% d i | ƒ |  _ & | d |  _ ' d i | d ƒ |  _ d  S(   Ns
   text/plains   ;s    s   /i    i   (   s   selfs
   typeheaders   strs   Nones   indexs   is	   plisttexts   splits   fieldss   ranges   lens   strips   lowers   joins   types   maintypes   subtype(   s   selfs   strs   is   fields(    (    s   /usr/lib/python2.2/mimetools.pys	   parsetype s    	!c    s  ) * |  i } + g  |  _ , xã , | d  d j oÎ - | d } . d | j o 0 | i d ƒ } n 2 t | ƒ } 3 | |  } 4 d | j oE 5 | i d ƒ } 6 | |  i	 ƒ  i
 ƒ  d | | d i	 ƒ  } n 8 |  i i | i	 ƒ  ƒ 9 | | } q! Wd  S(   Ni   s   ;s   =(   s   selfs	   plisttexts   strs   plists   indexs   ends   lens   fs   is   strips   lowers   append(   s   selfs   ends   strs   fs   i(    (    s   /usr/lib/python2.2/mimetools.pys
   parseplist) s    3c    s   ; < |  i Sd  S(   N(   s   selfs   plist(   s   self(    (    s   /usr/lib/python2.2/mimetools.pys   getplist; s   c    sv   > ? | i ƒ  d } @ t | ƒ } A x@ |  i DA ]2 } B | |  | j o C t i | | ƒ Sn q2 WD t	 Sd  S(   Ns   =(
   s   names   lowers   lens   ns   selfs   plists   ps   rfc822s   unquotes   None(   s   selfs   names   ps   n(    (    s   /usr/lib/python2.2/mimetools.pys   getparam> s    	c    sq   F G g  } H xT |  i DH ]F } I | i d ƒ } J | d j o K | i | |  i ƒ  ƒ n q WL | Sd  S(   Ns   =i    (   s   results   selfs   plists   ps   finds   is   appends   lower(   s   selfs   is   ps   result(    (    s   /usr/lib/python2.2/mimetools.pys   getparamnamesF s   	 	"c    s5   N O |  i t j o P d Sn Q |  i i ƒ  Sd  S(   Ns   7bit(   s   selfs   encodingheaders   Nones   lower(   s   self(    (    s   /usr/lib/python2.2/mimetools.pys   getencodingN s   c    s   S T |  i Sd  S(   N(   s   selfs   type(   s   self(    (    s   /usr/lib/python2.2/mimetools.pys   gettypeS s   c    s   V W |  i Sd  S(   N(   s   selfs   maintype(   s   self(    (    s   /usr/lib/python2.2/mimetools.pys   getmaintypeV s   c    s   Y Z |  i Sd  S(   N(   s   selfs   subtype(   s   self(    (    s   /usr/lib/python2.2/mimetools.pys
   getsubtypeY s   (   s   __name__s
   __module__s   __doc__s   __init__s	   parsetypes
   parseplists   getplists   getparams   getparamnamess   getencodings   gettypes   getmaintypes
   getsubtype(    (    (    s   /usr/lib/python2.2/mimetools.pys   Message s   	c  	   s  e l n o d k  } p d k } q t t j o§ r d k } s d k } t | i | i ƒ  ƒ }  u y v | i	 ƒ  } Wn w x d } n Xy y z | i ƒ  } Wn { | d } n X} |  d | d | a n ~ d | i  ƒ  }  | i d d ƒ } € t d | d | Sd S(   s`  Return a random string usable as a multipart boundary.
    The method used is so that it is *very* unlikely that the same
    string of characters will every occur again in the Universe,
    so the caller needn't check the data it is packing for the
    occurrence of the boundary.

    The boundary contains dots so you have to quote it in the header.Ns   1s   .s   %.3fi    iÿ  (   s   times   randoms   _prefixs   Nones   sockets   oss   gethostbynames   gethostnames   hostids   getuids   uids   getpids   pids	   timestamps   randints   seed(	   s   hostids   sockets	   timestamps   pids   randoms   seeds   times   oss   uid(    (    s   /usr/lib/python2.2/mimetools.pys   choose_boundarye s(   c    s  … † ‡ | d j o# ˆ d k } ‰ | i |  | ƒ Sn Š | d j o# ‹ d k } Œ | i |  | ƒ Sn  | d d d d f j o# Ž d k }  | i |  | ƒ Sn  | d d	 f j o ‘ | i |  i ƒ  ƒ Sn ’ t	 i
 | ƒ o “ t |  t	 | | ƒ n • t d
 | ‚ d S(   sD   Decode common content-transfer-encodings (base64, quopri, uuencode).s   base64Ns   quoted-printables   uuencodes
   x-uuencodes   uues   x-uues   7bits   8bits%   unknown Content-Transfer-Encoding: %s(   s   encodings   base64s   decodes   inputs   outputs   quopris   uus   writes   reads	   decodetabs   has_keys   pipethroughs
   ValueError(   s   inputs   outputs   encodings   uus   quopris   base64(    (    s   /usr/lib/python2.2/mimetools.pys   decode… s   c    s   ˜ ™ š | d j o# › d k } œ | i |  | ƒ Sn  | d j o& ž d k } Ÿ | i |  | d ƒ Sn   | d d d d f j o# ¡ d k } ¢ | i |  | ƒ Sn £ | d	 d
 f j o ¤ | i |  i ƒ  ƒ Sn ¥ t	 i
 | ƒ o ¦ t |  t	 | | ƒ n ¨ t d | ‚ d S(   sD   Encode common content-transfer-encodings (base64, quopri, uuencode).s   base64Ns   quoted-printablei    s   uuencodes
   x-uuencodes   uues   x-uues   7bits   8bits%   unknown Content-Transfer-Encoding: %s(   s   encodings   base64s   encodes   inputs   outputs   quopris   uus   writes   reads	   encodetabs   has_keys   pipethroughs
   ValueError(   s   inputs   outputs   encodings   uus   quopris   base64(    (    s   /usr/lib/python2.2/mimetools.pys   encode˜ s   sa   (
TEMP=/tmp/@uu.$$
sed "s%^begin [0-7][0-7]* .*%begin 600 $TEMP%" | uudecode
cat $TEMP
rm $TEMP
)s   uuencodes
   x-uuencodes   uues   x-uues   mmencode -u -qs   quoted-printables   mmencode -u -bs   base64s   uuencode tempfiles   mmencode -qs   mmencode -bc    s9   È É t  i | d ƒ } Ê t |  | ƒ Ë | i ƒ  d  S(   Ns   w(   s   oss   popens   commands   pipes   copyliterals   inputs   close(   s   inputs   commands   pipe(    (    s   /usr/lib/python2.2/mimetools.pys   pipetoÈ s   c    s   Í Î t  i ƒ  } Ï t | d ƒ } Ð t |  | ƒ Ñ | i ƒ  Ò t i	 | d | d ƒ } Ó t | | ƒ Ô | i ƒ  Õ t i | ƒ d  S(   Ns   ws    <s   r(   s   tempfiles   mktemps   tempnames   opens   temps   copyliterals   inputs   closes   oss   popens   commands   pipes
   copybinarys   outputs   unlink(   s   inputs   commands   outputs   temps   pipes   tempname(    (    s   /usr/lib/python2.2/mimetools.pys   pipethroughÍ s   c    sN   × Ø xA Ø d o6 Ù |  i ƒ  } Ú | o Ú Pn Û | i | ƒ q	 Wd  S(   Ni   (   s   inputs   readlines   lines   outputs   write(   s   inputs   outputs   line(    (    s   /usr/lib/python2.2/mimetools.pys   copyliteral× s    
 c    sZ   Ý Þ d } ß xD ß d o9 à |  i | ƒ } á | o á Pn â | i | ƒ q Wd  S(   Ni    i   (   s   BUFSIZEs   inputs   reads   lines   outputs   write(   s   inputs   outputs   lines   BUFSIZE(    (    s   /usr/lib/python2.2/mimetools.pys
   copybinaryÝ s   	 
 (   s   __doc__s   oss   rfc822s   tempfiles   __all__s   Messages   Nones   _prefixs   choose_boundarys   decodes   encodes   uudecode_pipes	   decodetabs	   encodetabs   pipetos   pipethroughs   copyliterals
   copybinary(   s   pipethroughs   __all__s   rfc822s   tempfiles	   encodetabs	   decodetabs   copyliterals   decodes   pipetos
   copybinarys   choose_boundarys   encodes   Messages   oss   uudecode_pipe(    (    s   /usr/lib/python2.2/mimetools.pys   ? s    X	 	?	?	
