# This is the official list of people who can contribute
# (and who have contributed) code to the ANGLE project
# repository.
# The AUTHORS file lists the copyright holders; this file
# lists people.  For example, Google employees are listed here
# but not in AUTHORS, because Google holds the copyright.
#

TransGaming Inc.
 Nicolas Capens
 Daniel Koch
 Andrew Lewycky
 Gavriel State
 Shannon Woods

Google Inc.
 Brent Austin
 John Bauman
 Henry Bridge
 Nat Duca
 Vangelis Kokkevis
 Zhenyao Mo
 Daniel Nicoara
 Alastair Patrick
 Alok Priyadarshi
 Kenneth Russell
 Ben Vanik
 Adrienne Walker

Mozilla Corp.
 Benoit Jacob
 Makoto Kato
 Vladimir Vukicevic

Apple Inc.
 David Kilzer

Aitor Moreno <aitormoreno at gmail.com>
Jim Hauxwell <james at dattrax.co.uk>
ddefrostt
timeless
Yore Apex
