# Copyright 2018 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/android/rules.gni")

# Library groups
java_group("android_support_v4_java") {
  deps = [
    ":com_android_support_support_compat_java",
    ":com_android_support_support_core_ui_java",
    ":com_android_support_support_core_utils_java",
    ":com_android_support_support_fragment_java",
    ":com_android_support_support_media_compat_java",
    ":com_android_support_support_v4_java",
  ]
}
java_group("android_support_v7_appcompat_java") {
  deps = [
    ":android_support_v4_java",
    ":com_android_support_animated_vector_drawable_java",
    ":com_android_support_appcompat_v7_java",
    ":com_android_support_support_vector_drawable_java",
  ]
}

# The dependencies below are used by chromecast internal.
java_group("android_support_v7_preference_java") {
  deps = [
    ":com_android_support_preference_v7_java",
  ]
}
java_group("android_support_v14_preference_java") {
  deps = [
    ":com_android_support_preference_v14_java",
  ]
}
java_group("android_support_v17_leanback_java") {
  deps = [
    ":com_android_support_leanback_v17_java",
  ]
}
java_group("android_support_v17_preference_java") {
  deps = [
    ":com_android_support_preference_leanback_v17_java",
  ]
}

# Annotation processors for Dagger2.
java_annotation_processor("dagger_processor") {
  main_class = "dagger.internal.codegen.ComponentProcessor"
  deps = [
    ":com_google_dagger_dagger_compiler_java",
  ]
}

# The section below is generated by running
# `//tools/android/roll/android_deps/fetch_all.sh`

# === Generated Code Start ===
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("android_arch_lifecycle_common_java") {
  jar_path = "libs/android_arch_lifecycle_common/common-1.1.1.jar"
  output_name = "android_arch_lifecycle_common"
  supports_android = true
  deps = [
    ":com_android_support_support_annotations_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("android_arch_lifecycle_common_java8_java") {
  jar_path = "libs/android_arch_lifecycle_common_java8/common-java8-1.1.1.jar"
  output_name = "android_arch_lifecycle_common_java8"
  supports_android = true
  deps = [
    ":android_arch_lifecycle_common_java",
    ":com_android_support_support_annotations_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("android_arch_lifecycle_runtime_java") {
  aar_path = "libs/android_arch_lifecycle_runtime/runtime-1.1.1.aar"
  info_path =
      "libs/android_arch_lifecycle_runtime/android_arch_lifecycle_runtime.info"
  deps = [
    ":android_arch_core_common_java",
    ":android_arch_lifecycle_common_java",
  ]

  # https://crbug.com/887942#c1
  ignore_proguard_configs = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("androidx_test_core_java") {
  aar_path = "libs/androidx_test_core/core-1.0.0.aar"
  info_path = "libs/androidx_test_core/androidx_test_core.info"
  testonly = true
  deps = [
    ":androidx_annotation_annotation_java",
    ":androidx_lifecycle_lifecycle_common_java",
    ":androidx_test_monitor_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("androidx_test_ext_junit_java") {
  aar_path = "libs/androidx_test_ext_junit/junit-1.0.0.aar"
  info_path = "libs/androidx_test_ext_junit/androidx_test_ext_junit.info"
  testonly = true
  deps = [
    "//third_party/junit:junit",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("androidx_test_monitor_java") {
  aar_path = "libs/androidx_test_monitor/monitor-1.1.0.aar"
  info_path = "libs/androidx_test_monitor/androidx_test_monitor.info"
  testonly = true
  deps = [
    ":androidx_annotation_annotation_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("androidx_test_rules_java") {
  aar_path = "libs/androidx_test_rules/rules-1.1.0.aar"
  info_path = "libs/androidx_test_rules/androidx_test_rules.info"
  testonly = true
  deps = [
    ":androidx_test_runner_java",
  ]
  deps += [
    "//third_party/android_sdk:android_test_base_java",
    "//third_party/android_sdk:android_test_mock_java",
    "//third_party/android_sdk:android_test_runner_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("androidx_test_runner_java") {
  aar_path = "libs/androidx_test_runner/runner-1.1.0.aar"
  info_path = "libs/androidx_test_runner/androidx_test_runner.info"
  testonly = true
  deps = [
    ":androidx_annotation_annotation_java",
    ":androidx_test_monitor_java",
    ":net_sf_kxml_kxml2_java",
    "//third_party/junit:junit",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_appcompat_v7_java") {
  aar_path = "libs/com_android_support_appcompat_v7/appcompat-v7-27.0.0.aar"
  info_path = "libs/com_android_support_appcompat_v7/com_android_support_appcompat_v7.info"
  deps = [
    ":com_android_support_animated_vector_drawable_java",
    ":com_android_support_support_annotations_java",
    ":com_android_support_support_core_utils_java",
    ":com_android_support_support_fragment_java",
    ":com_android_support_support_vector_drawable_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_cardview_v7_java") {
  aar_path = "libs/com_android_support_cardview_v7/cardview-v7-27.0.0.aar"
  info_path = "libs/com_android_support_cardview_v7/com_android_support_cardview_v7.info"
  deps = [
    ":com_android_support_support_annotations_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_design_java") {
  aar_path = "libs/com_android_support_design/design-27.0.0.aar"
  info_path = "libs/com_android_support_design/com_android_support_design.info"
  deps = [
    ":com_android_support_appcompat_v7_java",
    ":com_android_support_recyclerview_v7_java",
    ":com_android_support_support_v4_java",
    ":com_android_support_transition_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_gridlayout_v7_java") {
  aar_path = "libs/com_android_support_gridlayout_v7/gridlayout-v7-27.0.0.aar"
  info_path = "libs/com_android_support_gridlayout_v7/com_android_support_gridlayout_v7.info"
  deps = [
    ":com_android_support_support_compat_java",
    ":com_android_support_support_core_ui_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_mediarouter_v7_java") {
  aar_path = "libs/com_android_support_mediarouter_v7/mediarouter-v7-27.0.0.aar"
  info_path = "libs/com_android_support_mediarouter_v7/com_android_support_mediarouter_v7.info"
  deps = [
    ":com_android_support_appcompat_v7_java",
    ":com_android_support_palette_v7_java",
    ":com_android_support_support_media_compat_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_multidex_java") {
  aar_path = "libs/com_android_support_multidex/multidex-1.0.0.aar"
  info_path =
      "libs/com_android_support_multidex/com_android_support_multidex.info"
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_preference_leanback_v17_java") {
  aar_path = "libs/com_android_support_preference_leanback_v17/preference-leanback-v17-27.0.0.aar"
  info_path = "libs/com_android_support_preference_leanback_v17/com_android_support_preference_leanback_v17.info"
  deps = [
    ":com_android_support_appcompat_v7_java",
    ":com_android_support_leanback_v17_java",
    ":com_android_support_preference_v14_java",
    ":com_android_support_preference_v7_java",
    ":com_android_support_recyclerview_v7_java",
    ":com_android_support_support_v4_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_preference_v7_java") {
  aar_path = "libs/com_android_support_preference_v7/preference-v7-27.0.0.aar"
  info_path = "libs/com_android_support_preference_v7/com_android_support_preference_v7.info"
  deps = [
    ":com_android_support_appcompat_v7_java",
    ":com_android_support_recyclerview_v7_java",
    ":com_android_support_support_v4_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_recyclerview_v7_java") {
  aar_path =
      "libs/com_android_support_recyclerview_v7/recyclerview-v7-27.0.0.aar"
  info_path = "libs/com_android_support_recyclerview_v7/com_android_support_recyclerview_v7.info"
  deps = [
    ":com_android_support_support_annotations_java",
    ":com_android_support_support_compat_java",
    ":com_android_support_support_core_ui_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_android_support_support_annotations_java") {
  jar_path = "libs/com_android_support_support_annotations/support-annotations-27.0.0.jar"
  output_name = "com_android_support_support_annotations"
  supports_android = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_support_compat_java") {
  aar_path = "libs/com_android_support_support_compat/support-compat-27.0.0.aar"
  info_path = "libs/com_android_support_support_compat/com_android_support_support_compat.info"
  deps = [
    ":android_arch_lifecycle_runtime_java",
    ":com_android_support_support_annotations_java",
  ]
  ignore_aidl = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_support_core_ui_java") {
  aar_path =
      "libs/com_android_support_support_core_ui/support-core-ui-27.0.0.aar"
  info_path = "libs/com_android_support_support_core_ui/com_android_support_support_core_ui.info"
  deps = [
    ":com_android_support_support_annotations_java",
    ":com_android_support_support_compat_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_support_core_utils_java") {
  aar_path = "libs/com_android_support_support_core_utils/support-core-utils-27.0.0.aar"
  info_path = "libs/com_android_support_support_core_utils/com_android_support_support_core_utils.info"
  deps = [
    ":com_android_support_support_annotations_java",
    ":com_android_support_support_compat_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_support_v13_java") {
  aar_path = "libs/com_android_support_support_v13/support-v13-27.0.0.aar"
  info_path = "libs/com_android_support_support_v13/com_android_support_support_v13.info"
  deps = [
    ":com_android_support_support_annotations_java",
    ":com_android_support_support_v4_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_support_v4_java") {
  aar_path = "libs/com_android_support_support_v4/support-v4-27.0.0.aar"
  info_path =
      "libs/com_android_support_support_v4/com_android_support_support_v4.info"
  deps = [
    ":com_android_support_support_compat_java",
    ":com_android_support_support_core_ui_java",
    ":com_android_support_support_core_utils_java",
    ":com_android_support_support_fragment_java",
    ":com_android_support_support_media_compat_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_auth_java") {
  aar_path = "libs/com_google_android_gms_play_services_auth/play-services-auth-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_auth/com_google_android_gms_play_services_auth.info"
  deps = [
    ":google_play_services_auth_api_phone_java",
    ":google_play_services_auth_base_java",
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_tasks_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_auth_api_phone_java") {
  aar_path = "libs/com_google_android_gms_play_services_auth_api_phone/play-services-auth-api-phone-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_auth_api_phone/com_google_android_gms_play_services_auth_api_phone.info"
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_tasks_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_auth_base_java") {
  aar_path = "libs/com_google_android_gms_play_services_auth_base/play-services-auth-base-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_auth_base/com_google_android_gms_play_services_auth_base.info"
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_tasks_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_base_java") {
  aar_path = "libs/com_google_android_gms_play_services_base/play-services-base-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_base/com_google_android_gms_play_services_base.info"
  deps = [
    ":google_play_services_basement_java",
    ":google_play_services_tasks_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_basement_java") {
  aar_path = "libs/com_google_android_gms_play_services_basement/play-services-basement-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_basement/com_google_android_gms_play_services_basement.info"
  deps = [
    ":com_android_support_support_v4_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
  input_jars_paths = [ "$android_sdk/optional/org.apache.http.legacy.jar" ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_cast_java") {
  aar_path = "libs/com_google_android_gms_play_services_cast/play-services-cast-16.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_cast/com_google_android_gms_play_services_cast.info"
  deps = [
    ":com_android_support_mediarouter_v7_java",
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_flags_java",
    ":google_play_services_tasks_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_cast_framework_java") {
  aar_path = "libs/com_google_android_gms_play_services_cast_framework/play-services-cast-framework-16.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_cast_framework/com_google_android_gms_play_services_cast_framework.info"
  deps = [
    ":com_android_support_mediarouter_v7_java",
    ":com_android_support_recyclerview_v7_java",
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_cast_java",
  ]

  # Removing all resources from cast framework as they are unused bloat.
  strip_resources = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_fido_java") {
  aar_path = "libs/com_google_android_gms_play_services_fido/play-services-fido-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_fido/com_google_android_gms_play_services_fido.info"
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_tasks_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_gcm_java") {
  aar_path = "libs/com_google_android_gms_play_services_gcm/play-services-gcm-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_gcm/com_google_android_gms_play_services_gcm.info"
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_iid_java",
    ":google_play_services_stats_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_iid_java") {
  aar_path = "libs/com_google_android_gms_play_services_iid/play-services-iid-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_iid/com_google_android_gms_play_services_iid.info"
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_stats_java",
    ":google_play_services_tasks_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_instantapps_java") {
  aar_path = "libs/com_google_android_gms_play_services_instantapps/play-services-instantapps-16.0.0.aar"
  info_path = "libs/com_google_android_gms_play_services_instantapps/com_google_android_gms_play_services_instantapps.info"
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_tasks_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_location_java") {
  aar_path = "libs/com_google_android_gms_play_services_location/play-services-location-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_location/com_google_android_gms_play_services_location.info"
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_places_placereport_java",
    ":google_play_services_tasks_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_tasks_java") {
  aar_path = "libs/com_google_android_gms_play_services_tasks/play-services-tasks-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_tasks/com_google_android_gms_play_services_tasks.info"
  deps = [
    ":google_play_services_basement_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_vision_java") {
  aar_path = "libs/com_google_android_gms_play_services_vision/play-services-vision-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_vision/com_google_android_gms_play_services_vision.info"
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_vision_common_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_vision_common_java") {
  aar_path = "libs/com_google_android_gms_play_services_vision_common/play-services-vision-common-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_vision_common/com_google_android_gms_play_services_vision_common.info"
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_clearcut_java",
    ":google_play_services_flags_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_dagger_dagger_java") {
  jar_path = "libs/com_google_dagger_dagger/dagger-2.17.jar"
  output_name = "com_google_dagger_dagger"
  supports_android = true
  deps = [
    ":javax_inject_javax_inject_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_dagger_dagger_compiler_java") {
  jar_path = "libs/com_google_dagger_dagger_compiler/dagger-compiler-2.17.jar"
  output_name = "com_google_dagger_dagger_compiler"
  deps = [
    ":com_google_dagger_dagger_java",
    ":com_google_dagger_dagger_producers_java",
    ":com_google_dagger_dagger_spi_java",
    ":com_google_googlejavaformat_google_java_format_java",
    ":com_google_guava_guava_java",
    ":com_squareup_javapoet_java",
    ":javax_annotation_jsr250_api_java",
    ":javax_inject_javax_inject_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_protobuf_protobuf_lite_java") {
  jar_path = "libs/com_google_protobuf_protobuf_lite/protobuf-lite-3.0.1.jar"
  output_name = "com_google_protobuf_protobuf_lite"
  supports_android = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_squareup_javapoet_java") {
  jar_path = "libs/com_squareup_javapoet/javapoet-1.11.0.jar"
  output_name = "com_squareup_javapoet"
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("javax_inject_javax_inject_java") {
  jar_path = "libs/javax_inject_javax_inject/javax.inject-1.jar"
  output_name = "javax_inject_javax_inject"
  supports_android = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("android_arch_core_common_java") {
  jar_path = "libs/android_arch_core_common/common-1.1.1.jar"
  output_name = "android_arch_core_common"
  supports_android = true

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_android_support_support_annotations_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("androidx_annotation_annotation_java") {
  jar_path = "libs/androidx_annotation_annotation/annotation-1.0.0.jar"
  output_name = "androidx_annotation_annotation"
  supports_android = true

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  testonly = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("androidx_lifecycle_lifecycle_common_java") {
  jar_path =
      "libs/androidx_lifecycle_lifecycle_common/lifecycle-common-2.0.0.jar"
  output_name = "androidx_lifecycle_lifecycle_common"
  supports_android = true

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  testonly = true
  deps = [
    ":androidx_annotation_annotation_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_animated_vector_drawable_java") {
  aar_path = "libs/com_android_support_animated_vector_drawable/animated-vector-drawable-27.0.0.aar"
  info_path = "libs/com_android_support_animated_vector_drawable/com_android_support_animated_vector_drawable.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_android_support_support_core_ui_java",
    ":com_android_support_support_vector_drawable_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_leanback_v17_java") {
  aar_path = "libs/com_android_support_leanback_v17/leanback-v17-27.0.0.aar"
  info_path = "libs/com_android_support_leanback_v17/com_android_support_leanback_v17.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_android_support_recyclerview_v7_java",
    ":com_android_support_support_compat_java",
    ":com_android_support_support_core_ui_java",
    ":com_android_support_support_fragment_java",
    ":com_android_support_support_media_compat_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_palette_v7_java") {
  aar_path = "libs/com_android_support_palette_v7/palette-v7-27.0.0.aar"
  info_path =
      "libs/com_android_support_palette_v7/com_android_support_palette_v7.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_android_support_support_compat_java",
    ":com_android_support_support_core_utils_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_preference_v14_java") {
  aar_path = "libs/com_android_support_preference_v14/preference-v14-27.0.0.aar"
  info_path = "libs/com_android_support_preference_v14/com_android_support_preference_v14.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_android_support_appcompat_v7_java",
    ":com_android_support_preference_v7_java",
    ":com_android_support_recyclerview_v7_java",
    ":com_android_support_support_v4_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_support_fragment_java") {
  aar_path =
      "libs/com_android_support_support_fragment/support-fragment-27.0.0.aar"
  info_path = "libs/com_android_support_support_fragment/com_android_support_support_fragment.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_android_support_support_annotations_java",
    ":com_android_support_support_compat_java",
    ":com_android_support_support_core_ui_java",
    ":com_android_support_support_core_utils_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_support_media_compat_java") {
  aar_path = "libs/com_android_support_support_media_compat/support-media-compat-27.0.0.aar"
  info_path = "libs/com_android_support_support_media_compat/com_android_support_support_media_compat.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_android_support_support_annotations_java",
    ":com_android_support_support_compat_java",
  ]
  ignore_aidl = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_support_vector_drawable_java") {
  aar_path = "libs/com_android_support_support_vector_drawable/support-vector-drawable-27.0.0.aar"
  info_path = "libs/com_android_support_support_vector_drawable/com_android_support_support_vector_drawable.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_android_support_support_annotations_java",
    ":com_android_support_support_compat_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_transition_java") {
  aar_path = "libs/com_android_support_transition/transition-27.0.0.aar"
  info_path =
      "libs/com_android_support_transition/com_android_support_transition.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_android_support_support_annotations_java",
    ":com_android_support_support_compat_java",
  ]
  deps += [ ":com_android_support_support_fragment_java" ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_clearcut_java") {
  aar_path = "libs/com_google_android_gms_play_services_clearcut/play-services-clearcut-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_clearcut/com_google_android_gms_play_services_clearcut.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_phenotype_java",
    ":google_play_services_tasks_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_flags_java") {
  aar_path = "libs/com_google_android_gms_play_services_flags/play-services-flags-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_flags/com_google_android_gms_play_services_flags.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_phenotype_java") {
  aar_path = "libs/com_google_android_gms_play_services_phenotype/play-services-phenotype-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_phenotype/com_google_android_gms_play_services_phenotype.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_tasks_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_places_placereport_java") {
  aar_path = "libs/com_google_android_gms_play_services_places_placereport/play-services-places-placereport-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_places_placereport/com_google_android_gms_play_services_places_placereport.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":google_play_services_basement_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_stats_java") {
  aar_path = "libs/com_google_android_gms_play_services_stats/play-services-stats-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_stats/com_google_android_gms_play_services_stats.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":google_play_services_basement_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_code_findbugs_jsr305_java") {
  jar_path = "libs/com_google_code_findbugs_jsr305/jsr305-1.3.9.jar"
  output_name = "com_google_code_findbugs_jsr305"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_dagger_dagger_producers_java") {
  jar_path = "libs/com_google_dagger_dagger_producers/dagger-producers-2.17.jar"
  output_name = "com_google_dagger_dagger_producers"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_google_dagger_dagger_java",
    ":com_google_guava_guava_java",
    ":javax_inject_javax_inject_java",
    ":org_checkerframework_checker_compat_qual_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_dagger_dagger_spi_java") {
  jar_path = "libs/com_google_dagger_dagger_spi/dagger-spi-2.17.jar"
  output_name = "com_google_dagger_dagger_spi"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_google_dagger_dagger_java",
    ":com_google_dagger_dagger_producers_java",
    ":com_google_guava_guava_java",
    ":javax_inject_javax_inject_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_errorprone_error_prone_annotations_java") {
  jar_path = "libs/com_google_errorprone_error_prone_annotations/error_prone_annotations-2.1.3.jar"
  output_name = "com_google_errorprone_error_prone_annotations"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_errorprone_javac_shaded_java") {
  jar_path =
      "libs/com_google_errorprone_javac_shaded/javac-shaded-9-dev-r4023-3.jar"
  output_name = "com_google_errorprone_javac_shaded"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_googlejavaformat_google_java_format_java") {
  jar_path = "libs/com_google_googlejavaformat_google_java_format/google-java-format-1.5.jar"
  output_name = "com_google_googlejavaformat_google_java_format"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_google_errorprone_javac_shaded_java",
    ":com_google_guava_guava_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_guava_guava_java") {
  jar_path = "libs/com_google_guava_guava/guava-25.0-jre.jar"
  output_name = "com_google_guava_guava"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_google_code_findbugs_jsr305_java",
    ":com_google_errorprone_error_prone_annotations_java",
    ":com_google_j2objc_j2objc_annotations_java",
    ":org_checkerframework_checker_compat_qual_java",
    ":org_codehaus_mojo_animal_sniffer_annotations_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_j2objc_j2objc_annotations_java") {
  jar_path =
      "libs/com_google_j2objc_j2objc_annotations/j2objc-annotations-1.1.jar"
  output_name = "com_google_j2objc_j2objc_annotations"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("javax_annotation_jsr250_api_java") {
  jar_path = "libs/javax_annotation_jsr250_api/jsr250-api-1.0.jar"
  output_name = "javax_annotation_jsr250_api"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("net_sf_kxml_kxml2_java") {
  jar_path = "libs/net_sf_kxml_kxml2/kxml2-2.3.0.jar"
  output_name = "net_sf_kxml_kxml2"
  supports_android = true

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  testonly = true

  # Target needs to exclude *xmlpull* files as already included in Android SDK.
  jar_excluded_patterns = [ "*xmlpull*" ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("org_checkerframework_checker_compat_qual_java") {
  jar_path = "libs/org_checkerframework_checker_compat_qual/checker-compat-qual-2.3.0.jar"
  output_name = "org_checkerframework_checker_compat_qual"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("org_codehaus_mojo_animal_sniffer_annotations_java") {
  jar_path = "libs/org_codehaus_mojo_animal_sniffer_annotations/animal-sniffer-annotations-1.14.jar"
  output_name = "org_codehaus_mojo_animal_sniffer_annotations"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
}
# === Generated Code End ===
