# Use this reviewer by default.
# gnl-eng@google.com (Googlers only)

# People who can approve changes for submission
#

adamcohen@google.com
hyunyoungs@google.com
twickham@google.com
vadimt@google.com
winsonc@google.com
jonmiranda@google.com
alexchau@google.com
patmanning@google.com
tsuharesu@google.com
awickham@google.com

# Launcher workspace eng team
captaincole@google.com
sunnygoyal@google.com
charlander@google.com
fbaron@google.com
fengjial@google.com
fransebas@google.com
pinyaoting@google.com
andonian@google.com
sihua@google.com

per-file FeatureFlags.java, globs = set noparent
per-file FeatureFlags.java = sunnygoyal@google.com, winsonc@google.com, adamcohen@google.com, hyunyoungs@google.com, captaincole@google.com
