# Names should be added to this file like so:
# Name or Organization <email address>

Google Inc.
Alex Scheele <alexscheele@gmail.com>
Seo Sanghyeon <sanxiyn@gmail.com>
Andrew Brampton <me@bramp.net>
Paweł Hajdan jr <phajdan.jr@gmail.com>
Jesse Miller <jesse@jmiller.biz>
Szymon Piechowicz <szymonpiechowicz@o2.pl>
James Vega <vega.james@gmail.com>
Marco Rodrigues <gothicx@gmail.com>
Matthias Reitinger <reimarvin@gmail.com>
Peter Bright <drpizza@quiscalusmexicanus.org>
Arthur Lussos <developer0420@gmail.com>
Masahiro Yado <yado.masa@gmail.com>
Yarin Kaul <yarin.kaul@gmail.com>
Gaetano Mendola <mendola@gmail.com>
Comodo CA Limited
Torchmobile Inc.
Craig Schlenter <craig.schlenter@gmail.com>
Ibrar Ahmed <ibrar.ahmad@gmail.com>
Fabien Tassin <fta@sofaraway.org>
Kunal Thakar <kunalt@gmail.com>
Mohamed Mansour <m0.interactive@gmail.com>
Joshua Roesslein <jroesslein@gmail.com>
