# Below is a list of Flutter team members who are suggested reviewers
# for contributions to plugins in this repository.
#
# These names are just suggestions. It is fine to have your changes
# reviewed by someone else.


packages/camera/**                             @bparrishMines
packages/file_selector/**                      @ditman
packages/google_maps_flutter/**                @cyanglaz
packages/image_picker/**                       @cyanglaz
packages/in_app_purchase/**                    @cyanglaz @LHLL
packages/ios_platform_images/**                @gaaclarke
