# Names should be added to this file with this pattern:
#
# For individuals:
#   Name <email address>
#
# For organizations:
#   Organization <fnmatch pattern>
#
# See python fnmatch module documentation for more information.

The Chromium Authors <*@chromium.org>
Google Inc. <*@google.com>
Seo Sanghyeon <sanxiyn@gmail.com>
Alex Scheele <alexscheele@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>
Naoki Takano <takano.naoki@gmail.com>
Fabien Tassin <fta@sofaraway.org>
Kunal Thakar <kunalt@gmail.com>
Mohamed Mansour <m0.interactive@gmail.com>
Joshua Roesslein <jroesslein@gmail.com>
Yong Shin <sy3620@gmail.com>
Laszlo Radanyi <bekkra@gmail.com>
Raman Tenneti <raman.tenneti@gmail.com>
Kyle Nahrgang <kpn24@drexel.edu>
Kim Christensen <kimworking@gmail.com>
Paul Robinson <paulrobinson85@googlemail.com>
Josué Ratelle <jorat1346@gmail.com>
Edward Crossman <tedoc2000@gmail.com>
Nikita Ofitserov <himikof@gmail.com>
Sean Bryant <sean@cyberwang.net>
Robert Sesek <rsesek@bluestatic.org>
Janwar Dinata <j.dinata@gmail.com>
Will Hirsch <chromium@willhirsch.co.uk>
Yoav Zilberberg <yoav.zilberberg@gmail.com>
Joel Stanley <joel@jms.id.au>
Jacob Mandelson <jacob@mandelson.org>
Yuri Gorobets <yuri.gorobets@gmail.com>
Paul Wicks <pwicks86@gmail.com>
Thiago Farina <thiago.farina@gmail.com>
Viet-Trung Luu <viettrungluu@gmail.com>
Pierre-Antoine LaFayette <pierre.lafayette@gmail.com>
Song YeWen <ffmpeg@gmail.com>
Philippe Beauchamp <philippe.beauchamp@gmail.com>
Vedran Šajatović <vedran.sajatovic@gmail.com>
Randy Posynick <randy.posynick@gmail.com>
Bruno Calvignac <brunocalvignac@gmail.com>
Jaime Soriano Pastor <jsorianopastor@gmail.com>
Bryan Donlan <bdonlan@gmail.com>
Ramkumar Ramachandra <artagnon@gmail.com>
Dominic Jodoin <dominic.jodoin@gmail.com>
Kaspar Brand <googlecontrib@velox.ch>
Clemens Fruhwirth <clemens@endorphin.org>
Kevin Lee Helpingstine <sig11@reprehensible.net>
Bernard Cafarelli <voyageur@gentoo.org>
Vernon Tang <vt@foilhead.net>
Alexander Sulfrian <alexander@sulfrian.net>
Philippe Beaudoin <philippe.beaudoin@gmail.com>
Mark Hahnenberg <mhahnenb@gmail.com>
Alex Gartrell <alexgartrell@gmail.com>
Leith Bade <leith@leithalweapon.geek.nz>
James Choi <jchoi42@pha.jhu.edu>
Paul Kehrer <paul.l.kehrer@gmail.com>
Chamal De Silva <chamal.desilva@gmail.com>
Jay Soffian <jaysoffian@gmail.com>
Brian G. Merrell <bgmerrell@gmail.com>
Matthew Willis <appamatto@gmail.com>
Novell Inc. <*@novell.com>
Ryan Sleevi <ryan.sleevi@gmail.com>
Satoshi Matsuzaki <satoshi.matsuzaki@gmail.com>
Benjamin Jemlich <pcgod99@gmail.com>
Ningxin Hu <ningxin.hu@intel.com>
Jared Wein <weinjared@gmail.com>
Mingmin Xie <melvinxie@gmail.com>
Michael Gilbert <floppymaster@gmail.com>
Giuseppe Iuculano <giuseppe@iuculano.it>
litl LLC <*@litl.com>
James Willcox <jwillcox@litl.com>
Shreyas VA <v.a.shreyas@gmail.com>
Steven Pennington <spenn@engr.uvic.ca>
Jorge Villatoro <jorge@tomatocannon.com>
Paul Nettleship <pnettleship@gmail.com>
David Benjamin <davidben@mit.edu>
Sevan Janiyan <venture37@geeklan.co.uk>
Peter Beverloo <peter@lvp-media.com>
Lauri Oherd <lauri.oherd@gmail.com>
Ben Karel <eschew@gmail.com>
Sam McDonald <sam@sammcd.com>
Magnus Danielsson <fuzzac@gmail.com>
Kushal Pisavadia <kushi.p@gmail.com>
Maarten Lankhorst <m.b.lankhorst@gmail.com>
Vipul Bhasin <vipul.bhasin@gmail.com>
Ryan Norton <rnorton10@gmail.com>
Dillon Sellars <dill.sellars@gmail.com>
Seshadri Mahalingam <seshadri.mahalingam@gmail.com>
Clement Scheelfeldt Skau <clementskau@gmail.com>
David Futcher <bobbo@ubuntu.com>
Ramkumar Gokarnesan <ramgo@yahoo-inc.com>
Matt Arpidone <mma.public@gmail.com>
ruben <chromium@hybridsource.org>
NVIDIA Corporation <*@nvidia.com>
Torsten Kurbad <google@tk-webart.de>
Max Perepelitsyn <pph34r@gmail.com>
Luke Zarko <lukezarko@gmail.com>
Felix H. Dahlke <fhd@ubercode.de>
Ali Vathi <ali.akbar@gmail.com>
Mathias Bynens <mathias@qiwi.be>
Mark Seaborn <mrs@mythic-beasts.com>
Amruth Raj <amruthraj@motorola.com>
Gajendra Singh <wxjg68@motorola.com>
Ehsan Akhgari <ehsan.akhgari@gmail.com>
Christopher Dale <chrelad@gmail.com>
Sanjoy Pal <ncj674@motorola.com>
Mike Tilburg <mtilburg@adobe.com>
Peter Brophy <pbrophy@adobe.com>
Robert Goldberg <goldberg@adobe.com>
Don Woodward <woodward@adobe.com>
Naveen Bobbili <naveenbobbili@motorola.com>
Vamshikrishna Yellenki <vamshi@motorola.com>
Robert Nagy <robert.nagy@gmail.com>
Nayan Kumar K <qtc746@motorola.com>
ShankarGanesh K <blr.bmlab@gmail.com>
Goutham Jagannatha <wrm364@motorola.com>
Rosen Dash <rosen.dash@gmail.com>
Naveen Bobbili <qghc36@motorola.com>
Ravi Phaneendra Kasibhatla <ravi.kasibhatla@motorola.com>
Rosen Dash <nqk836@motorola.com>
Parag Radke <nrqv63@motorola.com>
Yair Yogev <progame@gmail.com>
