This file contains the list of individuals with write access to the OpenTitan
repository, who are responsible for the final approval and merge of
contributions. See doc/project/committers.md for more information.

Committers are listed alphabetically by surname in the format:
* Full Name (GitHubID)

Committer list:
* Alex Bradbury (asb)
* Greg Chadwick (gregac)
* Cindy Chen (cindychip)
* Timothy Chen (tjaychen)
* Sam Elliott (lenary)
* Srikrishna Iyer (sriyerg)
* Scott Johnson (sjgitty)
* Udi Jonnalagadda (udinator)
* Garret Kelly (gkelly)
* Eunchan Kim (eunchan)
* Miguel Osorio (moidx)
* Dominic Rizzo (domrizz0)
* Tom Roberts (tomroberts-lowrisc)
* Michael Schaffner (msfschaffner)
* Rupert Swarbrick (rswarbrick)
* Silvestrs Timofejevs (silvestrst)
* Alphan Ulusoy (alphan)
* Pirmin Vogel (vogelpi)
* Philipp Wagner (imphil)
* Tobias Wölfel (towoe)
* Weicai Yang (weicaiyang)
* Miguel Young (mcy)
