# Primary
tbansal@chromium.org
dougarnett@chromium.org
rajendrant@chromium.org
ryansturm@chromium.org
sclittle@chromium.org

# Secondary
bengr@chromium.org

per-file *_messages.cc=set noparent
per-file *_messages.cc=file://ipc/SECURITY_OWNERS

per-file *_messages*.h=set noparent
per-file *_messages*.h=file://ipc/SECURITY_OWNERS

# COMPONENT: Internals>Network>DataProxy

# Leave ASCII Art in comments
################################################################################
#                                                                              #
#                                  ...........                                 #
#                            .,**///(((((((((///**,.                           #
#                        .*//(((((((((((((((((((((((/*,.                       #
#                   .,//((((((((((((((////(((((((((((((((/*,                   #
#                 .*/((((((((((//*,,........,,*//(((((((((((*.                 #
#               .*/((((((((//*,.                .,*//((((((((/*.               #
#             .*/(((((((((*.                        .*/((((((((/*.             #
#           ,*/(((((((/*,                              .,*/(((((((/            #
#          ./(((((((/*.                                   .*(((((((*.          #
#         .*(((((((/,                                       */((((/,           #
#        .*/((((((/.                                         ,*//,.            #
#       ,/((((((/,                                                             #
#      .*((((((/,                                                              #
#      ,/(((((/,                                                    .,**,      #
#     ,/((((/*                                                  .,*/((((*.     #
#     */((((*.                                               .,*/(((((((/.     #
#    .*(((/*           .*/*,.                              .//((((((((((/.     #
#    .*/*.          .,//(((((/*,.                      .,*//((((((((((((/,     #
#                .*/(((((((((((((//,.              .,//(((((((((///(((((/,     #
#             .,//((((((((//((((((((//*.        .,*/(((((((((/*,..,(((((/.     #
#           ,*/((((((((//*..,*/((((((((//*.   *//(((((((((//.     *(((((*.     #
#       .,*/(((((((//,.         .*//(((((((((((((((((//*.        ./((((/,      #
#      .*(((((((((/.               .,*/((((((((((((//.          .*/((((*.      #
#       ,/(((((//,.                    *//((((((/*,.            ,/((((/,       #
#        */((((/,                        .,*//*,.              ,/((((/*.       #
#         ./((((/*.                                          .*/((((/,         #
#          ./(((((/                                         ,/(((((/,          #
#           */(((((*,                                      ,/((((((,           #
#             ,//((((//*.                              .*/((((((/*.            #
#               ,//(((((//,.                        .*/(((((((//,              #
#                 ,/(((((((//*,..             ..,**//(((((((/*,                #
#                  .,//(((((((((///*********///(((((((((((//.                  #
#                       .,//(((((((((((((((((((((((((//*.                      #
#                          .,,*//((((((((((((((///**,                          #
#                                                                              #
################################################################################
