;ò
¢)?Bc           @   si   d  Z  d k l Z l Z d k l Z d Z y e e f Wn e	 j
 o d Z d Z n Xd „  Z
 d S(   sr  If the user wishes it, do not send duplicates of the same message.

This module keeps an in-memory dictionary of Message-ID: and recipient pairs.
If a message with an identical Message-ID: is about to be sent to someone who
has already received a copy, we either drop the message, add a duplicate
warning header, or pass it through, depending on the user's preferences.
(   s   getaddressess
   formataddr(   s   mm_cfgs   , i   i    c         C   s<  | d } | o d  Sn h  } |  i ƒ  |  i ƒ  |  i ƒ  |  i ƒ  g }
 x |
 D] } t
 | | <qQ Wh  } xš d d d d f D]† } t | i | g  ƒ ƒ }	 | d j o+ x( |	 D] \ } } | | f | | <q° Wn x- |	 D]% \ } } | o qÛ n t
 | | <qÛ Wq~ Wx |
 D] } | | =qW| o d  Sn g  } x® | D]¦ } | i | ƒ oƒ t
 } |  i | ƒ o |  i | t i ƒ o
 t } n | o' t
 | i d h  ƒ | <| i | ƒ qã| i | ƒ o | | =qãq=| i | ƒ q=W| | d <| d =t i g  i } | i  ƒ  D] } | t" | ƒ ƒ q~ ƒ | d <d  S(   Ns   recipss   tos   ccs	   resent-tos	   resent-ccs   add-dup-headers   Cc(#   s   msgdatas   recipss   explicit_recipss   mlists   GetListEmails   GetBouncesEmails   GetOwnerEmails   GetRequestEmails	   listaddrss   addrs   Trues   ccaddrss   headers   getaddressess   msgs   get_alls   addrss   names	   newrecipss   rs   has_keys   send_duplicates   isMembers   getMemberOptions   mm_cfgs   DontReceiveDuplicatess   Falses
   setdefaults   appends
   COMMASPACEs   joins   _[1]s   valuess   is
   formataddr(   s   mlists   msgs   msgdatas   ccaddrss   headers   recipss   addrs   send_duplicates   explicit_recipss   addrss	   listaddrss   names   is	   newrecipss   _[1]s   r(    (    s0   /var/mailman/Mailman/Handlers/AvoidDuplicates.pys   process&   sT    
*      &

N(   s   __doc__s   email.Utilss   getaddressess
   formataddrs   Mailmans   mm_cfgs
   COMMASPACEs   Trues   Falses	   NameErrors   process(   s   Falses   processs   mm_cfgs   getaddressess   Trues
   formataddrs
   COMMASPACE(    (    s0   /var/mailman/Mailman/Handlers/AvoidDuplicates.pys   ?   s   