# Below is a list of people and organizations that have contributed
# to the coverage project. Names should be added to the list like so:
#
#   Name/Organization <email address>

Google Inc.
Achilleas Anagnostopoulos <achilleas.imap.mbox@gmail.com>
Adam Singer <adammichaelsinger@gmail.com>
Cédric Belin <cedxbelin@gmail.com>
Evan Weible <ekweible@gmail.com>
Günter Zöchbauer <guenter@gzoechbauer.com>
