# This is a list of backup approvers.
# Each test should have their own OWNERS file specified
# in sub-directory. And changes to specific test code
# should be approved by test owners.

# Ordered by escalation priority
# Android Partner Eng Approvers
samgarg@google.com
rossyeh@google.com
robinjacob@google.com
mariay@google.com

# Android EngProd Approvers
wenshan@google.com
guangzhu@google.com #{LAST_RESORT_SUGGESTION}
jdesprez@google.com #{LAST_RESORT_SUGGESTION}
normancheung@google.com #{LAST_RESORT_SUGGESTION}