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)
* Mark Branstad (mwbranstad)
* Greg Chadwick (gregac)
* Cindy Chen (cindychip)
* Timothy Chen (tjaychen)
* Jon Flatley (jon-flatley)
* Srikrishna Iyer (sriyerg)
* Udi Jonnalagadda (udinator)
* Eunchan Kim (eunchan)
* Martin Lueker-Boden (martin-lueker)
* Rasmus Madsen (rasmus-madsen)
* Felix Miller (felixmiller)
* Michael Munday (mundaym)
* 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)
