Merge "Calculate battery charge from energy and voltage"
diff --git a/Android.bp b/Android.bp
index 420723f..687d3f5 100644
--- a/Android.bp
+++ b/Android.bp
@@ -6744,6 +6744,7 @@
 genrule {
     name: "perfetto_protos_perfetto_trace_processor_zero_gen",
     srcs: [
+        "protos/perfetto/trace_processor/cloud_trace_processor.proto",
         "protos/perfetto/trace_processor/metatrace_categories.proto",
         "protos/perfetto/trace_processor/trace_processor.proto",
     ],
@@ -6753,6 +6754,7 @@
     ],
     cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
     out: [
+        "external/perfetto/protos/perfetto/trace_processor/cloud_trace_processor.pbzero.cc",
         "external/perfetto/protos/perfetto/trace_processor/metatrace_categories.pbzero.cc",
         "external/perfetto/protos/perfetto/trace_processor/trace_processor.pbzero.cc",
     ],
@@ -6762,6 +6764,7 @@
 genrule {
     name: "perfetto_protos_perfetto_trace_processor_zero_gen_headers",
     srcs: [
+        "protos/perfetto/trace_processor/cloud_trace_processor.proto",
         "protos/perfetto/trace_processor/metatrace_categories.proto",
         "protos/perfetto/trace_processor/trace_processor.proto",
     ],
@@ -6771,6 +6774,7 @@
     ],
     cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
     out: [
+        "external/perfetto/protos/perfetto/trace_processor/cloud_trace_processor.pbzero.h",
         "external/perfetto/protos/perfetto/trace_processor/metatrace_categories.pbzero.h",
         "external/perfetto/protos/perfetto/trace_processor/trace_processor.pbzero.h",
     ],
@@ -8139,6 +8143,7 @@
 filegroup {
     name: "perfetto_src_base_threading_unittests",
     srcs: [
+        "src/base/threading/channel_unittest.cc",
         "src/base/threading/thread_pool_unittest.cc",
     ],
 }
@@ -8849,6 +8854,7 @@
     name: "perfetto_src_protozero_protozero",
     srcs: [
         "src/protozero/field.cc",
+        "src/protozero/gen_field_helpers.cc",
         "src/protozero/message.cc",
         "src/protozero/message_arena.cc",
         "src/protozero/message_handle.cc",
@@ -12888,6 +12894,8 @@
     srcs: [
         "protos/perfetto/trace/perfetto_trace.proto",
     ],
+    // b/267831518: Pin tradefed and dependencies to Java 11.
+    java_version: "11",
 }
 
 java_library_host {
@@ -12898,6 +12906,8 @@
     srcs: [
         "protos/perfetto/metrics/perfetto_merged_metrics.proto",
     ],
+    // b/267831518: Pin tradefed and dependencies to Java 11.
+    java_version: "11",
 }
 
 // This sample target shows how to use the perfetto client API from within the
diff --git a/Android.bp.extras b/Android.bp.extras
index f1251b4..ded8bdb 100644
--- a/Android.bp.extras
+++ b/Android.bp.extras
@@ -18,6 +18,8 @@
     srcs: [
         "protos/perfetto/trace/perfetto_trace.proto",
     ],
+    // b/267831518: Pin tradefed and dependencies to Java 11.
+    java_version: "11",
 }
 
 java_library_host {
@@ -28,6 +30,8 @@
     srcs: [
         "protos/perfetto/metrics/perfetto_merged_metrics.proto",
     ],
+    // b/267831518: Pin tradefed and dependencies to Java 11.
+    java_version: "11",
 }
 
 // This sample target shows how to use the perfetto client API from within the
diff --git a/BUILD b/BUILD
index c4c9781..2232f30 100644
--- a/BUILD
+++ b/BUILD
@@ -126,6 +126,7 @@
     name = "protozero",
     srcs = [
         "src/protozero/field.cc",
+        "src/protozero/gen_field_helpers.cc",
         "src/protozero/message.cc",
         "src/protozero/message_arena.cc",
         "src/protozero/message_handle.cc",
@@ -554,6 +555,7 @@
         "include/perfetto/protozero/cpp_message_obj.h",
         "include/perfetto/protozero/field.h",
         "include/perfetto/protozero/field_writer.h",
+        "include/perfetto/protozero/gen_field_helpers.h",
         "include/perfetto/protozero/message.h",
         "include/perfetto/protozero/message_arena.h",
         "include/perfetto/protozero/message_handle.h",
@@ -4033,6 +4035,7 @@
 perfetto_proto_library(
     name = "protos_perfetto_trace_processor_protos",
     srcs = [
+        "protos/perfetto/trace_processor/cloud_trace_processor.proto",
         "protos/perfetto/trace_processor/metatrace_categories.proto",
         "protos/perfetto/trace_processor/trace_processor.proto",
     ],
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 6682fec..7b11412 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -41,6 +41,7 @@
         files_to_check='.*',
         files_to_skip=[
             'Android[.]bp',
+            "buildtools/grpc/BUILD.gn",
             '.*[.]json$',
             '.*[.]sql$',
             '.*[.]out$',
diff --git a/buildtools/.gitignore b/buildtools/.gitignore
index 869315f..ad3768e 100644
--- a/buildtools/.gitignore
+++ b/buildtools/.gitignore
@@ -17,6 +17,7 @@
 debian_sid_armel-sysroot/
 emulator/
 googletest/
+grpc/src
 jsoncpp/
 libbacktrace/
 libbase/
diff --git a/buildtools/BUILD.gn b/buildtools/BUILD.gn
index 5eced89..d1dc6c8 100644
--- a/buildtools/BUILD.gn
+++ b/buildtools/BUILD.gn
@@ -129,21 +129,8 @@
 
   defines = [ "HAVE_PTHREAD=1" ]
   cflags = []
-  if (is_clang) {
-    # We do NOT build libprotobuf with -Wextra or -Weverything. But still it
-    # hits some warnings that we need to suppress.
-    cflags += [
-      "-Wno-unknown-warning-option",
-      "-Wno-enum-compare-switch",
-      "-Wno-user-defined-warnings",
-      "-Wno-tautological-constant-compare",
-      "-Wno-inconsistent-missing-override",
-    ]
-  } else if (!is_win) {  # implies gcc
-    cflags += [
-      "-Wno-return-type",
-      "-Wno-stringop-overread",
-    ]
+  if (!is_clang && !is_win) {  # implies gcc
+    cflags += [ "-Wno-stringop-overread" ]
   }
   if (is_win) {
     cflags += [ "/W0" ]
@@ -162,57 +149,101 @@
 source_set("protobuf_lite") {
   visibility = _buildtools_visibility
   sources = [
+    "protobuf/src/google/protobuf/any.h",
+    "protobuf/src/google/protobuf/any.pb.h",
     "protobuf/src/google/protobuf/any_lite.cc",
+    "protobuf/src/google/protobuf/api.pb.h",
     "protobuf/src/google/protobuf/arena.cc",
     "protobuf/src/google/protobuf/arena.h",
     "protobuf/src/google/protobuf/arena_impl.h",
+    "protobuf/src/google/protobuf/arenastring.cc",
     "protobuf/src/google/protobuf/arenastring.h",
+    "protobuf/src/google/protobuf/arenaz_sampler.cc",
+    "protobuf/src/google/protobuf/arenaz_sampler.h",
+    "protobuf/src/google/protobuf/compiler/importer.h",
+    "protobuf/src/google/protobuf/compiler/parser.h",
+    "protobuf/src/google/protobuf/descriptor.h",
+    "protobuf/src/google/protobuf/descriptor.pb.h",
+    "protobuf/src/google/protobuf/descriptor_database.h",
+    "protobuf/src/google/protobuf/duration.pb.h",
+    "protobuf/src/google/protobuf/dynamic_message.h",
+    "protobuf/src/google/protobuf/empty.pb.h",
+    "protobuf/src/google/protobuf/explicitly_constructed.h",
     "protobuf/src/google/protobuf/extension_set.cc",
     "protobuf/src/google/protobuf/extension_set.h",
+    "protobuf/src/google/protobuf/extension_set_inl.h",
+    "protobuf/src/google/protobuf/field_access_listener.h",
+    "protobuf/src/google/protobuf/field_mask.pb.h",
+    "protobuf/src/google/protobuf/generated_enum_reflection.h",
     "protobuf/src/google/protobuf/generated_enum_util.cc",
     "protobuf/src/google/protobuf/generated_enum_util.h",
-    "protobuf/src/google/protobuf/generated_message_table_driven_lite.cc",
-    "protobuf/src/google/protobuf/generated_message_table_driven_lite.h",
+    "protobuf/src/google/protobuf/generated_message_bases.h",
+    "protobuf/src/google/protobuf/generated_message_reflection.h",
+    "protobuf/src/google/protobuf/generated_message_tctable_decl.h",
+    "protobuf/src/google/protobuf/generated_message_tctable_impl.h",
+    "protobuf/src/google/protobuf/generated_message_tctable_lite.cc",
     "protobuf/src/google/protobuf/generated_message_util.cc",
     "protobuf/src/google/protobuf/generated_message_util.h",
     "protobuf/src/google/protobuf/has_bits.h",
     "protobuf/src/google/protobuf/implicit_weak_message.cc",
     "protobuf/src/google/protobuf/implicit_weak_message.h",
+    "protobuf/src/google/protobuf/inlined_string_field.cc",
     "protobuf/src/google/protobuf/inlined_string_field.h",
     "protobuf/src/google/protobuf/io/coded_stream.cc",
     "protobuf/src/google/protobuf/io/coded_stream.h",
-    "protobuf/src/google/protobuf/io/coded_stream_inl.h",
     "protobuf/src/google/protobuf/io/io_win32.cc",
     "protobuf/src/google/protobuf/io/io_win32.h",
+    "protobuf/src/google/protobuf/io/printer.h",
     "protobuf/src/google/protobuf/io/strtod.cc",
     "protobuf/src/google/protobuf/io/strtod.h",
+    "protobuf/src/google/protobuf/io/tokenizer.h",
     "protobuf/src/google/protobuf/io/zero_copy_stream.cc",
     "protobuf/src/google/protobuf/io/zero_copy_stream.h",
     "protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc",
     "protobuf/src/google/protobuf/io/zero_copy_stream_impl.h",
     "protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc",
     "protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h",
+    "protobuf/src/google/protobuf/map.cc",
     "protobuf/src/google/protobuf/map.h",
+    "protobuf/src/google/protobuf/map_entry.h",
     "protobuf/src/google/protobuf/map_entry_lite.h",
+    "protobuf/src/google/protobuf/map_field.h",
+    "protobuf/src/google/protobuf/map_field_inl.h",
     "protobuf/src/google/protobuf/map_field_lite.h",
     "protobuf/src/google/protobuf/map_type_handler.h",
+    "protobuf/src/google/protobuf/message.h",
     "protobuf/src/google/protobuf/message_lite.cc",
     "protobuf/src/google/protobuf/message_lite.h",
+    "protobuf/src/google/protobuf/metadata.h",
+    "protobuf/src/google/protobuf/metadata_lite.h",
+    "protobuf/src/google/protobuf/parse_context.cc",
+    "protobuf/src/google/protobuf/parse_context.h",
+    "protobuf/src/google/protobuf/port.h",
+    "protobuf/src/google/protobuf/port_def.inc",
+    "protobuf/src/google/protobuf/port_undef.inc",
+    "protobuf/src/google/protobuf/reflection.h",
+    "protobuf/src/google/protobuf/reflection_ops.h",
     "protobuf/src/google/protobuf/repeated_field.cc",
     "protobuf/src/google/protobuf/repeated_field.h",
+    "protobuf/src/google/protobuf/repeated_ptr_field.cc",
+    "protobuf/src/google/protobuf/repeated_ptr_field.h",
+    "protobuf/src/google/protobuf/service.h",
+    "protobuf/src/google/protobuf/source_context.pb.h",
+    "protobuf/src/google/protobuf/string_member_robber.h",
+    "protobuf/src/google/protobuf/struct.pb.h",
     "protobuf/src/google/protobuf/stubs/bytestream.cc",
     "protobuf/src/google/protobuf/stubs/bytestream.h",
     "protobuf/src/google/protobuf/stubs/callback.h",
     "protobuf/src/google/protobuf/stubs/casts.h",
     "protobuf/src/google/protobuf/stubs/common.cc",
     "protobuf/src/google/protobuf/stubs/common.h",
-    "protobuf/src/google/protobuf/stubs/fastmem.h",
     "protobuf/src/google/protobuf/stubs/hash.h",
     "protobuf/src/google/protobuf/stubs/int128.cc",
     "protobuf/src/google/protobuf/stubs/int128.h",
     "protobuf/src/google/protobuf/stubs/logging.h",
     "protobuf/src/google/protobuf/stubs/macros.h",
     "protobuf/src/google/protobuf/stubs/map_util.h",
+    "protobuf/src/google/protobuf/stubs/mathutil.h",
     "protobuf/src/google/protobuf/stubs/mutex.h",
     "protobuf/src/google/protobuf/stubs/once.h",
     "protobuf/src/google/protobuf/stubs/platform_macros.h",
@@ -233,8 +264,22 @@
     "protobuf/src/google/protobuf/stubs/template_util.h",
     "protobuf/src/google/protobuf/stubs/time.cc",
     "protobuf/src/google/protobuf/stubs/time.h",
+    "protobuf/src/google/protobuf/text_format.h",
+    "protobuf/src/google/protobuf/timestamp.pb.h",
+    "protobuf/src/google/protobuf/type.pb.h",
+    "protobuf/src/google/protobuf/unknown_field_set.h",
+    "protobuf/src/google/protobuf/util/delimited_message_util.h",
+    "protobuf/src/google/protobuf/util/field_comparator.h",
+    "protobuf/src/google/protobuf/util/field_mask_util.h",
+    "protobuf/src/google/protobuf/util/json_util.h",
+    "protobuf/src/google/protobuf/util/message_differencer.h",
+    "protobuf/src/google/protobuf/util/time_util.h",
+    "protobuf/src/google/protobuf/util/type_resolver.h",
+    "protobuf/src/google/protobuf/util/type_resolver_util.h",
+    "protobuf/src/google/protobuf/wire_format.h",
     "protobuf/src/google/protobuf/wire_format_lite.cc",
     "protobuf/src/google/protobuf/wire_format_lite.h",
+    "protobuf/src/google/protobuf/wrappers.pb.h",
   ]
   configs -= [ "//gn/standalone:extra_warnings" ]
   if (is_win) {
@@ -259,6 +304,10 @@
     "protobuf/src/google/protobuf/any.pb.h",
     "protobuf/src/google/protobuf/api.pb.cc",
     "protobuf/src/google/protobuf/api.pb.h",
+    "protobuf/src/google/protobuf/arena.h",
+    "protobuf/src/google/protobuf/arena_impl.h",
+    "protobuf/src/google/protobuf/arenastring.h",
+    "protobuf/src/google/protobuf/arenaz_sampler.h",
     "protobuf/src/google/protobuf/compiler/importer.cc",
     "protobuf/src/google/protobuf/compiler/importer.h",
     "protobuf/src/google/protobuf/compiler/parser.cc",
@@ -275,40 +324,85 @@
     "protobuf/src/google/protobuf/dynamic_message.h",
     "protobuf/src/google/protobuf/empty.pb.cc",
     "protobuf/src/google/protobuf/empty.pb.h",
+    "protobuf/src/google/protobuf/explicitly_constructed.h",
+    "protobuf/src/google/protobuf/extension_set.h",
     "protobuf/src/google/protobuf/extension_set_heavy.cc",
+    "protobuf/src/google/protobuf/extension_set_inl.h",
+    "protobuf/src/google/protobuf/field_access_listener.h",
     "protobuf/src/google/protobuf/field_mask.pb.cc",
     "protobuf/src/google/protobuf/field_mask.pb.h",
     "protobuf/src/google/protobuf/generated_enum_reflection.h",
+    "protobuf/src/google/protobuf/generated_enum_util.h",
+    "protobuf/src/google/protobuf/generated_message_bases.cc",
+    "protobuf/src/google/protobuf/generated_message_bases.h",
     "protobuf/src/google/protobuf/generated_message_reflection.cc",
     "protobuf/src/google/protobuf/generated_message_reflection.h",
+    "protobuf/src/google/protobuf/generated_message_tctable_decl.h",
+    "protobuf/src/google/protobuf/generated_message_tctable_full.cc",
+    "protobuf/src/google/protobuf/generated_message_tctable_impl.h",
+    "protobuf/src/google/protobuf/generated_message_util.h",
+    "protobuf/src/google/protobuf/has_bits.h",
+    "protobuf/src/google/protobuf/implicit_weak_message.h",
+    "protobuf/src/google/protobuf/inlined_string_field.h",
+    "protobuf/src/google/protobuf/io/coded_stream.h",
     "protobuf/src/google/protobuf/io/gzip_stream.cc",
-    "protobuf/src/google/protobuf/io/gzip_stream.h",
+    "protobuf/src/google/protobuf/io/io_win32.h",
     "protobuf/src/google/protobuf/io/printer.cc",
     "protobuf/src/google/protobuf/io/printer.h",
+    "protobuf/src/google/protobuf/io/strtod.h",
     "protobuf/src/google/protobuf/io/tokenizer.cc",
     "protobuf/src/google/protobuf/io/tokenizer.h",
+    "protobuf/src/google/protobuf/io/zero_copy_stream.h",
+    "protobuf/src/google/protobuf/io/zero_copy_stream_impl.h",
+    "protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h",
+    "protobuf/src/google/protobuf/map.h",
     "protobuf/src/google/protobuf/map_entry.h",
+    "protobuf/src/google/protobuf/map_entry_lite.h",
     "protobuf/src/google/protobuf/map_field.cc",
     "protobuf/src/google/protobuf/map_field.h",
     "protobuf/src/google/protobuf/map_field_inl.h",
+    "protobuf/src/google/protobuf/map_field_lite.h",
+    "protobuf/src/google/protobuf/map_type_handler.h",
     "protobuf/src/google/protobuf/message.cc",
     "protobuf/src/google/protobuf/message.h",
+    "protobuf/src/google/protobuf/message_lite.h",
     "protobuf/src/google/protobuf/metadata.h",
+    "protobuf/src/google/protobuf/metadata_lite.h",
+    "protobuf/src/google/protobuf/parse_context.h",
+    "protobuf/src/google/protobuf/port.h",
+    "protobuf/src/google/protobuf/port_def.inc",
+    "protobuf/src/google/protobuf/port_undef.inc",
     "protobuf/src/google/protobuf/reflection.h",
     "protobuf/src/google/protobuf/reflection_internal.h",
     "protobuf/src/google/protobuf/reflection_ops.cc",
     "protobuf/src/google/protobuf/reflection_ops.h",
+    "protobuf/src/google/protobuf/repeated_field.h",
+    "protobuf/src/google/protobuf/repeated_ptr_field.h",
     "protobuf/src/google/protobuf/service.cc",
     "protobuf/src/google/protobuf/service.h",
     "protobuf/src/google/protobuf/source_context.pb.cc",
     "protobuf/src/google/protobuf/source_context.pb.h",
     "protobuf/src/google/protobuf/struct.pb.cc",
     "protobuf/src/google/protobuf/struct.pb.h",
-    "protobuf/src/google/protobuf/stubs/mathlimits.cc",
-    "protobuf/src/google/protobuf/stubs/mathlimits.h",
-    "protobuf/src/google/protobuf/stubs/mathutil.h",
+    "protobuf/src/google/protobuf/stubs/bytestream.h",
+    "protobuf/src/google/protobuf/stubs/callback.h",
+    "protobuf/src/google/protobuf/stubs/casts.h",
+    "protobuf/src/google/protobuf/stubs/common.h",
+    "protobuf/src/google/protobuf/stubs/hash.h",
+    "protobuf/src/google/protobuf/stubs/logging.h",
+    "protobuf/src/google/protobuf/stubs/macros.h",
+    "protobuf/src/google/protobuf/stubs/map_util.h",
+    "protobuf/src/google/protobuf/stubs/mutex.h",
+    "protobuf/src/google/protobuf/stubs/once.h",
+    "protobuf/src/google/protobuf/stubs/platform_macros.h",
+    "protobuf/src/google/protobuf/stubs/port.h",
+    "protobuf/src/google/protobuf/stubs/status.h",
+    "protobuf/src/google/protobuf/stubs/stl_util.h",
+    "protobuf/src/google/protobuf/stubs/stringpiece.h",
+    "protobuf/src/google/protobuf/stubs/strutil.h",
     "protobuf/src/google/protobuf/stubs/substitute.cc",
     "protobuf/src/google/protobuf/stubs/substitute.h",
+    "protobuf/src/google/protobuf/stubs/template_util.h",
     "protobuf/src/google/protobuf/text_format.cc",
     "protobuf/src/google/protobuf/text_format.h",
     "protobuf/src/google/protobuf/timestamp.pb.cc",
@@ -317,6 +411,8 @@
     "protobuf/src/google/protobuf/type.pb.h",
     "protobuf/src/google/protobuf/unknown_field_set.cc",
     "protobuf/src/google/protobuf/unknown_field_set.h",
+    "protobuf/src/google/protobuf/util/delimited_message_util.cc",
+    "protobuf/src/google/protobuf/util/delimited_message_util.h",
     "protobuf/src/google/protobuf/util/field_comparator.cc",
     "protobuf/src/google/protobuf/util/field_comparator.h",
     "protobuf/src/google/protobuf/util/field_mask_util.cc",
@@ -328,6 +424,7 @@
     "protobuf/src/google/protobuf/util/internal/default_value_objectwriter.h",
     "protobuf/src/google/protobuf/util/internal/error_listener.cc",
     "protobuf/src/google/protobuf/util/internal/error_listener.h",
+    "protobuf/src/google/protobuf/util/internal/expecting_objectwriter.h",
     "protobuf/src/google/protobuf/util/internal/field_mask_utility.cc",
     "protobuf/src/google/protobuf/util/internal/field_mask_utility.h",
     "protobuf/src/google/protobuf/util/internal/json_escaping.cc",
@@ -337,6 +434,7 @@
     "protobuf/src/google/protobuf/util/internal/json_stream_parser.cc",
     "protobuf/src/google/protobuf/util/internal/json_stream_parser.h",
     "protobuf/src/google/protobuf/util/internal/location_tracker.h",
+    "protobuf/src/google/protobuf/util/internal/mock_error_listener.h",
     "protobuf/src/google/protobuf/util/internal/object_location_tracker.h",
     "protobuf/src/google/protobuf/util/internal/object_source.h",
     "protobuf/src/google/protobuf/util/internal/object_writer.cc",
@@ -350,7 +448,6 @@
     "protobuf/src/google/protobuf/util/internal/structured_objectwriter.h",
     "protobuf/src/google/protobuf/util/internal/type_info.cc",
     "protobuf/src/google/protobuf/util/internal/type_info.h",
-    "protobuf/src/google/protobuf/util/internal/type_info_test_helper.cc",
     "protobuf/src/google/protobuf/util/internal/type_info_test_helper.h",
     "protobuf/src/google/protobuf/util/internal/utility.cc",
     "protobuf/src/google/protobuf/util/internal/utility.h",
@@ -365,6 +462,7 @@
     "protobuf/src/google/protobuf/util/type_resolver_util.h",
     "protobuf/src/google/protobuf/wire_format.cc",
     "protobuf/src/google/protobuf/wire_format.h",
+    "protobuf/src/google/protobuf/wire_format_lite.h",
     "protobuf/src/google/protobuf/wrappers.pb.cc",
     "protobuf/src/google/protobuf/wrappers.pb.h",
   ]
@@ -412,9 +510,12 @@
     "protobuf/src/google/protobuf/compiler/cpp/cpp_message_field.cc",
     "protobuf/src/google/protobuf/compiler/cpp/cpp_message_field.h",
     "protobuf/src/google/protobuf/compiler/cpp/cpp_message_layout_helper.h",
+    "protobuf/src/google/protobuf/compiler/cpp/cpp_names.h",
     "protobuf/src/google/protobuf/compiler/cpp/cpp_options.h",
     "protobuf/src/google/protobuf/compiler/cpp/cpp_padding_optimizer.cc",
     "protobuf/src/google/protobuf/compiler/cpp/cpp_padding_optimizer.h",
+    "protobuf/src/google/protobuf/compiler/cpp/cpp_parse_function_generator.cc",
+    "protobuf/src/google/protobuf/compiler/cpp/cpp_parse_function_generator.h",
     "protobuf/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc",
     "protobuf/src/google/protobuf/compiler/cpp/cpp_primitive_field.h",
     "protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc",
@@ -439,6 +540,7 @@
     "protobuf/src/google/protobuf/compiler/csharp/csharp_message.h",
     "protobuf/src/google/protobuf/compiler/csharp/csharp_message_field.cc",
     "protobuf/src/google/protobuf/compiler/csharp/csharp_message_field.h",
+    "protobuf/src/google/protobuf/compiler/csharp/csharp_names.h",
     "protobuf/src/google/protobuf/compiler/csharp/csharp_options.h",
     "protobuf/src/google/protobuf/compiler/csharp/csharp_primitive_field.cc",
     "protobuf/src/google/protobuf/compiler/csharp/csharp_primitive_field.h",
@@ -480,6 +582,8 @@
     "protobuf/src/google/protobuf/compiler/java/java_generator_factory.h",
     "protobuf/src/google/protobuf/compiler/java/java_helpers.cc",
     "protobuf/src/google/protobuf/compiler/java/java_helpers.h",
+    "protobuf/src/google/protobuf/compiler/java/java_kotlin_generator.cc",
+    "protobuf/src/google/protobuf/compiler/java/java_kotlin_generator.h",
     "protobuf/src/google/protobuf/compiler/java/java_map_field.cc",
     "protobuf/src/google/protobuf/compiler/java/java_map_field.h",
     "protobuf/src/google/protobuf/compiler/java/java_map_field_lite.cc",
@@ -498,6 +602,7 @@
     "protobuf/src/google/protobuf/compiler/java/java_message_lite.h",
     "protobuf/src/google/protobuf/compiler/java/java_name_resolver.cc",
     "protobuf/src/google/protobuf/compiler/java/java_name_resolver.h",
+    "protobuf/src/google/protobuf/compiler/java/java_names.h",
     "protobuf/src/google/protobuf/compiler/java/java_options.h",
     "protobuf/src/google/protobuf/compiler/java/java_primitive_field.cc",
     "protobuf/src/google/protobuf/compiler/java/java_primitive_field.h",
@@ -535,6 +640,7 @@
     "protobuf/src/google/protobuf/compiler/objectivec/objectivec_message.h",
     "protobuf/src/google/protobuf/compiler/objectivec/objectivec_message_field.cc",
     "protobuf/src/google/protobuf/compiler/objectivec/objectivec_message_field.h",
+    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_nsobject_methods.h",
     "protobuf/src/google/protobuf/compiler/objectivec/objectivec_oneof.cc",
     "protobuf/src/google/protobuf/compiler/objectivec/objectivec_oneof.h",
     "protobuf/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc",
@@ -547,8 +653,13 @@
     "protobuf/src/google/protobuf/compiler/plugin.pb.h",
     "protobuf/src/google/protobuf/compiler/python/python_generator.cc",
     "protobuf/src/google/protobuf/compiler/python/python_generator.h",
+    "protobuf/src/google/protobuf/compiler/python/python_helpers.cc",
+    "protobuf/src/google/protobuf/compiler/python/python_helpers.h",
+    "protobuf/src/google/protobuf/compiler/python/python_pyi_generator.cc",
+    "protobuf/src/google/protobuf/compiler/python/python_pyi_generator.h",
     "protobuf/src/google/protobuf/compiler/ruby/ruby_generator.cc",
     "protobuf/src/google/protobuf/compiler/ruby/ruby_generator.h",
+    "protobuf/src/google/protobuf/compiler/scc.h",
     "protobuf/src/google/protobuf/compiler/subprocess.cc",
     "protobuf/src/google/protobuf/compiler/subprocess.h",
     "protobuf/src/google/protobuf/compiler/zip_writer.cc",
@@ -1340,3 +1451,65 @@
   ]
   deps = [ "//gn:default_deps" ]
 }
+
+if (enable_perfetto_grpc) {
+  config("grpc_absl_config") {
+    visibility = _buildtools_visibility
+    include_dirs = [ "grpc/src/third_party/abseil-cpp" ]
+    cflags = [ "-Wno-deprecated-builtins" ]
+  }
+
+  config("grpc_boringssl_config") {
+    visibility = _buildtools_visibility
+    include_dirs = [ "grpc/src/third_party/boringssl-with-bazel/src/include" ]
+  }
+
+  config("grpc_upb_config") {
+    visibility = _buildtools_visibility
+    include_dirs = [
+      "grpc/src/third_party/upb",
+      "grpc/src/src/core/ext/upb-generated",
+      "grpc/src/src/core/ext/upbdefs-generated",
+    ]
+  }
+
+  config("grpc_re2_config") {
+    visibility = _buildtools_visibility
+    include_dirs = [ "grpc/src/third_party/re2" ]
+  }
+
+  config("grpc_internal_config") {
+    visibility = _buildtools_visibility
+    include_dirs = [
+      "grpc/src/include",
+      "grpc/src",
+      "grpc/src/third_party/address_sorting/include",
+      "grpc/src/third_party/re2",
+      "grpc/src/src/core/ext/upb-generated",
+      "grpc/src/src/core/ext/upbdefs-generated",
+      "grpc/src/third_party/xxhash",
+    ]
+    cflags = [ "-DGRPC_ARES=0" ]
+  }
+
+  config("grpc_gen_config") {
+    cflags = [
+      # Using -isystem instead of include_dirs (-I), so we don't need to
+      # suppress warnings coming from libprotobuf headers. Doing so would mask
+      # warnings in our own code.
+      perfetto_isystem_cflag,
+      rebase_path("grpc/src/include", root_build_dir),
+      perfetto_isystem_cflag,
+      rebase_path("grpc/src/third_party/abseil-cpp", root_build_dir),
+    ]
+
+    # This issues appear in .grpc.pb.h files so we unfortunately need to leak
+    # the cflags outside of just compiling this code.
+    if (is_clang && !is_win) {
+      cflags += [
+        "-Wno-weak-vtables",
+        "-Wno-suggest-destructor-override",
+      ]
+    }
+  }
+}
diff --git a/buildtools/grpc/BUILD.gn b/buildtools/grpc/BUILD.gn
new file mode 100644
index 0000000..16ca941
--- /dev/null
+++ b/buildtools/grpc/BUILD.gn
@@ -0,0 +1,6448 @@
+#
+# DO NOT EDIT. AUTOGENERATED file
+#
+# This file is generated with the command:
+# tools/gen_grpc_build_gn.py > buildtools/grpc/BUILD.gn
+#
+
+import("../../gn/perfetto.gni")
+
+# Prevent the gRPC from being depended upon without explicitly being opted in.
+assert(enable_perfetto_grpc)
+
+# BoringSSL has assembly code which is tied to platform-specific. For now, we
+# only care about Linux x64 so assert this as the case.
+assert(is_linux && current_cpu == "x64")
+
+source_set("absl_algorithm_algorithm") {
+  sources = [ "src/third_party/abseil-cpp/absl/algorithm/algorithm.h" ]
+  public_deps = [ ":absl_base_config" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_algorithm_container") {
+  sources = [ "src/third_party/abseil-cpp/absl/algorithm/container.h" ]
+  public_deps = [
+    ":absl_algorithm_algorithm",
+    ":absl_base_core_headers",
+    ":absl_meta_type_traits",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_atomic_hook") {
+  sources = [ "src/third_party/abseil-cpp/absl/base/internal/atomic_hook.h" ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_base") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/base/call_once.h",
+    "src/third_party/abseil-cpp/absl/base/casts.h",
+    "src/third_party/abseil-cpp/absl/base/internal/cycleclock.cc",
+    "src/third_party/abseil-cpp/absl/base/internal/cycleclock.h",
+    "src/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h",
+    "src/third_party/abseil-cpp/absl/base/internal/per_thread_tls.h",
+    "src/third_party/abseil-cpp/absl/base/internal/spinlock.cc",
+    "src/third_party/abseil-cpp/absl/base/internal/spinlock.h",
+    "src/third_party/abseil-cpp/absl/base/internal/sysinfo.cc",
+    "src/third_party/abseil-cpp/absl/base/internal/sysinfo.h",
+    "src/third_party/abseil-cpp/absl/base/internal/thread_identity.cc",
+    "src/third_party/abseil-cpp/absl/base/internal/thread_identity.h",
+    "src/third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h",
+    "src/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc",
+    "src/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h",
+  ]
+  public_deps = [
+    ":absl_base_atomic_hook",
+    ":absl_base_base_internal",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_cycleclock_internal",
+    ":absl_base_dynamic_annotations",
+    ":absl_base_log_severity",
+    ":absl_base_raw_logging_internal",
+    ":absl_base_spinlock_wait",
+    ":absl_meta_type_traits",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_base_internal") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/base/internal/hide_ptr.h",
+    "src/third_party/abseil-cpp/absl/base/internal/identity.h",
+    "src/third_party/abseil-cpp/absl/base/internal/inline_variable.h",
+    "src/third_party/abseil-cpp/absl/base/internal/invoke.h",
+    "src/third_party/abseil-cpp/absl/base/internal/scheduling_mode.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_meta_type_traits",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_config") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/base/config.h",
+    "src/third_party/abseil-cpp/absl/base/options.h",
+    "src/third_party/abseil-cpp/absl/base/policy_checks.h",
+  ]
+  public_deps = []
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_core_headers") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/base/attributes.h",
+    "src/third_party/abseil-cpp/absl/base/const_init.h",
+    "src/third_party/abseil-cpp/absl/base/internal/thread_annotations.h",
+    "src/third_party/abseil-cpp/absl/base/macros.h",
+    "src/third_party/abseil-cpp/absl/base/optimization.h",
+    "src/third_party/abseil-cpp/absl/base/port.h",
+    "src/third_party/abseil-cpp/absl/base/thread_annotations.h",
+  ]
+  public_deps = [ ":absl_base_config" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_cycleclock_internal") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h",
+    "src/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h",
+  ]
+  public_deps = [
+    ":absl_base_base_internal",
+    ":absl_base_config",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_dynamic_annotations") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/base/dynamic_annotations.h",
+    "src/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_endian") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/base/internal/endian.h",
+    "src/third_party/abseil-cpp/absl/base/internal/unaligned_access.h",
+  ]
+  public_deps = [
+    ":absl_base_base",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_errno_saver") {
+  sources = [ "src/third_party/abseil-cpp/absl/base/internal/errno_saver.h" ]
+  public_deps = [ ":absl_base_config" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_fast_type_id") {
+  sources = [ "src/third_party/abseil-cpp/absl/base/internal/fast_type_id.h" ]
+  public_deps = [ ":absl_base_config" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_log_severity") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/base/log_severity.cc",
+    "src/third_party/abseil-cpp/absl/base/log_severity.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_malloc_internal") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/base/internal/direct_mmap.h",
+    "src/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc",
+    "src/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h",
+  ]
+  public_deps = [
+    ":absl_base_base",
+    ":absl_base_base_internal",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_dynamic_annotations",
+    ":absl_base_raw_logging_internal",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_prefetch") {
+  sources = [ "src/third_party/abseil-cpp/absl/base/internal/prefetch.h" ]
+  public_deps = [ ":absl_base_config" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_pretty_function") {
+  sources =
+      [ "src/third_party/abseil-cpp/absl/base/internal/pretty_function.h" ]
+  public_deps = []
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_raw_logging_internal") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/base/internal/raw_logging.cc",
+    "src/third_party/abseil-cpp/absl/base/internal/raw_logging.h",
+  ]
+  public_deps = [
+    ":absl_base_atomic_hook",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_errno_saver",
+    ":absl_base_log_severity",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_spinlock_wait") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc",
+    "src/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc",
+    "src/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc",
+    "src/third_party/abseil-cpp/absl/base/internal/spinlock_wait.cc",
+    "src/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h",
+    "src/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc",
+  ]
+  public_deps = [
+    ":absl_base_base_internal",
+    ":absl_base_core_headers",
+    ":absl_base_errno_saver",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_strerror") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/base/internal/strerror.cc",
+    "src/third_party/abseil-cpp/absl/base/internal/strerror.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_errno_saver",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_base_throw_delegate") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc",
+    "src/third_party/abseil-cpp/absl/base/internal/throw_delegate.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_raw_logging_internal",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_cleanup_cleanup") {
+  sources = [ "src/third_party/abseil-cpp/absl/cleanup/cleanup.h" ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_cleanup_cleanup_internal",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_cleanup_cleanup_internal") {
+  sources = [ "src/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h" ]
+  public_deps = [
+    ":absl_base_base_internal",
+    ":absl_base_core_headers",
+    ":absl_utility_utility",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_btree") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/container/btree_map.h",
+    "src/third_party/abseil-cpp/absl/container/btree_set.h",
+    "src/third_party/abseil-cpp/absl/container/internal/btree.h",
+    "src/third_party/abseil-cpp/absl/container/internal/btree_container.h",
+  ]
+  public_deps = [
+    ":absl_base_core_headers",
+    ":absl_base_raw_logging_internal",
+    ":absl_base_throw_delegate",
+    ":absl_container_common",
+    ":absl_container_common_policy_traits",
+    ":absl_container_compressed_tuple",
+    ":absl_container_container_memory",
+    ":absl_container_layout",
+    ":absl_memory_memory",
+    ":absl_meta_type_traits",
+    ":absl_strings_cord",
+    ":absl_strings_strings",
+    ":absl_types_compare",
+    ":absl_utility_utility",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_common") {
+  sources = [ "src/third_party/abseil-cpp/absl/container/internal/common.h" ]
+  public_deps = [
+    ":absl_meta_type_traits",
+    ":absl_types_optional",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_common_policy_traits") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h",
+  ]
+  public_deps = [ ":absl_meta_type_traits" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_compressed_tuple") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h",
+  ]
+  public_deps = [ ":absl_utility_utility" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_container_memory") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/container/internal/container_memory.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_memory_memory",
+    ":absl_meta_type_traits",
+    ":absl_utility_utility",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_fixed_array") {
+  sources = [ "src/third_party/abseil-cpp/absl/container/fixed_array.h" ]
+  public_deps = [
+    ":absl_algorithm_algorithm",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_dynamic_annotations",
+    ":absl_base_throw_delegate",
+    ":absl_container_compressed_tuple",
+    ":absl_memory_memory",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_flat_hash_map") {
+  sources = [ "src/third_party/abseil-cpp/absl/container/flat_hash_map.h" ]
+  public_deps = [
+    ":absl_algorithm_container",
+    ":absl_base_core_headers",
+    ":absl_container_container_memory",
+    ":absl_container_hash_function_defaults",
+    ":absl_container_raw_hash_map",
+    ":absl_memory_memory",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_flat_hash_set") {
+  sources = [ "src/third_party/abseil-cpp/absl/container/flat_hash_set.h" ]
+  public_deps = [
+    ":absl_algorithm_container",
+    ":absl_base_core_headers",
+    ":absl_container_container_memory",
+    ":absl_container_hash_function_defaults",
+    ":absl_container_raw_hash_set",
+    ":absl_memory_memory",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_hash_function_defaults") {
+  sources = [ "src/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h" ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_hash_hash",
+    ":absl_strings_cord",
+    ":absl_strings_strings",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_hash_policy_traits") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h",
+  ]
+  public_deps = [
+    ":absl_container_common_policy_traits",
+    ":absl_meta_type_traits",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_hashtable_debug") {
+  sources =
+      [ "src/third_party/abseil-cpp/absl/container/internal/hashtable_debug.h" ]
+  public_deps = [ ":absl_container_hashtable_debug_hooks" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_hashtable_debug_hooks") {
+  sources = [ "src/third_party/abseil-cpp/absl/container/internal/hashtable_debug_hooks.h" ]
+  public_deps = [ ":absl_base_config" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_hashtablez_sampler") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc",
+    "src/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h",
+    "src/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc",
+  ]
+  public_deps = [
+    ":absl_base_base",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_debugging_stacktrace",
+    ":absl_memory_memory",
+    ":absl_profiling_exponential_biased",
+    ":absl_profiling_sample_recorder",
+    ":absl_synchronization_synchronization",
+    ":absl_utility_utility",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_inlined_vector") {
+  sources = [ "src/third_party/abseil-cpp/absl/container/inlined_vector.h" ]
+  public_deps = [
+    ":absl_algorithm_algorithm",
+    ":absl_base_core_headers",
+    ":absl_base_throw_delegate",
+    ":absl_container_inlined_vector_internal",
+    ":absl_memory_memory",
+    ":absl_meta_type_traits",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_inlined_vector_internal") {
+  sources =
+      [ "src/third_party/abseil-cpp/absl/container/internal/inlined_vector.h" ]
+  public_deps = [
+    ":absl_base_core_headers",
+    ":absl_container_compressed_tuple",
+    ":absl_memory_memory",
+    ":absl_meta_type_traits",
+    ":absl_types_span",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_layout") {
+  sources = [ "src/third_party/abseil-cpp/absl/container/internal/layout.h" ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_meta_type_traits",
+    ":absl_strings_strings",
+    ":absl_types_span",
+    ":absl_utility_utility",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_node_hash_map") {
+  sources = [ "src/third_party/abseil-cpp/absl/container/node_hash_map.h" ]
+  public_deps = [
+    ":absl_algorithm_container",
+    ":absl_base_core_headers",
+    ":absl_container_container_memory",
+    ":absl_container_hash_function_defaults",
+    ":absl_container_node_slot_policy",
+    ":absl_container_raw_hash_map",
+    ":absl_memory_memory",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_node_hash_set") {
+  sources = [ "src/third_party/abseil-cpp/absl/container/node_hash_set.h" ]
+  public_deps = [
+    ":absl_algorithm_container",
+    ":absl_base_core_headers",
+    ":absl_container_hash_function_defaults",
+    ":absl_container_node_slot_policy",
+    ":absl_container_raw_hash_set",
+    ":absl_memory_memory",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_node_slot_policy") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/container/internal/node_slot_policy.h",
+  ]
+  public_deps = [ ":absl_base_config" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_raw_hash_map") {
+  sources =
+      [ "src/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h" ]
+  public_deps = [
+    ":absl_base_throw_delegate",
+    ":absl_container_container_memory",
+    ":absl_container_raw_hash_set",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_container_raw_hash_set") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc",
+    "src/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_endian",
+    ":absl_base_prefetch",
+    ":absl_base_raw_logging_internal",
+    ":absl_container_common",
+    ":absl_container_compressed_tuple",
+    ":absl_container_container_memory",
+    ":absl_container_hash_policy_traits",
+    ":absl_container_hashtable_debug_hooks",
+    ":absl_container_hashtablez_sampler",
+    ":absl_memory_memory",
+    ":absl_meta_type_traits",
+    ":absl_numeric_bits",
+    ":absl_utility_utility",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_crc_cpu_detect") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc",
+    "src/third_party/abseil-cpp/absl/crc/internal/cpu_detect.h",
+  ]
+  public_deps = [
+    ":absl_base_base",
+    ":absl_base_config",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_crc_crc32c") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/crc/crc32c.cc",
+    "src/third_party/abseil-cpp/absl/crc/crc32c.h",
+    "src/third_party/abseil-cpp/absl/crc/internal/crc32c.h",
+    "src/third_party/abseil-cpp/absl/crc/internal/crc32c_inline.h",
+    "src/third_party/abseil-cpp/absl/crc/internal/crc_memcpy.h",
+    "src/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc",
+    "src/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_64.cc",
+    "src/third_party/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_dynamic_annotations",
+    ":absl_base_endian",
+    ":absl_base_prefetch",
+    ":absl_crc_cpu_detect",
+    ":absl_crc_crc_internal",
+    ":absl_crc_non_temporal_memcpy",
+    ":absl_strings_strings",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_crc_crc_cord_state") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc",
+    "src/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_crc_crc32c",
+    ":absl_numeric_bits",
+    ":absl_strings_strings",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_crc_crc_internal") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/crc/internal/crc.cc",
+    "src/third_party/abseil-cpp/absl/crc/internal/crc.h",
+    "src/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h",
+    "src/third_party/abseil-cpp/absl/crc/internal/crc_internal.h",
+    "src/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc",
+  ]
+  public_deps = [
+    ":absl_base_base",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_dynamic_annotations",
+    ":absl_base_endian",
+    ":absl_base_prefetch",
+    ":absl_base_raw_logging_internal",
+    ":absl_crc_cpu_detect",
+    ":absl_memory_memory",
+    ":absl_numeric_bits",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_crc_non_temporal_arm_intrinsics") {
+  sources = [ "src/third_party/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h" ]
+  public_deps = [ ":absl_base_config" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_crc_non_temporal_memcpy") {
+  sources =
+      [ "src/third_party/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h" ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_crc_non_temporal_arm_intrinsics",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_debugging_debugging_internal") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc",
+    "src/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.h",
+    "src/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc",
+    "src/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h",
+    "src/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc",
+    "src/third_party/abseil-cpp/absl/debugging/internal/vdso_support.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_dynamic_annotations",
+    ":absl_base_errno_saver",
+    ":absl_base_raw_logging_internal",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_debugging_demangle_internal") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/debugging/internal/demangle.cc",
+    "src/third_party/abseil-cpp/absl/debugging/internal/demangle.h",
+  ]
+  public_deps = [
+    ":absl_base_base",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_debugging_examine_stack") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc",
+    "src/third_party/abseil-cpp/absl/debugging/internal/examine_stack.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_raw_logging_internal",
+    ":absl_debugging_stacktrace",
+    ":absl_debugging_symbolize",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_debugging_failure_signal_handler") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc",
+    "src/third_party/abseil-cpp/absl/debugging/failure_signal_handler.h",
+  ]
+  public_deps = [
+    ":absl_base_base",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_raw_logging_internal",
+    ":absl_debugging_examine_stack",
+    ":absl_debugging_stacktrace",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_debugging_leak_check") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/debugging/leak_check.cc",
+    "src/third_party/abseil-cpp/absl/debugging/leak_check.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_debugging_stacktrace") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc",
+    "src/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc",
+    "src/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h",
+    "src/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc",
+    "src/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc",
+    "src/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc",
+    "src/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc",
+    "src/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc",
+    "src/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc",
+    "src/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc",
+    "src/third_party/abseil-cpp/absl/debugging/stacktrace.cc",
+    "src/third_party/abseil-cpp/absl/debugging/stacktrace.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_raw_logging_internal",
+    ":absl_debugging_debugging_internal",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_debugging_symbolize") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/debugging/internal/symbolize.h",
+    "src/third_party/abseil-cpp/absl/debugging/symbolize.cc",
+    "src/third_party/abseil-cpp/absl/debugging/symbolize.h",
+    "src/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc",
+    "src/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc",
+    "src/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc",
+    "src/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc",
+    "src/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc",
+  ]
+  public_deps = [
+    ":absl_base_base",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_dynamic_annotations",
+    ":absl_base_malloc_internal",
+    ":absl_base_raw_logging_internal",
+    ":absl_debugging_debugging_internal",
+    ":absl_debugging_demangle_internal",
+    ":absl_strings_strings",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_commandlineflag") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/flags/commandlineflag.cc",
+    "src/third_party/abseil-cpp/absl/flags/commandlineflag.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_fast_type_id",
+    ":absl_flags_commandlineflag_internal",
+    ":absl_strings_strings",
+    ":absl_types_optional",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_commandlineflag_internal") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc",
+    "src/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_fast_type_id",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_config") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/flags/config.h",
+    "src/third_party/abseil-cpp/absl/flags/usage_config.cc",
+    "src/third_party/abseil-cpp/absl/flags/usage_config.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_flags_path_util",
+    ":absl_flags_program_name",
+    ":absl_strings_strings",
+    ":absl_synchronization_synchronization",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_flag") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/flags/declare.h",
+    "src/third_party/abseil-cpp/absl/flags/flag.cc",
+    "src/third_party/abseil-cpp/absl/flags/flag.h",
+    "src/third_party/abseil-cpp/absl/flags/internal/flag_msvc.inc",
+  ]
+  public_deps = [
+    ":absl_base_base",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_flags_config",
+    ":absl_flags_flag_internal",
+    ":absl_flags_reflection",
+    ":absl_strings_strings",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_flag_internal") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/flags/internal/flag.cc",
+    "src/third_party/abseil-cpp/absl/flags/internal/flag.h",
+    "src/third_party/abseil-cpp/absl/flags/internal/sequence_lock.h",
+  ]
+  public_deps = [
+    ":absl_base_base",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_dynamic_annotations",
+    ":absl_flags_commandlineflag",
+    ":absl_flags_commandlineflag_internal",
+    ":absl_flags_config",
+    ":absl_flags_marshalling",
+    ":absl_flags_reflection",
+    ":absl_memory_memory",
+    ":absl_meta_type_traits",
+    ":absl_strings_strings",
+    ":absl_synchronization_synchronization",
+    ":absl_utility_utility",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_marshalling") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/flags/marshalling.cc",
+    "src/third_party/abseil-cpp/absl/flags/marshalling.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_log_severity",
+    ":absl_strings_str_format",
+    ":absl_strings_strings",
+    ":absl_types_optional",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_parse") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/flags/internal/parse.h",
+    "src/third_party/abseil-cpp/absl/flags/parse.cc",
+    "src/third_party/abseil-cpp/absl/flags/parse.h",
+  ]
+  public_deps = [
+    ":absl_algorithm_container",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_flags_commandlineflag",
+    ":absl_flags_commandlineflag_internal",
+    ":absl_flags_config",
+    ":absl_flags_flag",
+    ":absl_flags_flag_internal",
+    ":absl_flags_private_handle_accessor",
+    ":absl_flags_program_name",
+    ":absl_flags_reflection",
+    ":absl_flags_usage",
+    ":absl_flags_usage_internal",
+    ":absl_strings_strings",
+    ":absl_synchronization_synchronization",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_path_util") {
+  sources = [ "src/third_party/abseil-cpp/absl/flags/internal/path_util.h" ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_strings_strings",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_private_handle_accessor") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc",
+    "src/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_flags_commandlineflag",
+    ":absl_flags_commandlineflag_internal",
+    ":absl_strings_strings",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_program_name") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/flags/internal/program_name.cc",
+    "src/third_party/abseil-cpp/absl/flags/internal/program_name.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_flags_path_util",
+    ":absl_strings_strings",
+    ":absl_synchronization_synchronization",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_reflection") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/flags/internal/registry.h",
+    "src/third_party/abseil-cpp/absl/flags/reflection.cc",
+    "src/third_party/abseil-cpp/absl/flags/reflection.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_container_flat_hash_map",
+    ":absl_flags_commandlineflag",
+    ":absl_flags_commandlineflag_internal",
+    ":absl_flags_config",
+    ":absl_flags_private_handle_accessor",
+    ":absl_strings_strings",
+    ":absl_synchronization_synchronization",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_usage") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/flags/usage.cc",
+    "src/third_party/abseil-cpp/absl/flags/usage.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_flags_usage_internal",
+    ":absl_strings_strings",
+    ":absl_synchronization_synchronization",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_flags_usage_internal") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/flags/internal/usage.cc",
+    "src/third_party/abseil-cpp/absl/flags/internal/usage.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_container_flat_hash_map",
+    ":absl_flags_commandlineflag",
+    ":absl_flags_config",
+    ":absl_flags_flag",
+    ":absl_flags_flag_internal",
+    ":absl_flags_path_util",
+    ":absl_flags_private_handle_accessor",
+    ":absl_flags_program_name",
+    ":absl_flags_reflection",
+    ":absl_strings_strings",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_functional_any_invocable") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/functional/any_invocable.h",
+    "src/third_party/abseil-cpp/absl/functional/internal/any_invocable.h",
+  ]
+  public_deps = [
+    ":absl_base_base_internal",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_meta_type_traits",
+    ":absl_utility_utility",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_functional_bind_front") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/functional/bind_front.h",
+    "src/third_party/abseil-cpp/absl/functional/internal/front_binder.h",
+  ]
+  public_deps = [
+    ":absl_base_base_internal",
+    ":absl_container_compressed_tuple",
+    ":absl_meta_type_traits",
+    ":absl_utility_utility",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_functional_function_ref") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/functional/function_ref.h",
+    "src/third_party/abseil-cpp/absl/functional/internal/function_ref.h",
+  ]
+  public_deps = [
+    ":absl_base_base_internal",
+    ":absl_base_core_headers",
+    ":absl_meta_type_traits",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_hash_city") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/hash/internal/city.cc",
+    "src/third_party/abseil-cpp/absl/hash/internal/city.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_endian",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_hash_hash") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/hash/hash.h",
+    "src/third_party/abseil-cpp/absl/hash/internal/hash.cc",
+    "src/third_party/abseil-cpp/absl/hash/internal/hash.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_endian",
+    ":absl_container_fixed_array",
+    ":absl_functional_function_ref",
+    ":absl_hash_city",
+    ":absl_hash_low_level_hash",
+    ":absl_meta_type_traits",
+    ":absl_numeric_bits",
+    ":absl_numeric_int128",
+    ":absl_strings_strings",
+    ":absl_types_optional",
+    ":absl_types_variant",
+    ":absl_utility_utility",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_hash_low_level_hash") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc",
+    "src/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_endian",
+    ":absl_numeric_int128",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_append_truncated") {
+  sources =
+      [ "src/third_party/abseil-cpp/absl/log/internal/append_truncated.h" ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_strings_strings",
+    ":absl_types_span",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_check_impl") {
+  sources = [ "src/third_party/abseil-cpp/absl/log/internal/check_impl.h" ]
+  public_deps = [
+    ":absl_base_core_headers",
+    ":absl_log_internal_check_op",
+    ":absl_log_internal_conditions",
+    ":absl_log_internal_log_message",
+    ":absl_log_internal_strip",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_check_op") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/log/internal/check_op.cc",
+    "src/third_party/abseil-cpp/absl/log/internal/check_op.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_log_internal_nullguard",
+    ":absl_log_internal_nullstream",
+    ":absl_log_internal_strip",
+    ":absl_strings_strings",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_conditions") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/log/internal/conditions.cc",
+    "src/third_party/abseil-cpp/absl/log/internal/conditions.h",
+  ]
+  public_deps = [
+    ":absl_base_base",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_log_internal_voidify",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_config") {
+  sources = [ "src/third_party/abseil-cpp/absl/log/internal/config.h" ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_flags") {
+  sources = [ "src/third_party/abseil-cpp/absl/log/internal/flags.h" ]
+  public_deps = [ ":absl_flags_flag" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_format") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/log/internal/log_format.cc",
+    "src/third_party/abseil-cpp/absl/log/internal/log_format.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_log_severity",
+    ":absl_log_internal_append_truncated",
+    ":absl_log_internal_config",
+    ":absl_log_internal_globals",
+    ":absl_strings_str_format",
+    ":absl_strings_strings",
+    ":absl_time_time",
+    ":absl_types_span",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_globals") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/log/internal/globals.cc",
+    "src/third_party/abseil-cpp/absl/log/internal/globals.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_log_severity",
+    ":absl_base_raw_logging_internal",
+    ":absl_strings_strings",
+    ":absl_time_time",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_log_impl") {
+  sources = [ "src/third_party/abseil-cpp/absl/log/internal/log_impl.h" ]
+  public_deps = [
+    ":absl_log_internal_conditions",
+    ":absl_log_internal_log_message",
+    ":absl_log_internal_strip",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_log_message") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/log/internal/log_message.cc",
+    "src/third_party/abseil-cpp/absl/log/internal/log_message.h",
+  ]
+  public_deps = [
+    ":absl_base_base",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_errno_saver",
+    ":absl_base_log_severity",
+    ":absl_base_raw_logging_internal",
+    ":absl_base_strerror",
+    ":absl_container_inlined_vector",
+    ":absl_debugging_examine_stack",
+    ":absl_log_globals",
+    ":absl_log_internal_append_truncated",
+    ":absl_log_internal_format",
+    ":absl_log_internal_globals",
+    ":absl_log_internal_log_sink_set",
+    ":absl_log_internal_nullguard",
+    ":absl_log_internal_proto",
+    ":absl_log_log_entry",
+    ":absl_log_log_sink",
+    ":absl_log_log_sink_registry",
+    ":absl_memory_memory",
+    ":absl_strings_strings",
+    ":absl_time_time",
+    ":absl_types_span",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_log_sink_set") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/log/internal/log_sink_set.cc",
+    "src/third_party/abseil-cpp/absl/log/internal/log_sink_set.h",
+  ]
+  public_deps = [
+    ":absl_base_base",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_log_severity",
+    ":absl_base_raw_logging_internal",
+    ":absl_cleanup_cleanup",
+    ":absl_log_globals",
+    ":absl_log_internal_config",
+    ":absl_log_internal_globals",
+    ":absl_log_log_entry",
+    ":absl_log_log_sink",
+    ":absl_strings_strings",
+    ":absl_synchronization_synchronization",
+    ":absl_types_span",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_nullguard") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/log/internal/nullguard.cc",
+    "src/third_party/abseil-cpp/absl/log/internal/nullguard.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_nullstream") {
+  sources = [ "src/third_party/abseil-cpp/absl/log/internal/nullstream.h" ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_log_severity",
+    ":absl_strings_strings",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_proto") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/log/internal/proto.cc",
+    "src/third_party/abseil-cpp/absl/log/internal/proto.h",
+  ]
+  public_deps = [
+    ":absl_base_base",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_strings_strings",
+    ":absl_types_span",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_strip") {
+  sources = [ "src/third_party/abseil-cpp/absl/log/internal/strip.h" ]
+  public_deps = [
+    ":absl_base_log_severity",
+    ":absl_log_internal_log_message",
+    ":absl_log_internal_nullstream",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_structured") {
+  sources = [ "src/third_party/abseil-cpp/absl/log/internal/structured.h" ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_log_internal_log_message",
+    ":absl_strings_strings",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_internal_voidify") {
+  sources = [ "src/third_party/abseil-cpp/absl/log/internal/voidify.h" ]
+  public_deps = [ ":absl_base_config" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_absl_check") {
+  sources = [ "src/third_party/abseil-cpp/absl/log/absl_check.h" ]
+  public_deps = [ ":absl_log_internal_check_impl" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_absl_log") {
+  sources = [ "src/third_party/abseil-cpp/absl/log/absl_log.h" ]
+  public_deps = [ ":absl_log_internal_log_impl" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_check") {
+  sources = [ "src/third_party/abseil-cpp/absl/log/check.h" ]
+  public_deps = [
+    ":absl_log_internal_check_impl",
+    ":absl_log_internal_check_op",
+    ":absl_log_internal_conditions",
+    ":absl_log_internal_log_message",
+    ":absl_log_internal_strip",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_die_if_null") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/log/die_if_null.cc",
+    "src/third_party/abseil-cpp/absl/log/die_if_null.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_log_log",
+    ":absl_strings_strings",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_flags") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/log/flags.cc",
+    "src/third_party/abseil-cpp/absl/log/flags.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_log_severity",
+    ":absl_flags_flag",
+    ":absl_flags_marshalling",
+    ":absl_log_globals",
+    ":absl_log_internal_config",
+    ":absl_log_internal_flags",
+    ":absl_strings_strings",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_globals") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/log/globals.cc",
+    "src/third_party/abseil-cpp/absl/log/globals.h",
+  ]
+  public_deps = [
+    ":absl_base_atomic_hook",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_log_severity",
+    ":absl_hash_hash",
+    ":absl_strings_strings",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_initialize") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/log/initialize.cc",
+    "src/third_party/abseil-cpp/absl/log/initialize.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_log_globals",
+    ":absl_log_internal_globals",
+    ":absl_time_time",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_log") {
+  sources = [ "src/third_party/abseil-cpp/absl/log/log.h" ]
+  public_deps = [ ":absl_log_internal_log_impl" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_log_entry") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/log/log_entry.cc",
+    "src/third_party/abseil-cpp/absl/log/log_entry.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_log_severity",
+    ":absl_log_internal_config",
+    ":absl_strings_strings",
+    ":absl_time_time",
+    ":absl_types_span",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_log_sink") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/log/log_sink.cc",
+    "src/third_party/abseil-cpp/absl/log/log_sink.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_log_log_entry",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_log_sink_registry") {
+  sources = [ "src/third_party/abseil-cpp/absl/log/log_sink_registry.h" ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_log_internal_log_sink_set",
+    ":absl_log_log_sink",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_log_streamer") {
+  sources = [ "src/third_party/abseil-cpp/absl/log/log_streamer.h" ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_log_severity",
+    ":absl_log_absl_log",
+    ":absl_strings_internal",
+    ":absl_strings_strings",
+    ":absl_types_optional",
+    ":absl_utility_utility",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_log_structured") {
+  sources = [ "src/third_party/abseil-cpp/absl/log/structured.h" ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_log_internal_structured",
+    ":absl_strings_strings",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_memory_memory") {
+  sources = [ "src/third_party/abseil-cpp/absl/memory/memory.h" ]
+  public_deps = [
+    ":absl_base_core_headers",
+    ":absl_meta_type_traits",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_meta_type_traits") {
+  sources = [ "src/third_party/abseil-cpp/absl/meta/type_traits.h" ]
+  public_deps = [ ":absl_base_config" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_numeric_bits") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/numeric/bits.h",
+    "src/third_party/abseil-cpp/absl/numeric/internal/bits.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_numeric_int128") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/numeric/int128.cc",
+    "src/third_party/abseil-cpp/absl/numeric/int128.h",
+    "src/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc",
+    "src/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_numeric_bits",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_numeric_representation") {
+  sources =
+      [ "src/third_party/abseil-cpp/absl/numeric/internal/representation.h" ]
+  public_deps = [ ":absl_base_config" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_profiling_exponential_biased") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc",
+    "src/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_profiling_periodic_sampler") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/profiling/internal/periodic_sampler.cc",
+    "src/third_party/abseil-cpp/absl/profiling/internal/periodic_sampler.h",
+  ]
+  public_deps = [
+    ":absl_base_core_headers",
+    ":absl_profiling_exponential_biased",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_profiling_sample_recorder") {
+  sources =
+      [ "src/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h" ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_synchronization_synchronization",
+    ":absl_time_time",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_distribution_caller") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/random/internal/distribution_caller.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_fast_type_id",
+    ":absl_utility_utility",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_fast_uniform_bits") {
+  sources =
+      [ "src/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h" ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_meta_type_traits",
+    ":absl_random_internal_traits",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_fastmath") {
+  sources = [ "src/third_party/abseil-cpp/absl/random/internal/fastmath.h" ]
+  public_deps = [ ":absl_numeric_bits" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_generate_real") {
+  sources =
+      [ "src/third_party/abseil-cpp/absl/random/internal/generate_real.h" ]
+  public_deps = [
+    ":absl_meta_type_traits",
+    ":absl_numeric_bits",
+    ":absl_random_internal_fastmath",
+    ":absl_random_internal_traits",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_iostream_state_saver") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h",
+  ]
+  public_deps = [
+    ":absl_meta_type_traits",
+    ":absl_numeric_int128",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_mock_helpers") {
+  sources = [ "src/third_party/abseil-cpp/absl/random/internal/mock_helpers.h" ]
+  public_deps = [
+    ":absl_base_fast_type_id",
+    ":absl_types_optional",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_nanobenchmark") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc",
+    "src/third_party/abseil-cpp/absl/random/internal/nanobenchmark.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_raw_logging_internal",
+    ":absl_random_internal_platform",
+    ":absl_random_internal_randen_engine",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_nonsecure_base") {
+  sources =
+      [ "src/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h" ]
+  public_deps = [
+    ":absl_base_core_headers",
+    ":absl_container_inlined_vector",
+    ":absl_meta_type_traits",
+    ":absl_random_internal_pool_urbg",
+    ":absl_random_internal_salted_seed_seq",
+    ":absl_random_internal_seed_material",
+    ":absl_types_span",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_pcg_engine") {
+  sources = [ "src/third_party/abseil-cpp/absl/random/internal/pcg_engine.h" ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_meta_type_traits",
+    ":absl_numeric_bits",
+    ":absl_numeric_int128",
+    ":absl_random_internal_fastmath",
+    ":absl_random_internal_iostream_state_saver",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_platform") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/random/internal/platform.h",
+    "src/third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc",
+    "src/third_party/abseil-cpp/absl/random/internal/randen_traits.h",
+  ]
+  public_deps = [ ":absl_base_config" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_pool_urbg") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc",
+    "src/third_party/abseil-cpp/absl/random/internal/pool_urbg.h",
+  ]
+  public_deps = [
+    ":absl_base_base",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_endian",
+    ":absl_base_raw_logging_internal",
+    ":absl_random_internal_randen",
+    ":absl_random_internal_seed_material",
+    ":absl_random_internal_traits",
+    ":absl_random_seed_gen_exception",
+    ":absl_types_span",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_randen") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/random/internal/randen.cc",
+    "src/third_party/abseil-cpp/absl/random/internal/randen.h",
+  ]
+  public_deps = [
+    ":absl_base_raw_logging_internal",
+    ":absl_random_internal_platform",
+    ":absl_random_internal_randen_hwaes",
+    ":absl_random_internal_randen_slow",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_randen_engine") {
+  sources =
+      [ "src/third_party/abseil-cpp/absl/random/internal/randen_engine.h" ]
+  public_deps = [
+    ":absl_base_endian",
+    ":absl_meta_type_traits",
+    ":absl_random_internal_iostream_state_saver",
+    ":absl_random_internal_randen",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_randen_hwaes") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/random/internal/randen_detect.cc",
+    "src/third_party/abseil-cpp/absl/random/internal/randen_detect.h",
+    "src/third_party/abseil-cpp/absl/random/internal/randen_hwaes.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_random_internal_platform",
+    ":absl_random_internal_randen_hwaes_impl",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_randen_hwaes_impl") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc",
+    "src/third_party/abseil-cpp/absl/random/internal/randen_hwaes.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_numeric_int128",
+    ":absl_random_internal_platform",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_randen_slow") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/random/internal/randen_slow.cc",
+    "src/third_party/abseil-cpp/absl/random/internal/randen_slow.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_endian",
+    ":absl_numeric_int128",
+    ":absl_random_internal_platform",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_salted_seed_seq") {
+  sources =
+      [ "src/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h" ]
+  public_deps = [
+    ":absl_container_inlined_vector",
+    ":absl_meta_type_traits",
+    ":absl_random_internal_seed_material",
+    ":absl_types_optional",
+    ":absl_types_span",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_seed_material") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/random/internal/seed_material.cc",
+    "src/third_party/abseil-cpp/absl/random/internal/seed_material.h",
+  ]
+  public_deps = [
+    ":absl_base_core_headers",
+    ":absl_base_dynamic_annotations",
+    ":absl_base_raw_logging_internal",
+    ":absl_random_internal_fast_uniform_bits",
+    ":absl_strings_strings",
+    ":absl_types_optional",
+    ":absl_types_span",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_traits") {
+  sources = [ "src/third_party/abseil-cpp/absl/random/internal/traits.h" ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_numeric_bits",
+    ":absl_numeric_int128",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_uniform_helper") {
+  sources =
+      [ "src/third_party/abseil-cpp/absl/random/internal/uniform_helper.h" ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_meta_type_traits",
+    ":absl_numeric_int128",
+    ":absl_random_internal_traits",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_internal_wide_multiply") {
+  sources =
+      [ "src/third_party/abseil-cpp/absl/random/internal/wide_multiply.h" ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_numeric_bits",
+    ":absl_numeric_int128",
+    ":absl_random_internal_traits",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_bit_gen_ref") {
+  sources = [ "src/third_party/abseil-cpp/absl/random/bit_gen_ref.h" ]
+  public_deps = [
+    ":absl_base_core_headers",
+    ":absl_base_fast_type_id",
+    ":absl_meta_type_traits",
+    ":absl_random_internal_distribution_caller",
+    ":absl_random_internal_fast_uniform_bits",
+    ":absl_random_random",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_distributions") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/random/bernoulli_distribution.h",
+    "src/third_party/abseil-cpp/absl/random/beta_distribution.h",
+    "src/third_party/abseil-cpp/absl/random/discrete_distribution.cc",
+    "src/third_party/abseil-cpp/absl/random/discrete_distribution.h",
+    "src/third_party/abseil-cpp/absl/random/distributions.h",
+    "src/third_party/abseil-cpp/absl/random/exponential_distribution.h",
+    "src/third_party/abseil-cpp/absl/random/gaussian_distribution.cc",
+    "src/third_party/abseil-cpp/absl/random/gaussian_distribution.h",
+    "src/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h",
+    "src/third_party/abseil-cpp/absl/random/poisson_distribution.h",
+    "src/third_party/abseil-cpp/absl/random/uniform_int_distribution.h",
+    "src/third_party/abseil-cpp/absl/random/uniform_real_distribution.h",
+    "src/third_party/abseil-cpp/absl/random/zipf_distribution.h",
+  ]
+  public_deps = [
+    ":absl_base_base_internal",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_meta_type_traits",
+    ":absl_numeric_bits",
+    ":absl_random_internal_distribution_caller",
+    ":absl_random_internal_fast_uniform_bits",
+    ":absl_random_internal_fastmath",
+    ":absl_random_internal_generate_real",
+    ":absl_random_internal_iostream_state_saver",
+    ":absl_random_internal_traits",
+    ":absl_random_internal_uniform_helper",
+    ":absl_random_internal_wide_multiply",
+    ":absl_strings_strings",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_random") {
+  sources = [ "src/third_party/abseil-cpp/absl/random/random.h" ]
+  public_deps = [
+    ":absl_random_distributions",
+    ":absl_random_internal_nonsecure_base",
+    ":absl_random_internal_pcg_engine",
+    ":absl_random_internal_pool_urbg",
+    ":absl_random_internal_randen_engine",
+    ":absl_random_seed_sequences",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_seed_gen_exception") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/random/seed_gen_exception.cc",
+    "src/third_party/abseil-cpp/absl/random/seed_gen_exception.h",
+  ]
+  public_deps = [ ":absl_base_config" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_random_seed_sequences") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/random/seed_sequences.cc",
+    "src/third_party/abseil-cpp/absl/random/seed_sequences.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_random_internal_pool_urbg",
+    ":absl_random_internal_salted_seed_seq",
+    ":absl_random_internal_seed_material",
+    ":absl_random_seed_gen_exception",
+    ":absl_types_span",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_status_status") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/status/internal/status_internal.h",
+    "src/third_party/abseil-cpp/absl/status/status.cc",
+    "src/third_party/abseil-cpp/absl/status/status.h",
+    "src/third_party/abseil-cpp/absl/status/status_payload_printer.cc",
+    "src/third_party/abseil-cpp/absl/status/status_payload_printer.h",
+  ]
+  public_deps = [
+    ":absl_base_atomic_hook",
+    ":absl_base_core_headers",
+    ":absl_base_raw_logging_internal",
+    ":absl_base_strerror",
+    ":absl_container_inlined_vector",
+    ":absl_debugging_stacktrace",
+    ":absl_debugging_symbolize",
+    ":absl_functional_function_ref",
+    ":absl_strings_cord",
+    ":absl_strings_str_format",
+    ":absl_strings_strings",
+    ":absl_types_optional",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_status_statusor") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/status/internal/statusor_internal.h",
+    "src/third_party/abseil-cpp/absl/status/statusor.cc",
+    "src/third_party/abseil-cpp/absl/status/statusor.h",
+  ]
+  public_deps = [
+    ":absl_base_base",
+    ":absl_base_core_headers",
+    ":absl_base_raw_logging_internal",
+    ":absl_meta_type_traits",
+    ":absl_status_status",
+    ":absl_strings_strings",
+    ":absl_types_variant",
+    ":absl_utility_utility",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_cord") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/strings/cord.cc",
+    "src/third_party/abseil-cpp/absl/strings/cord.h",
+    "src/third_party/abseil-cpp/absl/strings/cord_analysis.cc",
+    "src/third_party/abseil-cpp/absl/strings/cord_analysis.h",
+    "src/third_party/abseil-cpp/absl/strings/cord_buffer.cc",
+    "src/third_party/abseil-cpp/absl/strings/cord_buffer.h",
+  ]
+  public_deps = [
+    ":absl_base_base",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_endian",
+    ":absl_base_raw_logging_internal",
+    ":absl_container_fixed_array",
+    ":absl_container_inlined_vector",
+    ":absl_crc_crc_cord_state",
+    ":absl_functional_function_ref",
+    ":absl_meta_type_traits",
+    ":absl_numeric_bits",
+    ":absl_strings_cord_internal",
+    ":absl_strings_cordz_functions",
+    ":absl_strings_cordz_info",
+    ":absl_strings_cordz_statistics",
+    ":absl_strings_cordz_update_scope",
+    ":absl_strings_cordz_update_tracker",
+    ":absl_strings_internal",
+    ":absl_strings_str_format",
+    ":absl_strings_strings",
+    ":absl_types_optional",
+    ":absl_types_span",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_cord_internal") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/strings/internal/cord_data_edge.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/cord_internal.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h",
+  ]
+  public_deps = [
+    ":absl_base_base_internal",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_endian",
+    ":absl_base_raw_logging_internal",
+    ":absl_base_throw_delegate",
+    ":absl_container_compressed_tuple",
+    ":absl_container_container_memory",
+    ":absl_container_inlined_vector",
+    ":absl_container_layout",
+    ":absl_crc_crc_cord_state",
+    ":absl_functional_function_ref",
+    ":absl_meta_type_traits",
+    ":absl_strings_strings",
+    ":absl_types_span",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_cordz_functions") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_raw_logging_internal",
+    ":absl_profiling_exponential_biased",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_cordz_handle") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h",
+  ]
+  public_deps = [
+    ":absl_base_base",
+    ":absl_base_config",
+    ":absl_base_raw_logging_internal",
+    ":absl_synchronization_synchronization",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_cordz_info") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/cordz_info.h",
+  ]
+  public_deps = [
+    ":absl_base_base",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_raw_logging_internal",
+    ":absl_container_inlined_vector",
+    ":absl_debugging_stacktrace",
+    ":absl_strings_cord_internal",
+    ":absl_strings_cordz_functions",
+    ":absl_strings_cordz_handle",
+    ":absl_strings_cordz_statistics",
+    ":absl_strings_cordz_update_tracker",
+    ":absl_synchronization_synchronization",
+    ":absl_types_span",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_cordz_sample_token") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/strings/internal/cordz_sample_token.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/cordz_sample_token.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_strings_cordz_handle",
+    ":absl_strings_cordz_info",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_cordz_statistics") {
+  sources =
+      [ "src/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h" ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_strings_cordz_update_tracker",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_cordz_update_scope") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/strings/internal/cordz_update_scope.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_strings_cord_internal",
+    ":absl_strings_cordz_info",
+    ":absl_strings_cordz_update_tracker",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_cordz_update_tracker") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h",
+  ]
+  public_deps = [ ":absl_base_config" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_internal") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/strings/internal/char_map.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/escaping.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/escaping.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/ostringstream.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/utf8.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/utf8.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_endian",
+    ":absl_base_raw_logging_internal",
+    ":absl_meta_type_traits",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_str_format") {
+  sources = [ "src/third_party/abseil-cpp/absl/strings/str_format.h" ]
+  public_deps = [ ":absl_strings_str_format_internal" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_str_format_internal") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/str_format/constexpr_parser.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/str_format/output.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_functional_function_ref",
+    ":absl_meta_type_traits",
+    ":absl_numeric_bits",
+    ":absl_numeric_int128",
+    ":absl_numeric_representation",
+    ":absl_strings_strings",
+    ":absl_types_optional",
+    ":absl_types_span",
+    ":absl_utility_utility",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_strings_strings") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/strings/ascii.cc",
+    "src/third_party/abseil-cpp/absl/strings/ascii.h",
+    "src/third_party/abseil-cpp/absl/strings/charconv.cc",
+    "src/third_party/abseil-cpp/absl/strings/charconv.h",
+    "src/third_party/abseil-cpp/absl/strings/escaping.cc",
+    "src/third_party/abseil-cpp/absl/strings/escaping.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/charconv_parse.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/has_absl_stringify.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/memutil.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/memutil.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/string_constant.h",
+    "src/third_party/abseil-cpp/absl/strings/internal/stringify_sink.cc",
+    "src/third_party/abseil-cpp/absl/strings/internal/stringify_sink.h",
+    "src/third_party/abseil-cpp/absl/strings/match.cc",
+    "src/third_party/abseil-cpp/absl/strings/match.h",
+    "src/third_party/abseil-cpp/absl/strings/numbers.cc",
+    "src/third_party/abseil-cpp/absl/strings/numbers.h",
+    "src/third_party/abseil-cpp/absl/strings/str_cat.cc",
+    "src/third_party/abseil-cpp/absl/strings/str_cat.h",
+    "src/third_party/abseil-cpp/absl/strings/str_join.h",
+    "src/third_party/abseil-cpp/absl/strings/str_replace.cc",
+    "src/third_party/abseil-cpp/absl/strings/str_replace.h",
+    "src/third_party/abseil-cpp/absl/strings/str_split.cc",
+    "src/third_party/abseil-cpp/absl/strings/str_split.h",
+    "src/third_party/abseil-cpp/absl/strings/string_view.cc",
+    "src/third_party/abseil-cpp/absl/strings/string_view.h",
+    "src/third_party/abseil-cpp/absl/strings/strip.h",
+    "src/third_party/abseil-cpp/absl/strings/substitute.cc",
+    "src/third_party/abseil-cpp/absl/strings/substitute.h",
+  ]
+  public_deps = [
+    ":absl_base_base",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_endian",
+    ":absl_base_raw_logging_internal",
+    ":absl_base_throw_delegate",
+    ":absl_memory_memory",
+    ":absl_meta_type_traits",
+    ":absl_numeric_bits",
+    ":absl_numeric_int128",
+    ":absl_strings_internal",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_synchronization_graphcycles_internal") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc",
+    "src/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h",
+  ]
+  public_deps = [
+    ":absl_base_base",
+    ":absl_base_base_internal",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_malloc_internal",
+    ":absl_base_raw_logging_internal",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_synchronization_kernel_timeout_internal") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h",
+  ]
+  public_deps = [
+    ":absl_base_core_headers",
+    ":absl_base_raw_logging_internal",
+    ":absl_time_time",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_synchronization_synchronization") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/synchronization/barrier.cc",
+    "src/third_party/abseil-cpp/absl/synchronization/barrier.h",
+    "src/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc",
+    "src/third_party/abseil-cpp/absl/synchronization/blocking_counter.h",
+    "src/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc",
+    "src/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h",
+    "src/third_party/abseil-cpp/absl/synchronization/internal/futex.h",
+    "src/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc",
+    "src/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h",
+    "src/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc",
+    "src/third_party/abseil-cpp/absl/synchronization/internal/waiter.h",
+    "src/third_party/abseil-cpp/absl/synchronization/mutex.cc",
+    "src/third_party/abseil-cpp/absl/synchronization/mutex.h",
+    "src/third_party/abseil-cpp/absl/synchronization/notification.cc",
+    "src/third_party/abseil-cpp/absl/synchronization/notification.h",
+  ]
+  public_deps = [
+    ":absl_base_atomic_hook",
+    ":absl_base_base",
+    ":absl_base_base_internal",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_dynamic_annotations",
+    ":absl_base_malloc_internal",
+    ":absl_base_raw_logging_internal",
+    ":absl_debugging_stacktrace",
+    ":absl_debugging_symbolize",
+    ":absl_synchronization_graphcycles_internal",
+    ":absl_synchronization_kernel_timeout_internal",
+    ":absl_time_time",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_time_internal_cctz_civil_time") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h",
+    "src/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h",
+    "src/third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc",
+  ]
+  public_deps = [ ":absl_base_config" ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_time_internal_cctz_time_zone") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h",
+    "src/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h",
+    "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc",
+    "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h",
+    "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc",
+    "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc",
+    "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h",
+    "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc",
+    "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h",
+    "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc",
+    "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h",
+    "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc",
+    "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h",
+    "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc",
+    "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc",
+    "src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h",
+    "src/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h",
+    "src/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_time_internal_cctz_civil_time",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_time_time") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/time/civil_time.cc",
+    "src/third_party/abseil-cpp/absl/time/civil_time.h",
+    "src/third_party/abseil-cpp/absl/time/clock.cc",
+    "src/third_party/abseil-cpp/absl/time/clock.h",
+    "src/third_party/abseil-cpp/absl/time/duration.cc",
+    "src/third_party/abseil-cpp/absl/time/format.cc",
+    "src/third_party/abseil-cpp/absl/time/internal/get_current_time_chrono.inc",
+    "src/third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc",
+    "src/third_party/abseil-cpp/absl/time/time.cc",
+    "src/third_party/abseil-cpp/absl/time/time.h",
+  ]
+  public_deps = [
+    ":absl_base_base",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_raw_logging_internal",
+    ":absl_numeric_int128",
+    ":absl_strings_strings",
+    ":absl_time_internal_cctz_civil_time",
+    ":absl_time_internal_cctz_time_zone",
+    ":absl_types_optional",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_types_any") {
+  sources = [ "src/third_party/abseil-cpp/absl/types/any.h" ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_base_fast_type_id",
+    ":absl_meta_type_traits",
+    ":absl_types_bad_any_cast",
+    ":absl_utility_utility",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_types_bad_any_cast") {
+  sources = [ "src/third_party/abseil-cpp/absl/types/bad_any_cast.h" ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_types_bad_any_cast_impl",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_types_bad_any_cast_impl") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/types/bad_any_cast.cc",
+    "src/third_party/abseil-cpp/absl/types/bad_any_cast.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_raw_logging_internal",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_types_bad_optional_access") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/types/bad_optional_access.cc",
+    "src/third_party/abseil-cpp/absl/types/bad_optional_access.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_raw_logging_internal",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_types_bad_variant_access") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/types/bad_variant_access.cc",
+    "src/third_party/abseil-cpp/absl/types/bad_variant_access.h",
+  ]
+  public_deps = [
+    ":absl_base_config",
+    ":absl_base_raw_logging_internal",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_types_compare") {
+  sources = [ "src/third_party/abseil-cpp/absl/types/compare.h" ]
+  public_deps = [
+    ":absl_base_core_headers",
+    ":absl_meta_type_traits",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_types_optional") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/types/internal/optional.h",
+    "src/third_party/abseil-cpp/absl/types/optional.h",
+  ]
+  public_deps = [
+    ":absl_base_base_internal",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_memory_memory",
+    ":absl_meta_type_traits",
+    ":absl_types_bad_optional_access",
+    ":absl_utility_utility",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_types_span") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/types/internal/span.h",
+    "src/third_party/abseil-cpp/absl/types/span.h",
+  ]
+  public_deps = [
+    ":absl_algorithm_algorithm",
+    ":absl_base_core_headers",
+    ":absl_base_throw_delegate",
+    ":absl_meta_type_traits",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_types_variant") {
+  sources = [
+    "src/third_party/abseil-cpp/absl/types/internal/variant.h",
+    "src/third_party/abseil-cpp/absl/types/variant.h",
+  ]
+  public_deps = [
+    ":absl_base_base_internal",
+    ":absl_base_config",
+    ":absl_base_core_headers",
+    ":absl_meta_type_traits",
+    ":absl_types_bad_variant_access",
+    ":absl_utility_utility",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("absl_utility_utility") {
+  sources = [ "src/third_party/abseil-cpp/absl/utility/utility.h" ]
+  public_deps = [
+    ":absl_base_base_internal",
+    ":absl_base_config",
+    ":absl_meta_type_traits",
+  ]
+  public_configs = [ "..:grpc_absl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+static_library("upb") {
+  sources = [
+    "src/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c",
+    "src/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h",
+    "src/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h",
+    "src/third_party/upb/third_party/utf8_range/naive.c",
+    "src/third_party/upb/third_party/utf8_range/range2-neon.c",
+    "src/third_party/upb/third_party/utf8_range/range2-sse.c",
+    "src/third_party/upb/third_party/utf8_range/utf8_range.h",
+    "src/third_party/upb/upb/arena.c",
+    "src/third_party/upb/upb/arena.h",
+    "src/third_party/upb/upb/array.c",
+    "src/third_party/upb/upb/array.h",
+    "src/third_party/upb/upb/collections.h",
+    "src/third_party/upb/upb/decode.c",
+    "src/third_party/upb/upb/decode.h",
+    "src/third_party/upb/upb/decode_fast.c",
+    "src/third_party/upb/upb/decode_fast.h",
+    "src/third_party/upb/upb/def.c",
+    "src/third_party/upb/upb/def.h",
+    "src/third_party/upb/upb/def.hpp",
+    "src/third_party/upb/upb/encode.c",
+    "src/third_party/upb/upb/encode.h",
+    "src/third_party/upb/upb/extension_registry.c",
+    "src/third_party/upb/upb/extension_registry.h",
+    "src/third_party/upb/upb/internal/decode.h",
+    "src/third_party/upb/upb/internal/table.h",
+    "src/third_party/upb/upb/internal/upb.h",
+    "src/third_party/upb/upb/internal/vsnprintf_compat.h",
+    "src/third_party/upb/upb/json_decode.c",
+    "src/third_party/upb/upb/json_decode.h",
+    "src/third_party/upb/upb/json_encode.c",
+    "src/third_party/upb/upb/json_encode.h",
+    "src/third_party/upb/upb/map.c",
+    "src/third_party/upb/upb/map.h",
+    "src/third_party/upb/upb/message_value.h",
+    "src/third_party/upb/upb/mini_table.c",
+    "src/third_party/upb/upb/mini_table.h",
+    "src/third_party/upb/upb/mini_table.hpp",
+    "src/third_party/upb/upb/msg.c",
+    "src/third_party/upb/upb/msg.h",
+    "src/third_party/upb/upb/msg_internal.h",
+    "src/third_party/upb/upb/port_def.inc",
+    "src/third_party/upb/upb/port_undef.inc",
+    "src/third_party/upb/upb/reflection.c",
+    "src/third_party/upb/upb/reflection.h",
+    "src/third_party/upb/upb/reflection.hpp",
+    "src/third_party/upb/upb/status.c",
+    "src/third_party/upb/upb/status.h",
+    "src/third_party/upb/upb/table.c",
+    "src/third_party/upb/upb/table_internal.h",
+    "src/third_party/upb/upb/text_encode.c",
+    "src/third_party/upb/upb/text_encode.h",
+    "src/third_party/upb/upb/upb.c",
+    "src/third_party/upb/upb/upb.h",
+    "src/third_party/upb/upb/upb.hpp",
+  ]
+  public_deps = []
+  public_configs = [ "..:grpc_upb_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+static_library("re2") {
+  sources = [
+    "src/third_party/re2/re2/bitmap256.h",
+    "src/third_party/re2/re2/bitstate.cc",
+    "src/third_party/re2/re2/compile.cc",
+    "src/third_party/re2/re2/dfa.cc",
+    "src/third_party/re2/re2/filtered_re2.cc",
+    "src/third_party/re2/re2/filtered_re2.h",
+    "src/third_party/re2/re2/mimics_pcre.cc",
+    "src/third_party/re2/re2/nfa.cc",
+    "src/third_party/re2/re2/onepass.cc",
+    "src/third_party/re2/re2/parse.cc",
+    "src/third_party/re2/re2/perl_groups.cc",
+    "src/third_party/re2/re2/pod_array.h",
+    "src/third_party/re2/re2/prefilter.cc",
+    "src/third_party/re2/re2/prefilter.h",
+    "src/third_party/re2/re2/prefilter_tree.cc",
+    "src/third_party/re2/re2/prefilter_tree.h",
+    "src/third_party/re2/re2/prog.cc",
+    "src/third_party/re2/re2/prog.h",
+    "src/third_party/re2/re2/re2.cc",
+    "src/third_party/re2/re2/re2.h",
+    "src/third_party/re2/re2/regexp.cc",
+    "src/third_party/re2/re2/regexp.h",
+    "src/third_party/re2/re2/set.cc",
+    "src/third_party/re2/re2/set.h",
+    "src/third_party/re2/re2/simplify.cc",
+    "src/third_party/re2/re2/sparse_array.h",
+    "src/third_party/re2/re2/sparse_set.h",
+    "src/third_party/re2/re2/stringpiece.cc",
+    "src/third_party/re2/re2/stringpiece.h",
+    "src/third_party/re2/re2/tostring.cc",
+    "src/third_party/re2/re2/unicode_casefold.cc",
+    "src/third_party/re2/re2/unicode_casefold.h",
+    "src/third_party/re2/re2/unicode_groups.cc",
+    "src/third_party/re2/re2/unicode_groups.h",
+    "src/third_party/re2/re2/walker-inl.h",
+    "src/third_party/re2/util/benchmark.h",
+    "src/third_party/re2/util/flags.h",
+    "src/third_party/re2/util/logging.h",
+    "src/third_party/re2/util/malloc_counter.h",
+    "src/third_party/re2/util/mix.h",
+    "src/third_party/re2/util/mutex.h",
+    "src/third_party/re2/util/pcre.cc",
+    "src/third_party/re2/util/pcre.h",
+    "src/third_party/re2/util/rune.cc",
+    "src/third_party/re2/util/strutil.cc",
+    "src/third_party/re2/util/strutil.h",
+    "src/third_party/re2/util/test.h",
+    "src/third_party/re2/util/utf.h",
+    "src/third_party/re2/util/util.h",
+  ]
+  public_deps = []
+  public_configs = [ "..:grpc_re2_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+static_library("boringssl") {
+  sources = [
+    "src/third_party/boringssl-with-bazel/err_data.c",
+    "src/third_party/boringssl-with-bazel/linux-x86_64/crypto/chacha/chacha-x86_64.S",
+    "src/third_party/boringssl-with-bazel/linux-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S",
+    "src/third_party/boringssl-with-bazel/linux-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S",
+    "src/third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S",
+    "src/third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/aesni-x86_64.S",
+    "src/third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S",
+    "src/third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/ghash-x86_64.S",
+    "src/third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/md5-x86_64.S",
+    "src/third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S",
+    "src/third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S",
+    "src/third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/rdrand-x86_64.S",
+    "src/third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/rsaz-avx2.S",
+    "src/third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/sha1-x86_64.S",
+    "src/third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/sha256-x86_64.S",
+    "src/third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/sha512-x86_64.S",
+    "src/third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/vpaes-x86_64.S",
+    "src/third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/x86_64-mont.S",
+    "src/third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/x86_64-mont5.S",
+    "src/third_party/boringssl-with-bazel/linux-x86_64/crypto/test/trampoline-x86_64.S",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/charmap.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/base64/base64.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/bio/bio.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/bio/connect.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/bio/fd.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/bio/file.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/bio/hexdump.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/bio/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/bio/pair.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/bio/printf.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/bio/socket.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/bn_extra/convert.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/buf/buf.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/bytestring/unicode.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesccm.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesctrhmac.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/cmac/cmac.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/conf/conf.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/conf/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-fuchsia.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-linux.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-win.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/cpu-arm.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/cpu-intel.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/cpu-ppc64le.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/crypto.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_derive.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/engine/engine.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/err/err.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/err/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/digestsign.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/evp.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/pbkdf.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/print.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/sign.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/ex_data.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/add.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/x86_64-gcc.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/jacobi.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_des.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/des.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64-table.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1-altivec.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/hkdf/hkdf.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/hrss/asm/poly_rq_mul.S",
+    "src/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/mem.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/obj/obj.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/obj/obj_xref.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/poly1305/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/pool/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/pool/pool.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/rand_extra/forkunsafe.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/rand_extra/fuchsia.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/rc4/rc4.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/refcount_c11.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/refcount_lock.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_print.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/stack/stack.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/thread.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/thread_none.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/thread_win.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_info.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akeya.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bcons.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_extku.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_int.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ocsp.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcia.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcons.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pmaps.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/aead.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/aes.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/asn1.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/asn1_mac.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/base.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/base64.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/bio.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/blake2.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/blowfish.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/bn.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/buf.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/buffer.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/cast.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/chacha.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/cipher.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/cmac.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/conf.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/cpu.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/crypto.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/curve25519.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/des.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/dh.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/digest.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/dsa.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/dtls1.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/e_os2.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/ec.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/ecdh.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/engine.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/err.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/evp.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/evp_errors.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/hmac.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/hpke.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/hrss.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/is_boringssl.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/lhash.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/md4.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/md5.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/mem.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/nid.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/obj.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/obj_mac.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/objects.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/opensslv.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/ossl_typ.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/pem.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/pkcs12.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/poly1305.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/pool.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/rand.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/rc4.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/ripemd.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/rsa.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/safestack.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/sha.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/siphash.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/span.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/srtp.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/ssl.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/stack.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/thread.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/tls1.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/type_check.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/x509.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h",
+    "src/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/d1_both.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/extensions.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/handoff.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/handshake.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/internal.h",
+    "src/third_party/boringssl-with-bazel/src/ssl/s3_both.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/tls_method.cc",
+    "src/third_party/boringssl-with-bazel/src/ssl/tls_record.cc",
+    "src/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h",
+    "src/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h",
+    "src/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h",
+    "src/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h",
+  ]
+  public_deps = []
+  public_configs = [ "..:grpc_boringssl_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("address_sorting") {
+  sources = [
+    "src/third_party/address_sorting/address_sorting.c",
+    "src/third_party/address_sorting/address_sorting_internal.h",
+    "src/third_party/address_sorting/address_sorting_posix.c",
+    "src/third_party/address_sorting/address_sorting_windows.c",
+    "src/third_party/address_sorting/include/address_sorting/address_sorting.h",
+  ]
+  public_deps = []
+  public_configs = [ "..:grpc_internal_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("gpr") {
+  sources = [
+    "src/src/core/lib/event_engine/thread_local.cc",
+    "src/src/core/lib/event_engine/thread_local.h",
+    "src/src/core/lib/gpr/alloc.cc",
+    "src/src/core/lib/gpr/alloc.h",
+    "src/src/core/lib/gpr/atm.cc",
+    "src/src/core/lib/gpr/cpu_iphone.cc",
+    "src/src/core/lib/gpr/cpu_linux.cc",
+    "src/src/core/lib/gpr/cpu_posix.cc",
+    "src/src/core/lib/gpr/cpu_windows.cc",
+    "src/src/core/lib/gpr/log.cc",
+    "src/src/core/lib/gpr/log_android.cc",
+    "src/src/core/lib/gpr/log_linux.cc",
+    "src/src/core/lib/gpr/log_posix.cc",
+    "src/src/core/lib/gpr/log_windows.cc",
+    "src/src/core/lib/gpr/string.cc",
+    "src/src/core/lib/gpr/string.h",
+    "src/src/core/lib/gpr/string_posix.cc",
+    "src/src/core/lib/gpr/string_util_windows.cc",
+    "src/src/core/lib/gpr/string_windows.cc",
+    "src/src/core/lib/gpr/sync.cc",
+    "src/src/core/lib/gpr/sync_abseil.cc",
+    "src/src/core/lib/gpr/sync_posix.cc",
+    "src/src/core/lib/gpr/sync_windows.cc",
+    "src/src/core/lib/gpr/time.cc",
+    "src/src/core/lib/gpr/time_posix.cc",
+    "src/src/core/lib/gpr/time_precise.cc",
+    "src/src/core/lib/gpr/time_precise.h",
+    "src/src/core/lib/gpr/time_windows.cc",
+    "src/src/core/lib/gpr/tmpfile.h",
+    "src/src/core/lib/gpr/tmpfile_msys.cc",
+    "src/src/core/lib/gpr/tmpfile_posix.cc",
+    "src/src/core/lib/gpr/tmpfile_windows.cc",
+    "src/src/core/lib/gpr/useful.h",
+    "src/src/core/lib/gpr/wrap_memcpy.cc",
+    "src/src/core/lib/gprpp/construct_destruct.h",
+    "src/src/core/lib/gprpp/crash.cc",
+    "src/src/core/lib/gprpp/crash.h",
+    "src/src/core/lib/gprpp/debug_location.h",
+    "src/src/core/lib/gprpp/env.h",
+    "src/src/core/lib/gprpp/env_linux.cc",
+    "src/src/core/lib/gprpp/env_posix.cc",
+    "src/src/core/lib/gprpp/env_windows.cc",
+    "src/src/core/lib/gprpp/examine_stack.cc",
+    "src/src/core/lib/gprpp/examine_stack.h",
+    "src/src/core/lib/gprpp/fork.cc",
+    "src/src/core/lib/gprpp/fork.h",
+    "src/src/core/lib/gprpp/global_config.h",
+    "src/src/core/lib/gprpp/global_config_custom.h",
+    "src/src/core/lib/gprpp/global_config_env.cc",
+    "src/src/core/lib/gprpp/global_config_env.h",
+    "src/src/core/lib/gprpp/global_config_generic.h",
+    "src/src/core/lib/gprpp/host_port.cc",
+    "src/src/core/lib/gprpp/host_port.h",
+    "src/src/core/lib/gprpp/memory.h",
+    "src/src/core/lib/gprpp/mpscq.cc",
+    "src/src/core/lib/gprpp/mpscq.h",
+    "src/src/core/lib/gprpp/no_destruct.h",
+    "src/src/core/lib/gprpp/stat.h",
+    "src/src/core/lib/gprpp/stat_posix.cc",
+    "src/src/core/lib/gprpp/stat_windows.cc",
+    "src/src/core/lib/gprpp/strerror.cc",
+    "src/src/core/lib/gprpp/strerror.h",
+    "src/src/core/lib/gprpp/sync.h",
+    "src/src/core/lib/gprpp/tchar.cc",
+    "src/src/core/lib/gprpp/tchar.h",
+    "src/src/core/lib/gprpp/thd.h",
+    "src/src/core/lib/gprpp/thd_posix.cc",
+    "src/src/core/lib/gprpp/thd_windows.cc",
+    "src/src/core/lib/gprpp/time_util.cc",
+    "src/src/core/lib/gprpp/time_util.h",
+  ]
+  public_deps = [
+    ":absl_base_base",
+    ":absl_base_core_headers",
+    ":absl_memory_memory",
+    ":absl_random_random",
+    ":absl_status_status",
+    ":absl_strings_cord",
+    ":absl_strings_str_format",
+    ":absl_strings_strings",
+    ":absl_synchronization_synchronization",
+    ":absl_time_time",
+    ":absl_types_optional",
+    ":absl_types_variant",
+  ]
+  public_configs = [ "..:grpc_internal_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("grpc") {
+  sources = [
+    "src/src/core/ext/filters/census/grpc_context.cc",
+    "src/src/core/ext/filters/channel_idle/channel_idle_filter.cc",
+    "src/src/core/ext/filters/channel_idle/channel_idle_filter.h",
+    "src/src/core/ext/filters/channel_idle/idle_filter_state.cc",
+    "src/src/core/ext/filters/channel_idle/idle_filter_state.h",
+    "src/src/core/ext/filters/client_channel/backend_metric.cc",
+    "src/src/core/ext/filters/client_channel/backend_metric.h",
+    "src/src/core/ext/filters/client_channel/backup_poller.cc",
+    "src/src/core/ext/filters/client_channel/backup_poller.h",
+    "src/src/core/ext/filters/client_channel/channel_connectivity.cc",
+    "src/src/core/ext/filters/client_channel/client_channel.cc",
+    "src/src/core/ext/filters/client_channel/client_channel.h",
+    "src/src/core/ext/filters/client_channel/client_channel_channelz.cc",
+    "src/src/core/ext/filters/client_channel/client_channel_channelz.h",
+    "src/src/core/ext/filters/client_channel/client_channel_factory.cc",
+    "src/src/core/ext/filters/client_channel/client_channel_factory.h",
+    "src/src/core/ext/filters/client_channel/client_channel_plugin.cc",
+    "src/src/core/ext/filters/client_channel/client_channel_service_config.cc",
+    "src/src/core/ext/filters/client_channel/client_channel_service_config.h",
+    "src/src/core/ext/filters/client_channel/config_selector.cc",
+    "src/src/core/ext/filters/client_channel/config_selector.h",
+    "src/src/core/ext/filters/client_channel/connector.h",
+    "src/src/core/ext/filters/client_channel/dynamic_filters.cc",
+    "src/src/core/ext/filters/client_channel/dynamic_filters.h",
+    "src/src/core/ext/filters/client_channel/global_subchannel_pool.cc",
+    "src/src/core/ext/filters/client_channel/global_subchannel_pool.h",
+    "src/src/core/ext/filters/client_channel/health/health_check_client.cc",
+    "src/src/core/ext/filters/client_channel/health/health_check_client.h",
+    "src/src/core/ext/filters/client_channel/http_proxy.cc",
+    "src/src/core/ext/filters/client_channel/http_proxy.h",
+    "src/src/core/ext/filters/client_channel/lb_call_state_internal.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/address_filtering.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric_internal.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc",
+    "src/src/core/ext/filters/client_channel/local_subchannel_pool.cc",
+    "src/src/core/ext/filters/client_channel/local_subchannel_pool.h",
+    "src/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc",
+    "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc",
+    "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h",
+    "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc",
+    "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc",
+    "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc",
+    "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h",
+    "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc",
+    "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc",
+    "src/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc",
+    "src/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h",
+    "src/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc",
+    "src/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc",
+    "src/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h",
+    "src/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc",
+    "src/src/core/ext/filters/client_channel/resolver/polling_resolver.cc",
+    "src/src/core/ext/filters/client_channel/resolver/polling_resolver.h",
+    "src/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc",
+    "src/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc",
+    "src/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h",
+    "src/src/core/ext/filters/client_channel/retry_filter.cc",
+    "src/src/core/ext/filters/client_channel/retry_filter.h",
+    "src/src/core/ext/filters/client_channel/retry_service_config.cc",
+    "src/src/core/ext/filters/client_channel/retry_service_config.h",
+    "src/src/core/ext/filters/client_channel/retry_throttle.cc",
+    "src/src/core/ext/filters/client_channel/retry_throttle.h",
+    "src/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc",
+    "src/src/core/ext/filters/client_channel/subchannel.cc",
+    "src/src/core/ext/filters/client_channel/subchannel.h",
+    "src/src/core/ext/filters/client_channel/subchannel_interface_internal.h",
+    "src/src/core/ext/filters/client_channel/subchannel_pool_interface.cc",
+    "src/src/core/ext/filters/client_channel/subchannel_pool_interface.h",
+    "src/src/core/ext/filters/client_channel/subchannel_stream_client.cc",
+    "src/src/core/ext/filters/client_channel/subchannel_stream_client.h",
+    "src/src/core/ext/filters/deadline/deadline_filter.cc",
+    "src/src/core/ext/filters/deadline/deadline_filter.h",
+    "src/src/core/ext/filters/fault_injection/fault_injection_filter.cc",
+    "src/src/core/ext/filters/fault_injection/fault_injection_filter.h",
+    "src/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc",
+    "src/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h",
+    "src/src/core/ext/filters/http/client/http_client_filter.cc",
+    "src/src/core/ext/filters/http/client/http_client_filter.h",
+    "src/src/core/ext/filters/http/client_authority_filter.cc",
+    "src/src/core/ext/filters/http/client_authority_filter.h",
+    "src/src/core/ext/filters/http/http_filters_plugin.cc",
+    "src/src/core/ext/filters/http/message_compress/compression_filter.cc",
+    "src/src/core/ext/filters/http/message_compress/compression_filter.h",
+    "src/src/core/ext/filters/http/server/http_server_filter.cc",
+    "src/src/core/ext/filters/http/server/http_server_filter.h",
+    "src/src/core/ext/filters/message_size/message_size_filter.cc",
+    "src/src/core/ext/filters/message_size/message_size_filter.h",
+    "src/src/core/ext/filters/rbac/rbac_filter.cc",
+    "src/src/core/ext/filters/rbac/rbac_filter.h",
+    "src/src/core/ext/filters/rbac/rbac_service_config_parser.cc",
+    "src/src/core/ext/filters/rbac/rbac_service_config_parser.h",
+    "src/src/core/ext/filters/server_config_selector/server_config_selector.h",
+    "src/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc",
+    "src/src/core/ext/filters/server_config_selector/server_config_selector_filter.h",
+    "src/src/core/ext/filters/stateful_session/stateful_session_filter.cc",
+    "src/src/core/ext/filters/stateful_session/stateful_session_filter.h",
+    "src/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc",
+    "src/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h",
+    "src/src/core/ext/transport/chttp2/alpn/alpn.cc",
+    "src/src/core/ext/transport/chttp2/alpn/alpn.h",
+    "src/src/core/ext/transport/chttp2/client/chttp2_connector.cc",
+    "src/src/core/ext/transport/chttp2/client/chttp2_connector.h",
+    "src/src/core/ext/transport/chttp2/server/chttp2_server.cc",
+    "src/src/core/ext/transport/chttp2/server/chttp2_server.h",
+    "src/src/core/ext/transport/chttp2/transport/bin_decoder.cc",
+    "src/src/core/ext/transport/chttp2/transport/bin_decoder.h",
+    "src/src/core/ext/transport/chttp2/transport/bin_encoder.cc",
+    "src/src/core/ext/transport/chttp2/transport/bin_encoder.h",
+    "src/src/core/ext/transport/chttp2/transport/chttp2_transport.cc",
+    "src/src/core/ext/transport/chttp2/transport/chttp2_transport.h",
+    "src/src/core/ext/transport/chttp2/transport/context_list.cc",
+    "src/src/core/ext/transport/chttp2/transport/context_list.h",
+    "src/src/core/ext/transport/chttp2/transport/decode_huff.cc",
+    "src/src/core/ext/transport/chttp2/transport/decode_huff.h",
+    "src/src/core/ext/transport/chttp2/transport/flow_control.cc",
+    "src/src/core/ext/transport/chttp2/transport/flow_control.h",
+    "src/src/core/ext/transport/chttp2/transport/frame.h",
+    "src/src/core/ext/transport/chttp2/transport/frame_data.cc",
+    "src/src/core/ext/transport/chttp2/transport/frame_data.h",
+    "src/src/core/ext/transport/chttp2/transport/frame_goaway.cc",
+    "src/src/core/ext/transport/chttp2/transport/frame_goaway.h",
+    "src/src/core/ext/transport/chttp2/transport/frame_ping.cc",
+    "src/src/core/ext/transport/chttp2/transport/frame_ping.h",
+    "src/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc",
+    "src/src/core/ext/transport/chttp2/transport/frame_rst_stream.h",
+    "src/src/core/ext/transport/chttp2/transport/frame_settings.cc",
+    "src/src/core/ext/transport/chttp2/transport/frame_settings.h",
+    "src/src/core/ext/transport/chttp2/transport/frame_window_update.cc",
+    "src/src/core/ext/transport/chttp2/transport/frame_window_update.h",
+    "src/src/core/ext/transport/chttp2/transport/hpack_constants.h",
+    "src/src/core/ext/transport/chttp2/transport/hpack_encoder.cc",
+    "src/src/core/ext/transport/chttp2/transport/hpack_encoder.h",
+    "src/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc",
+    "src/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h",
+    "src/src/core/ext/transport/chttp2/transport/hpack_parser.cc",
+    "src/src/core/ext/transport/chttp2/transport/hpack_parser.h",
+    "src/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc",
+    "src/src/core/ext/transport/chttp2/transport/hpack_parser_table.h",
+    "src/src/core/ext/transport/chttp2/transport/http2_settings.cc",
+    "src/src/core/ext/transport/chttp2/transport/http2_settings.h",
+    "src/src/core/ext/transport/chttp2/transport/http_trace.cc",
+    "src/src/core/ext/transport/chttp2/transport/http_trace.h",
+    "src/src/core/ext/transport/chttp2/transport/huffsyms.cc",
+    "src/src/core/ext/transport/chttp2/transport/huffsyms.h",
+    "src/src/core/ext/transport/chttp2/transport/internal.h",
+    "src/src/core/ext/transport/chttp2/transport/parsing.cc",
+    "src/src/core/ext/transport/chttp2/transport/stream_lists.cc",
+    "src/src/core/ext/transport/chttp2/transport/stream_map.cc",
+    "src/src/core/ext/transport/chttp2/transport/stream_map.h",
+    "src/src/core/ext/transport/chttp2/transport/varint.cc",
+    "src/src/core/ext/transport/chttp2/transport/varint.h",
+    "src/src/core/ext/transport/chttp2/transport/writing.cc",
+    "src/src/core/ext/transport/inproc/inproc_plugin.cc",
+    "src/src/core/ext/transport/inproc/inproc_transport.cc",
+    "src/src/core/ext/transport/inproc/inproc_transport.h",
+    "src/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c",
+    "src/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h",
+    "src/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c",
+    "src/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h",
+    "src/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c",
+    "src/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h",
+    "src/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c",
+    "src/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h",
+    "src/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c",
+    "src/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h",
+    "src/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c",
+    "src/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h",
+    "src/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c",
+    "src/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h",
+    "src/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c",
+    "src/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h",
+    "src/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c",
+    "src/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h",
+    "src/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c",
+    "src/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h",
+    "src/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c",
+    "src/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h",
+    "src/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c",
+    "src/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h",
+    "src/src/core/ext/upb-generated/envoy/annotations/resource.upb.c",
+    "src/src/core/ext/upb-generated/envoy/annotations/resource.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h",
+    "src/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c",
+    "src/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h",
+    "src/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c",
+    "src/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h",
+    "src/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c",
+    "src/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h",
+    "src/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c",
+    "src/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h",
+    "src/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c",
+    "src/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h",
+    "src/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c",
+    "src/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h",
+    "src/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.c",
+    "src/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h",
+    "src/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c",
+    "src/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h",
+    "src/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.c",
+    "src/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h",
+    "src/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c",
+    "src/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h",
+    "src/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.c",
+    "src/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.h",
+    "src/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c",
+    "src/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h",
+    "src/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c",
+    "src/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h",
+    "src/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c",
+    "src/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h",
+    "src/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c",
+    "src/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h",
+    "src/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c",
+    "src/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h",
+    "src/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c",
+    "src/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h",
+    "src/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c",
+    "src/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h",
+    "src/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c",
+    "src/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h",
+    "src/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c",
+    "src/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h",
+    "src/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c",
+    "src/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h",
+    "src/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c",
+    "src/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/v3/http.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/v3/http.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/v3/range.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/v3/range.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h",
+    "src/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c",
+    "src/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h",
+    "src/src/core/ext/upb-generated/google/api/annotations.upb.c",
+    "src/src/core/ext/upb-generated/google/api/annotations.upb.h",
+    "src/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c",
+    "src/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h",
+    "src/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c",
+    "src/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h",
+    "src/src/core/ext/upb-generated/google/api/http.upb.c",
+    "src/src/core/ext/upb-generated/google/api/http.upb.h",
+    "src/src/core/ext/upb-generated/google/api/httpbody.upb.c",
+    "src/src/core/ext/upb-generated/google/api/httpbody.upb.h",
+    "src/src/core/ext/upb-generated/google/protobuf/any.upb.c",
+    "src/src/core/ext/upb-generated/google/protobuf/any.upb.h",
+    "src/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c",
+    "src/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h",
+    "src/src/core/ext/upb-generated/google/protobuf/duration.upb.c",
+    "src/src/core/ext/upb-generated/google/protobuf/duration.upb.h",
+    "src/src/core/ext/upb-generated/google/protobuf/empty.upb.c",
+    "src/src/core/ext/upb-generated/google/protobuf/empty.upb.h",
+    "src/src/core/ext/upb-generated/google/protobuf/struct.upb.c",
+    "src/src/core/ext/upb-generated/google/protobuf/struct.upb.h",
+    "src/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c",
+    "src/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h",
+    "src/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c",
+    "src/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h",
+    "src/src/core/ext/upb-generated/google/rpc/status.upb.c",
+    "src/src/core/ext/upb-generated/google/rpc/status.upb.h",
+    "src/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c",
+    "src/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h",
+    "src/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c",
+    "src/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h",
+    "src/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c",
+    "src/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h",
+    "src/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c",
+    "src/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h",
+    "src/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c",
+    "src/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h",
+    "src/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c",
+    "src/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h",
+    "src/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c",
+    "src/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h",
+    "src/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c",
+    "src/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h",
+    "src/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c",
+    "src/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h",
+    "src/src/core/ext/upb-generated/udpa/annotations/security.upb.c",
+    "src/src/core/ext/upb-generated/udpa/annotations/security.upb.h",
+    "src/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c",
+    "src/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h",
+    "src/src/core/ext/upb-generated/udpa/annotations/status.upb.c",
+    "src/src/core/ext/upb-generated/udpa/annotations/status.upb.h",
+    "src/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c",
+    "src/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h",
+    "src/src/core/ext/upb-generated/validate/validate.upb.c",
+    "src/src/core/ext/upb-generated/validate/validate.upb.h",
+    "src/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c",
+    "src/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h",
+    "src/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c",
+    "src/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h",
+    "src/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c",
+    "src/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h",
+    "src/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c",
+    "src/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h",
+    "src/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c",
+    "src/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h",
+    "src/src/core/ext/upb-generated/xds/core/v3/authority.upb.c",
+    "src/src/core/ext/upb-generated/xds/core/v3/authority.upb.h",
+    "src/src/core/ext/upb-generated/xds/core/v3/cidr.upb.c",
+    "src/src/core/ext/upb-generated/xds/core/v3/cidr.upb.h",
+    "src/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c",
+    "src/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h",
+    "src/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c",
+    "src/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h",
+    "src/src/core/ext/upb-generated/xds/core/v3/extension.upb.c",
+    "src/src/core/ext/upb-generated/xds/core/v3/extension.upb.h",
+    "src/src/core/ext/upb-generated/xds/core/v3/resource.upb.c",
+    "src/src/core/ext/upb-generated/xds/core/v3/resource.upb.h",
+    "src/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c",
+    "src/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h",
+    "src/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c",
+    "src/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h",
+    "src/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c",
+    "src/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h",
+    "src/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c",
+    "src/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h",
+    "src/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.c",
+    "src/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.h",
+    "src/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.c",
+    "src/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.h",
+    "src/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.c",
+    "src/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.h",
+    "src/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.c",
+    "src/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.h",
+    "src/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c",
+    "src/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h",
+    "src/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.c",
+    "src/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.h",
+    "src/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c",
+    "src/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h",
+    "src/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c",
+    "src/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h",
+    "src/src/core/ext/upb-generated/xds/type/v3/cel.upb.c",
+    "src/src/core/ext/upb-generated/xds/type/v3/cel.upb.h",
+    "src/src/core/ext/upb-generated/xds/type/v3/range.upb.c",
+    "src/src/core/ext/upb-generated/xds/type/v3/range.upb.h",
+    "src/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c",
+    "src/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h",
+    "src/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.h",
+    "src/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c",
+    "src/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h",
+    "src/src/core/ext/xds/certificate_provider_store.cc",
+    "src/src/core/ext/xds/certificate_provider_store.h",
+    "src/src/core/ext/xds/file_watcher_certificate_provider_factory.cc",
+    "src/src/core/ext/xds/file_watcher_certificate_provider_factory.h",
+    "src/src/core/ext/xds/upb_utils.h",
+    "src/src/core/ext/xds/xds_api.cc",
+    "src/src/core/ext/xds/xds_api.h",
+    "src/src/core/ext/xds/xds_bootstrap.cc",
+    "src/src/core/ext/xds/xds_bootstrap.h",
+    "src/src/core/ext/xds/xds_bootstrap_grpc.cc",
+    "src/src/core/ext/xds/xds_bootstrap_grpc.h",
+    "src/src/core/ext/xds/xds_certificate_provider.cc",
+    "src/src/core/ext/xds/xds_certificate_provider.h",
+    "src/src/core/ext/xds/xds_channel_args.h",
+    "src/src/core/ext/xds/xds_channel_stack_modifier.cc",
+    "src/src/core/ext/xds/xds_channel_stack_modifier.h",
+    "src/src/core/ext/xds/xds_client.cc",
+    "src/src/core/ext/xds/xds_client.h",
+    "src/src/core/ext/xds/xds_client_grpc.cc",
+    "src/src/core/ext/xds/xds_client_grpc.h",
+    "src/src/core/ext/xds/xds_client_stats.cc",
+    "src/src/core/ext/xds/xds_client_stats.h",
+    "src/src/core/ext/xds/xds_cluster.cc",
+    "src/src/core/ext/xds/xds_cluster.h",
+    "src/src/core/ext/xds/xds_cluster_specifier_plugin.cc",
+    "src/src/core/ext/xds/xds_cluster_specifier_plugin.h",
+    "src/src/core/ext/xds/xds_common_types.cc",
+    "src/src/core/ext/xds/xds_common_types.h",
+    "src/src/core/ext/xds/xds_endpoint.cc",
+    "src/src/core/ext/xds/xds_endpoint.h",
+    "src/src/core/ext/xds/xds_health_status.cc",
+    "src/src/core/ext/xds/xds_health_status.h",
+    "src/src/core/ext/xds/xds_http_fault_filter.cc",
+    "src/src/core/ext/xds/xds_http_fault_filter.h",
+    "src/src/core/ext/xds/xds_http_filters.cc",
+    "src/src/core/ext/xds/xds_http_filters.h",
+    "src/src/core/ext/xds/xds_http_rbac_filter.cc",
+    "src/src/core/ext/xds/xds_http_rbac_filter.h",
+    "src/src/core/ext/xds/xds_http_stateful_session_filter.cc",
+    "src/src/core/ext/xds/xds_http_stateful_session_filter.h",
+    "src/src/core/ext/xds/xds_lb_policy_registry.cc",
+    "src/src/core/ext/xds/xds_lb_policy_registry.h",
+    "src/src/core/ext/xds/xds_listener.cc",
+    "src/src/core/ext/xds/xds_listener.h",
+    "src/src/core/ext/xds/xds_resource_type.h",
+    "src/src/core/ext/xds/xds_resource_type_impl.h",
+    "src/src/core/ext/xds/xds_route_config.cc",
+    "src/src/core/ext/xds/xds_route_config.h",
+    "src/src/core/ext/xds/xds_routing.cc",
+    "src/src/core/ext/xds/xds_routing.h",
+    "src/src/core/ext/xds/xds_server_config_fetcher.cc",
+    "src/src/core/ext/xds/xds_transport.h",
+    "src/src/core/ext/xds/xds_transport_grpc.cc",
+    "src/src/core/ext/xds/xds_transport_grpc.h",
+    "src/src/core/lib/address_utils/parse_address.cc",
+    "src/src/core/lib/address_utils/parse_address.h",
+    "src/src/core/lib/address_utils/sockaddr_utils.cc",
+    "src/src/core/lib/address_utils/sockaddr_utils.h",
+    "src/src/core/lib/avl/avl.h",
+    "src/src/core/lib/backoff/backoff.cc",
+    "src/src/core/lib/backoff/backoff.h",
+    "src/src/core/lib/channel/call_finalization.h",
+    "src/src/core/lib/channel/call_tracer.h",
+    "src/src/core/lib/channel/channel_args.cc",
+    "src/src/core/lib/channel/channel_args.h",
+    "src/src/core/lib/channel/channel_args_preconditioning.cc",
+    "src/src/core/lib/channel/channel_args_preconditioning.h",
+    "src/src/core/lib/channel/channel_fwd.h",
+    "src/src/core/lib/channel/channel_stack.cc",
+    "src/src/core/lib/channel/channel_stack.h",
+    "src/src/core/lib/channel/channel_stack_builder.cc",
+    "src/src/core/lib/channel/channel_stack_builder.h",
+    "src/src/core/lib/channel/channel_stack_builder_impl.cc",
+    "src/src/core/lib/channel/channel_stack_builder_impl.h",
+    "src/src/core/lib/channel/channel_trace.cc",
+    "src/src/core/lib/channel/channel_trace.h",
+    "src/src/core/lib/channel/channelz.cc",
+    "src/src/core/lib/channel/channelz.h",
+    "src/src/core/lib/channel/channelz_registry.cc",
+    "src/src/core/lib/channel/channelz_registry.h",
+    "src/src/core/lib/channel/connected_channel.cc",
+    "src/src/core/lib/channel/connected_channel.h",
+    "src/src/core/lib/channel/context.h",
+    "src/src/core/lib/channel/promise_based_filter.cc",
+    "src/src/core/lib/channel/promise_based_filter.h",
+    "src/src/core/lib/channel/status_util.cc",
+    "src/src/core/lib/channel/status_util.h",
+    "src/src/core/lib/compression/compression.cc",
+    "src/src/core/lib/compression/compression_internal.cc",
+    "src/src/core/lib/compression/compression_internal.h",
+    "src/src/core/lib/compression/message_compress.cc",
+    "src/src/core/lib/compression/message_compress.h",
+    "src/src/core/lib/config/core_configuration.cc",
+    "src/src/core/lib/config/core_configuration.h",
+    "src/src/core/lib/debug/event_log.cc",
+    "src/src/core/lib/debug/event_log.h",
+    "src/src/core/lib/debug/histogram_view.cc",
+    "src/src/core/lib/debug/histogram_view.h",
+    "src/src/core/lib/debug/stats.cc",
+    "src/src/core/lib/debug/stats.h",
+    "src/src/core/lib/debug/stats_data.cc",
+    "src/src/core/lib/debug/stats_data.h",
+    "src/src/core/lib/debug/trace.cc",
+    "src/src/core/lib/debug/trace.h",
+    "src/src/core/lib/event_engine/channel_args_endpoint_config.cc",
+    "src/src/core/lib/event_engine/channel_args_endpoint_config.h",
+    "src/src/core/lib/event_engine/common_closures.h",
+    "src/src/core/lib/event_engine/default_event_engine.cc",
+    "src/src/core/lib/event_engine/default_event_engine.h",
+    "src/src/core/lib/event_engine/default_event_engine_factory.cc",
+    "src/src/core/lib/event_engine/default_event_engine_factory.h",
+    "src/src/core/lib/event_engine/event_engine.cc",
+    "src/src/core/lib/event_engine/executor/executor.h",
+    "src/src/core/lib/event_engine/forkable.cc",
+    "src/src/core/lib/event_engine/forkable.h",
+    "src/src/core/lib/event_engine/handle_containers.h",
+    "src/src/core/lib/event_engine/memory_allocator.cc",
+    "src/src/core/lib/event_engine/poller.h",
+    "src/src/core/lib/event_engine/posix.h",
+    "src/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc",
+    "src/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h",
+    "src/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc",
+    "src/src/core/lib/event_engine/posix_engine/ev_poll_posix.h",
+    "src/src/core/lib/event_engine/posix_engine/event_poller.h",
+    "src/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc",
+    "src/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h",
+    "src/src/core/lib/event_engine/posix_engine/internal_errqueue.cc",
+    "src/src/core/lib/event_engine/posix_engine/internal_errqueue.h",
+    "src/src/core/lib/event_engine/posix_engine/lockfree_event.cc",
+    "src/src/core/lib/event_engine/posix_engine/lockfree_event.h",
+    "src/src/core/lib/event_engine/posix_engine/posix_endpoint.cc",
+    "src/src/core/lib/event_engine/posix_engine/posix_endpoint.h",
+    "src/src/core/lib/event_engine/posix_engine/posix_engine.cc",
+    "src/src/core/lib/event_engine/posix_engine/posix_engine.h",
+    "src/src/core/lib/event_engine/posix_engine/posix_engine_closure.h",
+    "src/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc",
+    "src/src/core/lib/event_engine/posix_engine/posix_engine_listener.h",
+    "src/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc",
+    "src/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h",
+    "src/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc",
+    "src/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h",
+    "src/src/core/lib/event_engine/posix_engine/timer.cc",
+    "src/src/core/lib/event_engine/posix_engine/timer.h",
+    "src/src/core/lib/event_engine/posix_engine/timer_heap.cc",
+    "src/src/core/lib/event_engine/posix_engine/timer_heap.h",
+    "src/src/core/lib/event_engine/posix_engine/timer_manager.cc",
+    "src/src/core/lib/event_engine/posix_engine/timer_manager.h",
+    "src/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc",
+    "src/src/core/lib/event_engine/posix_engine/traced_buffer_list.h",
+    "src/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc",
+    "src/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h",
+    "src/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc",
+    "src/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h",
+    "src/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h",
+    "src/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc",
+    "src/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h",
+    "src/src/core/lib/event_engine/resolved_address.cc",
+    "src/src/core/lib/event_engine/resolved_address_internal.h",
+    "src/src/core/lib/event_engine/shim.cc",
+    "src/src/core/lib/event_engine/shim.h",
+    "src/src/core/lib/event_engine/slice.cc",
+    "src/src/core/lib/event_engine/slice_buffer.cc",
+    "src/src/core/lib/event_engine/tcp_socket_utils.cc",
+    "src/src/core/lib/event_engine/tcp_socket_utils.h",
+    "src/src/core/lib/event_engine/thread_pool.cc",
+    "src/src/core/lib/event_engine/thread_pool.h",
+    "src/src/core/lib/event_engine/time_util.cc",
+    "src/src/core/lib/event_engine/time_util.h",
+    "src/src/core/lib/event_engine/trace.cc",
+    "src/src/core/lib/event_engine/trace.h",
+    "src/src/core/lib/event_engine/utils.cc",
+    "src/src/core/lib/event_engine/utils.h",
+    "src/src/core/lib/event_engine/windows/iocp.cc",
+    "src/src/core/lib/event_engine/windows/iocp.h",
+    "src/src/core/lib/event_engine/windows/win_socket.cc",
+    "src/src/core/lib/event_engine/windows/win_socket.h",
+    "src/src/core/lib/event_engine/windows/windows_endpoint.cc",
+    "src/src/core/lib/event_engine/windows/windows_endpoint.h",
+    "src/src/core/lib/event_engine/windows/windows_engine.cc",
+    "src/src/core/lib/event_engine/windows/windows_engine.h",
+    "src/src/core/lib/experiments/config.cc",
+    "src/src/core/lib/experiments/config.h",
+    "src/src/core/lib/experiments/experiments.cc",
+    "src/src/core/lib/experiments/experiments.h",
+    "src/src/core/lib/gpr/spinlock.h",
+    "src/src/core/lib/gprpp/atomic_utils.h",
+    "src/src/core/lib/gprpp/bitset.h",
+    "src/src/core/lib/gprpp/chunked_vector.h",
+    "src/src/core/lib/gprpp/cpp_impl_of.h",
+    "src/src/core/lib/gprpp/dual_ref_counted.h",
+    "src/src/core/lib/gprpp/load_file.cc",
+    "src/src/core/lib/gprpp/load_file.h",
+    "src/src/core/lib/gprpp/manual_constructor.h",
+    "src/src/core/lib/gprpp/match.h",
+    "src/src/core/lib/gprpp/notification.h",
+    "src/src/core/lib/gprpp/orphanable.h",
+    "src/src/core/lib/gprpp/overload.h",
+    "src/src/core/lib/gprpp/packed_table.h",
+    "src/src/core/lib/gprpp/per_cpu.h",
+    "src/src/core/lib/gprpp/ref_counted.h",
+    "src/src/core/lib/gprpp/ref_counted_ptr.h",
+    "src/src/core/lib/gprpp/single_set_ptr.h",
+    "src/src/core/lib/gprpp/sorted_pack.h",
+    "src/src/core/lib/gprpp/status_helper.cc",
+    "src/src/core/lib/gprpp/status_helper.h",
+    "src/src/core/lib/gprpp/table.h",
+    "src/src/core/lib/gprpp/time.cc",
+    "src/src/core/lib/gprpp/time.h",
+    "src/src/core/lib/gprpp/time_averaged_stats.cc",
+    "src/src/core/lib/gprpp/time_averaged_stats.h",
+    "src/src/core/lib/gprpp/unique_type_name.h",
+    "src/src/core/lib/gprpp/validation_errors.cc",
+    "src/src/core/lib/gprpp/validation_errors.h",
+    "src/src/core/lib/gprpp/work_serializer.cc",
+    "src/src/core/lib/gprpp/work_serializer.h",
+    "src/src/core/lib/handshaker/proxy_mapper.h",
+    "src/src/core/lib/handshaker/proxy_mapper_registry.cc",
+    "src/src/core/lib/handshaker/proxy_mapper_registry.h",
+    "src/src/core/lib/http/format_request.cc",
+    "src/src/core/lib/http/format_request.h",
+    "src/src/core/lib/http/httpcli.cc",
+    "src/src/core/lib/http/httpcli.h",
+    "src/src/core/lib/http/httpcli_security_connector.cc",
+    "src/src/core/lib/http/httpcli_ssl_credentials.h",
+    "src/src/core/lib/http/parser.cc",
+    "src/src/core/lib/http/parser.h",
+    "src/src/core/lib/iomgr/block_annotate.h",
+    "src/src/core/lib/iomgr/buffer_list.cc",
+    "src/src/core/lib/iomgr/buffer_list.h",
+    "src/src/core/lib/iomgr/call_combiner.cc",
+    "src/src/core/lib/iomgr/call_combiner.h",
+    "src/src/core/lib/iomgr/cfstream_handle.cc",
+    "src/src/core/lib/iomgr/cfstream_handle.h",
+    "src/src/core/lib/iomgr/closure.cc",
+    "src/src/core/lib/iomgr/closure.h",
+    "src/src/core/lib/iomgr/combiner.cc",
+    "src/src/core/lib/iomgr/combiner.h",
+    "src/src/core/lib/iomgr/dualstack_socket_posix.cc",
+    "src/src/core/lib/iomgr/dynamic_annotations.h",
+    "src/src/core/lib/iomgr/endpoint.cc",
+    "src/src/core/lib/iomgr/endpoint.h",
+    "src/src/core/lib/iomgr/endpoint_cfstream.cc",
+    "src/src/core/lib/iomgr/endpoint_cfstream.h",
+    "src/src/core/lib/iomgr/endpoint_pair.h",
+    "src/src/core/lib/iomgr/endpoint_pair_posix.cc",
+    "src/src/core/lib/iomgr/endpoint_pair_windows.cc",
+    "src/src/core/lib/iomgr/error.cc",
+    "src/src/core/lib/iomgr/error.h",
+    "src/src/core/lib/iomgr/error_cfstream.cc",
+    "src/src/core/lib/iomgr/error_cfstream.h",
+    "src/src/core/lib/iomgr/ev_apple.cc",
+    "src/src/core/lib/iomgr/ev_apple.h",
+    "src/src/core/lib/iomgr/ev_epoll1_linux.cc",
+    "src/src/core/lib/iomgr/ev_epoll1_linux.h",
+    "src/src/core/lib/iomgr/ev_poll_posix.cc",
+    "src/src/core/lib/iomgr/ev_poll_posix.h",
+    "src/src/core/lib/iomgr/ev_posix.cc",
+    "src/src/core/lib/iomgr/ev_posix.h",
+    "src/src/core/lib/iomgr/ev_windows.cc",
+    "src/src/core/lib/iomgr/event_engine_shims/closure.cc",
+    "src/src/core/lib/iomgr/event_engine_shims/closure.h",
+    "src/src/core/lib/iomgr/event_engine_shims/endpoint.cc",
+    "src/src/core/lib/iomgr/event_engine_shims/endpoint.h",
+    "src/src/core/lib/iomgr/event_engine_shims/tcp_client.cc",
+    "src/src/core/lib/iomgr/event_engine_shims/tcp_client.h",
+    "src/src/core/lib/iomgr/exec_ctx.cc",
+    "src/src/core/lib/iomgr/exec_ctx.h",
+    "src/src/core/lib/iomgr/executor.cc",
+    "src/src/core/lib/iomgr/executor.h",
+    "src/src/core/lib/iomgr/fork_posix.cc",
+    "src/src/core/lib/iomgr/fork_windows.cc",
+    "src/src/core/lib/iomgr/gethostname.h",
+    "src/src/core/lib/iomgr/gethostname_fallback.cc",
+    "src/src/core/lib/iomgr/gethostname_host_name_max.cc",
+    "src/src/core/lib/iomgr/gethostname_sysconf.cc",
+    "src/src/core/lib/iomgr/grpc_if_nametoindex.h",
+    "src/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc",
+    "src/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc",
+    "src/src/core/lib/iomgr/internal_errqueue.cc",
+    "src/src/core/lib/iomgr/internal_errqueue.h",
+    "src/src/core/lib/iomgr/iocp_windows.cc",
+    "src/src/core/lib/iomgr/iocp_windows.h",
+    "src/src/core/lib/iomgr/iomgr.cc",
+    "src/src/core/lib/iomgr/iomgr.h",
+    "src/src/core/lib/iomgr/iomgr_fwd.h",
+    "src/src/core/lib/iomgr/iomgr_internal.cc",
+    "src/src/core/lib/iomgr/iomgr_internal.h",
+    "src/src/core/lib/iomgr/iomgr_posix.cc",
+    "src/src/core/lib/iomgr/iomgr_posix_cfstream.cc",
+    "src/src/core/lib/iomgr/iomgr_windows.cc",
+    "src/src/core/lib/iomgr/load_file.cc",
+    "src/src/core/lib/iomgr/load_file.h",
+    "src/src/core/lib/iomgr/lockfree_event.cc",
+    "src/src/core/lib/iomgr/lockfree_event.h",
+    "src/src/core/lib/iomgr/nameser.h",
+    "src/src/core/lib/iomgr/polling_entity.cc",
+    "src/src/core/lib/iomgr/polling_entity.h",
+    "src/src/core/lib/iomgr/pollset.cc",
+    "src/src/core/lib/iomgr/pollset.h",
+    "src/src/core/lib/iomgr/pollset_set.cc",
+    "src/src/core/lib/iomgr/pollset_set.h",
+    "src/src/core/lib/iomgr/pollset_set_windows.cc",
+    "src/src/core/lib/iomgr/pollset_set_windows.h",
+    "src/src/core/lib/iomgr/pollset_windows.cc",
+    "src/src/core/lib/iomgr/pollset_windows.h",
+    "src/src/core/lib/iomgr/port.h",
+    "src/src/core/lib/iomgr/python_util.h",
+    "src/src/core/lib/iomgr/resolve_address.cc",
+    "src/src/core/lib/iomgr/resolve_address.h",
+    "src/src/core/lib/iomgr/resolve_address_impl.h",
+    "src/src/core/lib/iomgr/resolve_address_posix.cc",
+    "src/src/core/lib/iomgr/resolve_address_posix.h",
+    "src/src/core/lib/iomgr/resolve_address_windows.cc",
+    "src/src/core/lib/iomgr/resolve_address_windows.h",
+    "src/src/core/lib/iomgr/resolved_address.h",
+    "src/src/core/lib/iomgr/sockaddr.h",
+    "src/src/core/lib/iomgr/sockaddr_posix.h",
+    "src/src/core/lib/iomgr/sockaddr_utils_posix.cc",
+    "src/src/core/lib/iomgr/sockaddr_windows.h",
+    "src/src/core/lib/iomgr/socket_factory_posix.cc",
+    "src/src/core/lib/iomgr/socket_factory_posix.h",
+    "src/src/core/lib/iomgr/socket_mutator.cc",
+    "src/src/core/lib/iomgr/socket_mutator.h",
+    "src/src/core/lib/iomgr/socket_utils.h",
+    "src/src/core/lib/iomgr/socket_utils_common_posix.cc",
+    "src/src/core/lib/iomgr/socket_utils_linux.cc",
+    "src/src/core/lib/iomgr/socket_utils_posix.cc",
+    "src/src/core/lib/iomgr/socket_utils_posix.h",
+    "src/src/core/lib/iomgr/socket_utils_windows.cc",
+    "src/src/core/lib/iomgr/socket_windows.cc",
+    "src/src/core/lib/iomgr/socket_windows.h",
+    "src/src/core/lib/iomgr/systemd_utils.cc",
+    "src/src/core/lib/iomgr/systemd_utils.h",
+    "src/src/core/lib/iomgr/tcp_client.cc",
+    "src/src/core/lib/iomgr/tcp_client.h",
+    "src/src/core/lib/iomgr/tcp_client_cfstream.cc",
+    "src/src/core/lib/iomgr/tcp_client_posix.cc",
+    "src/src/core/lib/iomgr/tcp_client_posix.h",
+    "src/src/core/lib/iomgr/tcp_client_windows.cc",
+    "src/src/core/lib/iomgr/tcp_posix.cc",
+    "src/src/core/lib/iomgr/tcp_posix.h",
+    "src/src/core/lib/iomgr/tcp_server.cc",
+    "src/src/core/lib/iomgr/tcp_server.h",
+    "src/src/core/lib/iomgr/tcp_server_posix.cc",
+    "src/src/core/lib/iomgr/tcp_server_utils_posix.h",
+    "src/src/core/lib/iomgr/tcp_server_utils_posix_common.cc",
+    "src/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc",
+    "src/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc",
+    "src/src/core/lib/iomgr/tcp_server_windows.cc",
+    "src/src/core/lib/iomgr/tcp_windows.cc",
+    "src/src/core/lib/iomgr/tcp_windows.h",
+    "src/src/core/lib/iomgr/timer.cc",
+    "src/src/core/lib/iomgr/timer.h",
+    "src/src/core/lib/iomgr/timer_generic.cc",
+    "src/src/core/lib/iomgr/timer_generic.h",
+    "src/src/core/lib/iomgr/timer_heap.cc",
+    "src/src/core/lib/iomgr/timer_heap.h",
+    "src/src/core/lib/iomgr/timer_manager.cc",
+    "src/src/core/lib/iomgr/timer_manager.h",
+    "src/src/core/lib/iomgr/unix_sockets_posix.cc",
+    "src/src/core/lib/iomgr/unix_sockets_posix.h",
+    "src/src/core/lib/iomgr/unix_sockets_posix_noop.cc",
+    "src/src/core/lib/iomgr/wakeup_fd_eventfd.cc",
+    "src/src/core/lib/iomgr/wakeup_fd_nospecial.cc",
+    "src/src/core/lib/iomgr/wakeup_fd_pipe.cc",
+    "src/src/core/lib/iomgr/wakeup_fd_pipe.h",
+    "src/src/core/lib/iomgr/wakeup_fd_posix.cc",
+    "src/src/core/lib/iomgr/wakeup_fd_posix.h",
+    "src/src/core/lib/json/json.h",
+    "src/src/core/lib/json/json_args.h",
+    "src/src/core/lib/json/json_channel_args.h",
+    "src/src/core/lib/json/json_object_loader.cc",
+    "src/src/core/lib/json/json_object_loader.h",
+    "src/src/core/lib/json/json_reader.cc",
+    "src/src/core/lib/json/json_util.cc",
+    "src/src/core/lib/json/json_util.h",
+    "src/src/core/lib/json/json_writer.cc",
+    "src/src/core/lib/load_balancing/lb_policy.cc",
+    "src/src/core/lib/load_balancing/lb_policy.h",
+    "src/src/core/lib/load_balancing/lb_policy_factory.h",
+    "src/src/core/lib/load_balancing/lb_policy_registry.cc",
+    "src/src/core/lib/load_balancing/lb_policy_registry.h",
+    "src/src/core/lib/load_balancing/subchannel_interface.h",
+    "src/src/core/lib/matchers/matchers.cc",
+    "src/src/core/lib/matchers/matchers.h",
+    "src/src/core/lib/promise/activity.cc",
+    "src/src/core/lib/promise/activity.h",
+    "src/src/core/lib/promise/arena_promise.h",
+    "src/src/core/lib/promise/context.h",
+    "src/src/core/lib/promise/detail/basic_join.h",
+    "src/src/core/lib/promise/detail/basic_seq.h",
+    "src/src/core/lib/promise/detail/promise_factory.h",
+    "src/src/core/lib/promise/detail/promise_like.h",
+    "src/src/core/lib/promise/detail/status.h",
+    "src/src/core/lib/promise/detail/switch.h",
+    "src/src/core/lib/promise/exec_ctx_wakeup_scheduler.h",
+    "src/src/core/lib/promise/if.h",
+    "src/src/core/lib/promise/interceptor_list.h",
+    "src/src/core/lib/promise/intra_activity_waiter.h",
+    "src/src/core/lib/promise/latch.h",
+    "src/src/core/lib/promise/loop.h",
+    "src/src/core/lib/promise/map.h",
+    "src/src/core/lib/promise/pipe.h",
+    "src/src/core/lib/promise/poll.h",
+    "src/src/core/lib/promise/promise.h",
+    "src/src/core/lib/promise/race.h",
+    "src/src/core/lib/promise/seq.h",
+    "src/src/core/lib/promise/sleep.cc",
+    "src/src/core/lib/promise/sleep.h",
+    "src/src/core/lib/promise/trace.cc",
+    "src/src/core/lib/promise/trace.h",
+    "src/src/core/lib/promise/try_join.h",
+    "src/src/core/lib/promise/try_seq.h",
+    "src/src/core/lib/resolver/resolver.cc",
+    "src/src/core/lib/resolver/resolver.h",
+    "src/src/core/lib/resolver/resolver_factory.h",
+    "src/src/core/lib/resolver/resolver_registry.cc",
+    "src/src/core/lib/resolver/resolver_registry.h",
+    "src/src/core/lib/resolver/server_address.cc",
+    "src/src/core/lib/resolver/server_address.h",
+    "src/src/core/lib/resource_quota/api.cc",
+    "src/src/core/lib/resource_quota/api.h",
+    "src/src/core/lib/resource_quota/arena.cc",
+    "src/src/core/lib/resource_quota/arena.h",
+    "src/src/core/lib/resource_quota/memory_quota.cc",
+    "src/src/core/lib/resource_quota/memory_quota.h",
+    "src/src/core/lib/resource_quota/periodic_update.cc",
+    "src/src/core/lib/resource_quota/periodic_update.h",
+    "src/src/core/lib/resource_quota/resource_quota.cc",
+    "src/src/core/lib/resource_quota/resource_quota.h",
+    "src/src/core/lib/resource_quota/thread_quota.cc",
+    "src/src/core/lib/resource_quota/thread_quota.h",
+    "src/src/core/lib/resource_quota/trace.cc",
+    "src/src/core/lib/resource_quota/trace.h",
+    "src/src/core/lib/security/authorization/authorization_engine.h",
+    "src/src/core/lib/security/authorization/authorization_policy_provider.h",
+    "src/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc",
+    "src/src/core/lib/security/authorization/evaluate_args.cc",
+    "src/src/core/lib/security/authorization/evaluate_args.h",
+    "src/src/core/lib/security/authorization/grpc_authorization_engine.cc",
+    "src/src/core/lib/security/authorization/grpc_authorization_engine.h",
+    "src/src/core/lib/security/authorization/grpc_server_authz_filter.cc",
+    "src/src/core/lib/security/authorization/grpc_server_authz_filter.h",
+    "src/src/core/lib/security/authorization/matchers.cc",
+    "src/src/core/lib/security/authorization/matchers.h",
+    "src/src/core/lib/security/authorization/rbac_policy.cc",
+    "src/src/core/lib/security/authorization/rbac_policy.h",
+    "src/src/core/lib/security/certificate_provider/certificate_provider_factory.h",
+    "src/src/core/lib/security/certificate_provider/certificate_provider_registry.cc",
+    "src/src/core/lib/security/certificate_provider/certificate_provider_registry.h",
+    "src/src/core/lib/security/context/security_context.cc",
+    "src/src/core/lib/security/context/security_context.h",
+    "src/src/core/lib/security/credentials/alts/alts_credentials.cc",
+    "src/src/core/lib/security/credentials/alts/alts_credentials.h",
+    "src/src/core/lib/security/credentials/alts/check_gcp_environment.cc",
+    "src/src/core/lib/security/credentials/alts/check_gcp_environment.h",
+    "src/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc",
+    "src/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc",
+    "src/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc",
+    "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc",
+    "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc",
+    "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h",
+    "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc",
+    "src/src/core/lib/security/credentials/call_creds_util.cc",
+    "src/src/core/lib/security/credentials/call_creds_util.h",
+    "src/src/core/lib/security/credentials/channel_creds_registry.h",
+    "src/src/core/lib/security/credentials/channel_creds_registry_init.cc",
+    "src/src/core/lib/security/credentials/composite/composite_credentials.cc",
+    "src/src/core/lib/security/credentials/composite/composite_credentials.h",
+    "src/src/core/lib/security/credentials/credentials.cc",
+    "src/src/core/lib/security/credentials/credentials.h",
+    "src/src/core/lib/security/credentials/external/aws_external_account_credentials.cc",
+    "src/src/core/lib/security/credentials/external/aws_external_account_credentials.h",
+    "src/src/core/lib/security/credentials/external/aws_request_signer.cc",
+    "src/src/core/lib/security/credentials/external/aws_request_signer.h",
+    "src/src/core/lib/security/credentials/external/external_account_credentials.cc",
+    "src/src/core/lib/security/credentials/external/external_account_credentials.h",
+    "src/src/core/lib/security/credentials/external/file_external_account_credentials.cc",
+    "src/src/core/lib/security/credentials/external/file_external_account_credentials.h",
+    "src/src/core/lib/security/credentials/external/url_external_account_credentials.cc",
+    "src/src/core/lib/security/credentials/external/url_external_account_credentials.h",
+    "src/src/core/lib/security/credentials/fake/fake_credentials.cc",
+    "src/src/core/lib/security/credentials/fake/fake_credentials.h",
+    "src/src/core/lib/security/credentials/google_default/credentials_generic.cc",
+    "src/src/core/lib/security/credentials/google_default/google_default_credentials.cc",
+    "src/src/core/lib/security/credentials/google_default/google_default_credentials.h",
+    "src/src/core/lib/security/credentials/iam/iam_credentials.cc",
+    "src/src/core/lib/security/credentials/iam/iam_credentials.h",
+    "src/src/core/lib/security/credentials/insecure/insecure_credentials.cc",
+    "src/src/core/lib/security/credentials/insecure/insecure_credentials.h",
+    "src/src/core/lib/security/credentials/jwt/json_token.cc",
+    "src/src/core/lib/security/credentials/jwt/json_token.h",
+    "src/src/core/lib/security/credentials/jwt/jwt_credentials.cc",
+    "src/src/core/lib/security/credentials/jwt/jwt_credentials.h",
+    "src/src/core/lib/security/credentials/jwt/jwt_verifier.cc",
+    "src/src/core/lib/security/credentials/jwt/jwt_verifier.h",
+    "src/src/core/lib/security/credentials/local/local_credentials.cc",
+    "src/src/core/lib/security/credentials/local/local_credentials.h",
+    "src/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc",
+    "src/src/core/lib/security/credentials/oauth2/oauth2_credentials.h",
+    "src/src/core/lib/security/credentials/plugin/plugin_credentials.cc",
+    "src/src/core/lib/security/credentials/plugin/plugin_credentials.h",
+    "src/src/core/lib/security/credentials/ssl/ssl_credentials.cc",
+    "src/src/core/lib/security/credentials/ssl/ssl_credentials.h",
+    "src/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc",
+    "src/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h",
+    "src/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc",
+    "src/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h",
+    "src/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc",
+    "src/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h",
+    "src/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc",
+    "src/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h",
+    "src/src/core/lib/security/credentials/tls/tls_credentials.cc",
+    "src/src/core/lib/security/credentials/tls/tls_credentials.h",
+    "src/src/core/lib/security/credentials/tls/tls_utils.cc",
+    "src/src/core/lib/security/credentials/tls/tls_utils.h",
+    "src/src/core/lib/security/credentials/xds/xds_credentials.cc",
+    "src/src/core/lib/security/credentials/xds/xds_credentials.h",
+    "src/src/core/lib/security/security_connector/alts/alts_security_connector.cc",
+    "src/src/core/lib/security/security_connector/alts/alts_security_connector.h",
+    "src/src/core/lib/security/security_connector/fake/fake_security_connector.cc",
+    "src/src/core/lib/security/security_connector/fake/fake_security_connector.h",
+    "src/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc",
+    "src/src/core/lib/security/security_connector/insecure/insecure_security_connector.h",
+    "src/src/core/lib/security/security_connector/load_system_roots.h",
+    "src/src/core/lib/security/security_connector/load_system_roots_fallback.cc",
+    "src/src/core/lib/security/security_connector/load_system_roots_supported.cc",
+    "src/src/core/lib/security/security_connector/load_system_roots_supported.h",
+    "src/src/core/lib/security/security_connector/local/local_security_connector.cc",
+    "src/src/core/lib/security/security_connector/local/local_security_connector.h",
+    "src/src/core/lib/security/security_connector/security_connector.cc",
+    "src/src/core/lib/security/security_connector/security_connector.h",
+    "src/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc",
+    "src/src/core/lib/security/security_connector/ssl/ssl_security_connector.h",
+    "src/src/core/lib/security/security_connector/ssl_utils.cc",
+    "src/src/core/lib/security/security_connector/ssl_utils.h",
+    "src/src/core/lib/security/security_connector/ssl_utils_config.cc",
+    "src/src/core/lib/security/security_connector/ssl_utils_config.h",
+    "src/src/core/lib/security/security_connector/tls/tls_security_connector.cc",
+    "src/src/core/lib/security/security_connector/tls/tls_security_connector.h",
+    "src/src/core/lib/security/transport/auth_filters.h",
+    "src/src/core/lib/security/transport/client_auth_filter.cc",
+    "src/src/core/lib/security/transport/secure_endpoint.cc",
+    "src/src/core/lib/security/transport/secure_endpoint.h",
+    "src/src/core/lib/security/transport/security_handshaker.cc",
+    "src/src/core/lib/security/transport/security_handshaker.h",
+    "src/src/core/lib/security/transport/server_auth_filter.cc",
+    "src/src/core/lib/security/transport/tsi_error.cc",
+    "src/src/core/lib/security/transport/tsi_error.h",
+    "src/src/core/lib/security/util/json_util.cc",
+    "src/src/core/lib/security/util/json_util.h",
+    "src/src/core/lib/service_config/service_config.h",
+    "src/src/core/lib/service_config/service_config_call_data.h",
+    "src/src/core/lib/service_config/service_config_impl.cc",
+    "src/src/core/lib/service_config/service_config_impl.h",
+    "src/src/core/lib/service_config/service_config_parser.cc",
+    "src/src/core/lib/service_config/service_config_parser.h",
+    "src/src/core/lib/slice/b64.cc",
+    "src/src/core/lib/slice/b64.h",
+    "src/src/core/lib/slice/percent_encoding.cc",
+    "src/src/core/lib/slice/percent_encoding.h",
+    "src/src/core/lib/slice/slice.cc",
+    "src/src/core/lib/slice/slice.h",
+    "src/src/core/lib/slice/slice_buffer.cc",
+    "src/src/core/lib/slice/slice_buffer.h",
+    "src/src/core/lib/slice/slice_internal.h",
+    "src/src/core/lib/slice/slice_refcount.cc",
+    "src/src/core/lib/slice/slice_refcount.h",
+    "src/src/core/lib/slice/slice_string_helpers.cc",
+    "src/src/core/lib/slice/slice_string_helpers.h",
+    "src/src/core/lib/surface/api_trace.cc",
+    "src/src/core/lib/surface/api_trace.h",
+    "src/src/core/lib/surface/builtins.cc",
+    "src/src/core/lib/surface/builtins.h",
+    "src/src/core/lib/surface/byte_buffer.cc",
+    "src/src/core/lib/surface/byte_buffer_reader.cc",
+    "src/src/core/lib/surface/call.cc",
+    "src/src/core/lib/surface/call.h",
+    "src/src/core/lib/surface/call_details.cc",
+    "src/src/core/lib/surface/call_log_batch.cc",
+    "src/src/core/lib/surface/call_test_only.h",
+    "src/src/core/lib/surface/call_trace.cc",
+    "src/src/core/lib/surface/call_trace.h",
+    "src/src/core/lib/surface/channel.cc",
+    "src/src/core/lib/surface/channel.h",
+    "src/src/core/lib/surface/channel_init.cc",
+    "src/src/core/lib/surface/channel_init.h",
+    "src/src/core/lib/surface/channel_ping.cc",
+    "src/src/core/lib/surface/channel_stack_type.cc",
+    "src/src/core/lib/surface/channel_stack_type.h",
+    "src/src/core/lib/surface/completion_queue.cc",
+    "src/src/core/lib/surface/completion_queue.h",
+    "src/src/core/lib/surface/completion_queue_factory.cc",
+    "src/src/core/lib/surface/completion_queue_factory.h",
+    "src/src/core/lib/surface/event_string.cc",
+    "src/src/core/lib/surface/event_string.h",
+    "src/src/core/lib/surface/init.cc",
+    "src/src/core/lib/surface/init.h",
+    "src/src/core/lib/surface/init_internally.cc",
+    "src/src/core/lib/surface/init_internally.h",
+    "src/src/core/lib/surface/lame_client.cc",
+    "src/src/core/lib/surface/lame_client.h",
+    "src/src/core/lib/surface/metadata_array.cc",
+    "src/src/core/lib/surface/server.cc",
+    "src/src/core/lib/surface/server.h",
+    "src/src/core/lib/surface/validate_metadata.cc",
+    "src/src/core/lib/surface/validate_metadata.h",
+    "src/src/core/lib/surface/version.cc",
+    "src/src/core/lib/transport/bdp_estimator.cc",
+    "src/src/core/lib/transport/bdp_estimator.h",
+    "src/src/core/lib/transport/connectivity_state.cc",
+    "src/src/core/lib/transport/connectivity_state.h",
+    "src/src/core/lib/transport/error_utils.cc",
+    "src/src/core/lib/transport/error_utils.h",
+    "src/src/core/lib/transport/handshaker.cc",
+    "src/src/core/lib/transport/handshaker.h",
+    "src/src/core/lib/transport/handshaker_factory.h",
+    "src/src/core/lib/transport/handshaker_registry.cc",
+    "src/src/core/lib/transport/handshaker_registry.h",
+    "src/src/core/lib/transport/http2_errors.h",
+    "src/src/core/lib/transport/http_connect_handshaker.cc",
+    "src/src/core/lib/transport/http_connect_handshaker.h",
+    "src/src/core/lib/transport/metadata_batch.cc",
+    "src/src/core/lib/transport/metadata_batch.h",
+    "src/src/core/lib/transport/parsed_metadata.cc",
+    "src/src/core/lib/transport/parsed_metadata.h",
+    "src/src/core/lib/transport/pid_controller.cc",
+    "src/src/core/lib/transport/pid_controller.h",
+    "src/src/core/lib/transport/status_conversion.cc",
+    "src/src/core/lib/transport/status_conversion.h",
+    "src/src/core/lib/transport/tcp_connect_handshaker.cc",
+    "src/src/core/lib/transport/tcp_connect_handshaker.h",
+    "src/src/core/lib/transport/timeout_encoding.cc",
+    "src/src/core/lib/transport/timeout_encoding.h",
+    "src/src/core/lib/transport/transport.cc",
+    "src/src/core/lib/transport/transport.h",
+    "src/src/core/lib/transport/transport_fwd.h",
+    "src/src/core/lib/transport/transport_impl.h",
+    "src/src/core/lib/transport/transport_op_string.cc",
+    "src/src/core/lib/uri/uri_parser.cc",
+    "src/src/core/lib/uri/uri_parser.h",
+    "src/src/core/plugin_registry/grpc_plugin_registry.cc",
+    "src/src/core/plugin_registry/grpc_plugin_registry_extra.cc",
+    "src/src/core/tsi/alts/crypt/aes_gcm.cc",
+    "src/src/core/tsi/alts/crypt/gsec.cc",
+    "src/src/core/tsi/alts/crypt/gsec.h",
+    "src/src/core/tsi/alts/frame_protector/alts_counter.cc",
+    "src/src/core/tsi/alts/frame_protector/alts_counter.h",
+    "src/src/core/tsi/alts/frame_protector/alts_crypter.cc",
+    "src/src/core/tsi/alts/frame_protector/alts_crypter.h",
+    "src/src/core/tsi/alts/frame_protector/alts_frame_protector.cc",
+    "src/src/core/tsi/alts/frame_protector/alts_frame_protector.h",
+    "src/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc",
+    "src/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h",
+    "src/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc",
+    "src/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc",
+    "src/src/core/tsi/alts/frame_protector/frame_handler.cc",
+    "src/src/core/tsi/alts/frame_protector/frame_handler.h",
+    "src/src/core/tsi/alts/handshaker/alts_handshaker_client.cc",
+    "src/src/core/tsi/alts/handshaker/alts_handshaker_client.h",
+    "src/src/core/tsi/alts/handshaker/alts_shared_resource.cc",
+    "src/src/core/tsi/alts/handshaker/alts_shared_resource.h",
+    "src/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc",
+    "src/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h",
+    "src/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h",
+    "src/src/core/tsi/alts/handshaker/alts_tsi_utils.cc",
+    "src/src/core/tsi/alts/handshaker/alts_tsi_utils.h",
+    "src/src/core/tsi/alts/handshaker/transport_security_common_api.cc",
+    "src/src/core/tsi/alts/handshaker/transport_security_common_api.h",
+    "src/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc",
+    "src/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h",
+    "src/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc",
+    "src/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h",
+    "src/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h",
+    "src/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc",
+    "src/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h",
+    "src/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc",
+    "src/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h",
+    "src/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc",
+    "src/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h",
+    "src/src/core/tsi/fake_transport_security.cc",
+    "src/src/core/tsi/fake_transport_security.h",
+    "src/src/core/tsi/local_transport_security.cc",
+    "src/src/core/tsi/local_transport_security.h",
+    "src/src/core/tsi/ssl/key_logging/ssl_key_logging.cc",
+    "src/src/core/tsi/ssl/key_logging/ssl_key_logging.h",
+    "src/src/core/tsi/ssl/session_cache/ssl_session.h",
+    "src/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc",
+    "src/src/core/tsi/ssl/session_cache/ssl_session_cache.cc",
+    "src/src/core/tsi/ssl/session_cache/ssl_session_cache.h",
+    "src/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc",
+    "src/src/core/tsi/ssl_transport_security.cc",
+    "src/src/core/tsi/ssl_transport_security.h",
+    "src/src/core/tsi/ssl_transport_security_utils.cc",
+    "src/src/core/tsi/ssl_transport_security_utils.h",
+    "src/src/core/tsi/ssl_types.h",
+    "src/src/core/tsi/transport_security.cc",
+    "src/src/core/tsi/transport_security.h",
+    "src/src/core/tsi/transport_security_grpc.cc",
+    "src/src/core/tsi/transport_security_grpc.h",
+    "src/src/core/tsi/transport_security_interface.h",
+    "src/third_party/xxhash/xxhash.h",
+  ]
+  public_deps = [
+    ":absl_cleanup_cleanup",
+    ":absl_container_flat_hash_map",
+    ":absl_container_flat_hash_set",
+    ":absl_container_inlined_vector",
+    ":absl_functional_any_invocable",
+    ":absl_functional_bind_front",
+    ":absl_functional_function_ref",
+    ":absl_hash_hash",
+    ":absl_meta_type_traits",
+    ":absl_status_statusor",
+    ":absl_types_span",
+    ":absl_utility_utility",
+    ":address_sorting",
+    ":boringssl",
+    ":gpr",
+    ":upb",
+  ]
+  public_configs = [ "..:grpc_internal_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("grpc_unsecure") {
+  sources = [
+    "src/src/core/ext/filters/census/grpc_context.cc",
+    "src/src/core/ext/filters/channel_idle/channel_idle_filter.cc",
+    "src/src/core/ext/filters/channel_idle/channel_idle_filter.h",
+    "src/src/core/ext/filters/channel_idle/idle_filter_state.cc",
+    "src/src/core/ext/filters/channel_idle/idle_filter_state.h",
+    "src/src/core/ext/filters/client_channel/backend_metric.cc",
+    "src/src/core/ext/filters/client_channel/backend_metric.h",
+    "src/src/core/ext/filters/client_channel/backup_poller.cc",
+    "src/src/core/ext/filters/client_channel/backup_poller.h",
+    "src/src/core/ext/filters/client_channel/channel_connectivity.cc",
+    "src/src/core/ext/filters/client_channel/client_channel.cc",
+    "src/src/core/ext/filters/client_channel/client_channel.h",
+    "src/src/core/ext/filters/client_channel/client_channel_channelz.cc",
+    "src/src/core/ext/filters/client_channel/client_channel_channelz.h",
+    "src/src/core/ext/filters/client_channel/client_channel_factory.cc",
+    "src/src/core/ext/filters/client_channel/client_channel_factory.h",
+    "src/src/core/ext/filters/client_channel/client_channel_plugin.cc",
+    "src/src/core/ext/filters/client_channel/client_channel_service_config.cc",
+    "src/src/core/ext/filters/client_channel/client_channel_service_config.h",
+    "src/src/core/ext/filters/client_channel/config_selector.cc",
+    "src/src/core/ext/filters/client_channel/config_selector.h",
+    "src/src/core/ext/filters/client_channel/connector.h",
+    "src/src/core/ext/filters/client_channel/dynamic_filters.cc",
+    "src/src/core/ext/filters/client_channel/dynamic_filters.h",
+    "src/src/core/ext/filters/client_channel/global_subchannel_pool.cc",
+    "src/src/core/ext/filters/client_channel/global_subchannel_pool.h",
+    "src/src/core/ext/filters/client_channel/health/health_check_client.cc",
+    "src/src/core/ext/filters/client_channel/health/health_check_client.h",
+    "src/src/core/ext/filters/client_channel/http_proxy.cc",
+    "src/src/core/ext/filters/client_channel/http_proxy.h",
+    "src/src/core/ext/filters/client_channel/lb_call_state_internal.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/address_filtering.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric_internal.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.h",
+    "src/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc",
+    "src/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc",
+    "src/src/core/ext/filters/client_channel/local_subchannel_pool.cc",
+    "src/src/core/ext/filters/client_channel/local_subchannel_pool.h",
+    "src/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc",
+    "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc",
+    "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h",
+    "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc",
+    "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc",
+    "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc",
+    "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h",
+    "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc",
+    "src/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc",
+    "src/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc",
+    "src/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h",
+    "src/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc",
+    "src/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc",
+    "src/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h",
+    "src/src/core/ext/filters/client_channel/resolver/polling_resolver.cc",
+    "src/src/core/ext/filters/client_channel/resolver/polling_resolver.h",
+    "src/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc",
+    "src/src/core/ext/filters/client_channel/retry_filter.cc",
+    "src/src/core/ext/filters/client_channel/retry_filter.h",
+    "src/src/core/ext/filters/client_channel/retry_service_config.cc",
+    "src/src/core/ext/filters/client_channel/retry_service_config.h",
+    "src/src/core/ext/filters/client_channel/retry_throttle.cc",
+    "src/src/core/ext/filters/client_channel/retry_throttle.h",
+    "src/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc",
+    "src/src/core/ext/filters/client_channel/subchannel.cc",
+    "src/src/core/ext/filters/client_channel/subchannel.h",
+    "src/src/core/ext/filters/client_channel/subchannel_interface_internal.h",
+    "src/src/core/ext/filters/client_channel/subchannel_pool_interface.cc",
+    "src/src/core/ext/filters/client_channel/subchannel_pool_interface.h",
+    "src/src/core/ext/filters/client_channel/subchannel_stream_client.cc",
+    "src/src/core/ext/filters/client_channel/subchannel_stream_client.h",
+    "src/src/core/ext/filters/deadline/deadline_filter.cc",
+    "src/src/core/ext/filters/deadline/deadline_filter.h",
+    "src/src/core/ext/filters/fault_injection/fault_injection_filter.cc",
+    "src/src/core/ext/filters/fault_injection/fault_injection_filter.h",
+    "src/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc",
+    "src/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h",
+    "src/src/core/ext/filters/http/client/http_client_filter.cc",
+    "src/src/core/ext/filters/http/client/http_client_filter.h",
+    "src/src/core/ext/filters/http/client_authority_filter.cc",
+    "src/src/core/ext/filters/http/client_authority_filter.h",
+    "src/src/core/ext/filters/http/http_filters_plugin.cc",
+    "src/src/core/ext/filters/http/message_compress/compression_filter.cc",
+    "src/src/core/ext/filters/http/message_compress/compression_filter.h",
+    "src/src/core/ext/filters/http/server/http_server_filter.cc",
+    "src/src/core/ext/filters/http/server/http_server_filter.h",
+    "src/src/core/ext/filters/message_size/message_size_filter.cc",
+    "src/src/core/ext/filters/message_size/message_size_filter.h",
+    "src/src/core/ext/transport/chttp2/client/chttp2_connector.cc",
+    "src/src/core/ext/transport/chttp2/client/chttp2_connector.h",
+    "src/src/core/ext/transport/chttp2/server/chttp2_server.cc",
+    "src/src/core/ext/transport/chttp2/server/chttp2_server.h",
+    "src/src/core/ext/transport/chttp2/transport/bin_decoder.cc",
+    "src/src/core/ext/transport/chttp2/transport/bin_decoder.h",
+    "src/src/core/ext/transport/chttp2/transport/bin_encoder.cc",
+    "src/src/core/ext/transport/chttp2/transport/bin_encoder.h",
+    "src/src/core/ext/transport/chttp2/transport/chttp2_transport.cc",
+    "src/src/core/ext/transport/chttp2/transport/chttp2_transport.h",
+    "src/src/core/ext/transport/chttp2/transport/context_list.cc",
+    "src/src/core/ext/transport/chttp2/transport/context_list.h",
+    "src/src/core/ext/transport/chttp2/transport/decode_huff.cc",
+    "src/src/core/ext/transport/chttp2/transport/decode_huff.h",
+    "src/src/core/ext/transport/chttp2/transport/flow_control.cc",
+    "src/src/core/ext/transport/chttp2/transport/flow_control.h",
+    "src/src/core/ext/transport/chttp2/transport/frame.h",
+    "src/src/core/ext/transport/chttp2/transport/frame_data.cc",
+    "src/src/core/ext/transport/chttp2/transport/frame_data.h",
+    "src/src/core/ext/transport/chttp2/transport/frame_goaway.cc",
+    "src/src/core/ext/transport/chttp2/transport/frame_goaway.h",
+    "src/src/core/ext/transport/chttp2/transport/frame_ping.cc",
+    "src/src/core/ext/transport/chttp2/transport/frame_ping.h",
+    "src/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc",
+    "src/src/core/ext/transport/chttp2/transport/frame_rst_stream.h",
+    "src/src/core/ext/transport/chttp2/transport/frame_settings.cc",
+    "src/src/core/ext/transport/chttp2/transport/frame_settings.h",
+    "src/src/core/ext/transport/chttp2/transport/frame_window_update.cc",
+    "src/src/core/ext/transport/chttp2/transport/frame_window_update.h",
+    "src/src/core/ext/transport/chttp2/transport/hpack_constants.h",
+    "src/src/core/ext/transport/chttp2/transport/hpack_encoder.cc",
+    "src/src/core/ext/transport/chttp2/transport/hpack_encoder.h",
+    "src/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc",
+    "src/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h",
+    "src/src/core/ext/transport/chttp2/transport/hpack_parser.cc",
+    "src/src/core/ext/transport/chttp2/transport/hpack_parser.h",
+    "src/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc",
+    "src/src/core/ext/transport/chttp2/transport/hpack_parser_table.h",
+    "src/src/core/ext/transport/chttp2/transport/http2_settings.cc",
+    "src/src/core/ext/transport/chttp2/transport/http2_settings.h",
+    "src/src/core/ext/transport/chttp2/transport/http_trace.cc",
+    "src/src/core/ext/transport/chttp2/transport/http_trace.h",
+    "src/src/core/ext/transport/chttp2/transport/huffsyms.cc",
+    "src/src/core/ext/transport/chttp2/transport/huffsyms.h",
+    "src/src/core/ext/transport/chttp2/transport/internal.h",
+    "src/src/core/ext/transport/chttp2/transport/parsing.cc",
+    "src/src/core/ext/transport/chttp2/transport/stream_lists.cc",
+    "src/src/core/ext/transport/chttp2/transport/stream_map.cc",
+    "src/src/core/ext/transport/chttp2/transport/stream_map.h",
+    "src/src/core/ext/transport/chttp2/transport/varint.cc",
+    "src/src/core/ext/transport/chttp2/transport/varint.h",
+    "src/src/core/ext/transport/chttp2/transport/writing.cc",
+    "src/src/core/ext/transport/inproc/inproc_plugin.cc",
+    "src/src/core/ext/transport/inproc/inproc_transport.cc",
+    "src/src/core/ext/transport/inproc/inproc_transport.h",
+    "src/src/core/ext/upb-generated/google/api/annotations.upb.c",
+    "src/src/core/ext/upb-generated/google/api/annotations.upb.h",
+    "src/src/core/ext/upb-generated/google/api/http.upb.c",
+    "src/src/core/ext/upb-generated/google/api/http.upb.h",
+    "src/src/core/ext/upb-generated/google/protobuf/any.upb.c",
+    "src/src/core/ext/upb-generated/google/protobuf/any.upb.h",
+    "src/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c",
+    "src/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h",
+    "src/src/core/ext/upb-generated/google/protobuf/duration.upb.c",
+    "src/src/core/ext/upb-generated/google/protobuf/duration.upb.h",
+    "src/src/core/ext/upb-generated/google/protobuf/empty.upb.c",
+    "src/src/core/ext/upb-generated/google/protobuf/empty.upb.h",
+    "src/src/core/ext/upb-generated/google/protobuf/struct.upb.c",
+    "src/src/core/ext/upb-generated/google/protobuf/struct.upb.h",
+    "src/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c",
+    "src/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h",
+    "src/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c",
+    "src/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h",
+    "src/src/core/ext/upb-generated/google/rpc/status.upb.c",
+    "src/src/core/ext/upb-generated/google/rpc/status.upb.h",
+    "src/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c",
+    "src/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h",
+    "src/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c",
+    "src/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h",
+    "src/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c",
+    "src/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h",
+    "src/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c",
+    "src/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h",
+    "src/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c",
+    "src/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h",
+    "src/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c",
+    "src/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h",
+    "src/src/core/ext/upb-generated/validate/validate.upb.c",
+    "src/src/core/ext/upb-generated/validate/validate.upb.h",
+    "src/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c",
+    "src/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h",
+    "src/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c",
+    "src/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h",
+    "src/src/core/lib/address_utils/parse_address.cc",
+    "src/src/core/lib/address_utils/parse_address.h",
+    "src/src/core/lib/address_utils/sockaddr_utils.cc",
+    "src/src/core/lib/address_utils/sockaddr_utils.h",
+    "src/src/core/lib/avl/avl.h",
+    "src/src/core/lib/backoff/backoff.cc",
+    "src/src/core/lib/backoff/backoff.h",
+    "src/src/core/lib/channel/call_finalization.h",
+    "src/src/core/lib/channel/call_tracer.h",
+    "src/src/core/lib/channel/channel_args.cc",
+    "src/src/core/lib/channel/channel_args.h",
+    "src/src/core/lib/channel/channel_args_preconditioning.cc",
+    "src/src/core/lib/channel/channel_args_preconditioning.h",
+    "src/src/core/lib/channel/channel_fwd.h",
+    "src/src/core/lib/channel/channel_stack.cc",
+    "src/src/core/lib/channel/channel_stack.h",
+    "src/src/core/lib/channel/channel_stack_builder.cc",
+    "src/src/core/lib/channel/channel_stack_builder.h",
+    "src/src/core/lib/channel/channel_stack_builder_impl.cc",
+    "src/src/core/lib/channel/channel_stack_builder_impl.h",
+    "src/src/core/lib/channel/channel_trace.cc",
+    "src/src/core/lib/channel/channel_trace.h",
+    "src/src/core/lib/channel/channelz.cc",
+    "src/src/core/lib/channel/channelz.h",
+    "src/src/core/lib/channel/channelz_registry.cc",
+    "src/src/core/lib/channel/channelz_registry.h",
+    "src/src/core/lib/channel/connected_channel.cc",
+    "src/src/core/lib/channel/connected_channel.h",
+    "src/src/core/lib/channel/context.h",
+    "src/src/core/lib/channel/promise_based_filter.cc",
+    "src/src/core/lib/channel/promise_based_filter.h",
+    "src/src/core/lib/channel/status_util.cc",
+    "src/src/core/lib/channel/status_util.h",
+    "src/src/core/lib/compression/compression.cc",
+    "src/src/core/lib/compression/compression_internal.cc",
+    "src/src/core/lib/compression/compression_internal.h",
+    "src/src/core/lib/compression/message_compress.cc",
+    "src/src/core/lib/compression/message_compress.h",
+    "src/src/core/lib/config/core_configuration.cc",
+    "src/src/core/lib/config/core_configuration.h",
+    "src/src/core/lib/debug/event_log.cc",
+    "src/src/core/lib/debug/event_log.h",
+    "src/src/core/lib/debug/histogram_view.cc",
+    "src/src/core/lib/debug/histogram_view.h",
+    "src/src/core/lib/debug/stats.cc",
+    "src/src/core/lib/debug/stats.h",
+    "src/src/core/lib/debug/stats_data.cc",
+    "src/src/core/lib/debug/stats_data.h",
+    "src/src/core/lib/debug/trace.cc",
+    "src/src/core/lib/debug/trace.h",
+    "src/src/core/lib/event_engine/channel_args_endpoint_config.cc",
+    "src/src/core/lib/event_engine/channel_args_endpoint_config.h",
+    "src/src/core/lib/event_engine/common_closures.h",
+    "src/src/core/lib/event_engine/default_event_engine.cc",
+    "src/src/core/lib/event_engine/default_event_engine.h",
+    "src/src/core/lib/event_engine/default_event_engine_factory.cc",
+    "src/src/core/lib/event_engine/default_event_engine_factory.h",
+    "src/src/core/lib/event_engine/event_engine.cc",
+    "src/src/core/lib/event_engine/executor/executor.h",
+    "src/src/core/lib/event_engine/forkable.cc",
+    "src/src/core/lib/event_engine/forkable.h",
+    "src/src/core/lib/event_engine/handle_containers.h",
+    "src/src/core/lib/event_engine/memory_allocator.cc",
+    "src/src/core/lib/event_engine/poller.h",
+    "src/src/core/lib/event_engine/posix.h",
+    "src/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc",
+    "src/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h",
+    "src/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc",
+    "src/src/core/lib/event_engine/posix_engine/ev_poll_posix.h",
+    "src/src/core/lib/event_engine/posix_engine/event_poller.h",
+    "src/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc",
+    "src/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h",
+    "src/src/core/lib/event_engine/posix_engine/internal_errqueue.cc",
+    "src/src/core/lib/event_engine/posix_engine/internal_errqueue.h",
+    "src/src/core/lib/event_engine/posix_engine/lockfree_event.cc",
+    "src/src/core/lib/event_engine/posix_engine/lockfree_event.h",
+    "src/src/core/lib/event_engine/posix_engine/posix_endpoint.cc",
+    "src/src/core/lib/event_engine/posix_engine/posix_endpoint.h",
+    "src/src/core/lib/event_engine/posix_engine/posix_engine.cc",
+    "src/src/core/lib/event_engine/posix_engine/posix_engine.h",
+    "src/src/core/lib/event_engine/posix_engine/posix_engine_closure.h",
+    "src/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc",
+    "src/src/core/lib/event_engine/posix_engine/posix_engine_listener.h",
+    "src/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc",
+    "src/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h",
+    "src/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc",
+    "src/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h",
+    "src/src/core/lib/event_engine/posix_engine/timer.cc",
+    "src/src/core/lib/event_engine/posix_engine/timer.h",
+    "src/src/core/lib/event_engine/posix_engine/timer_heap.cc",
+    "src/src/core/lib/event_engine/posix_engine/timer_heap.h",
+    "src/src/core/lib/event_engine/posix_engine/timer_manager.cc",
+    "src/src/core/lib/event_engine/posix_engine/timer_manager.h",
+    "src/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc",
+    "src/src/core/lib/event_engine/posix_engine/traced_buffer_list.h",
+    "src/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc",
+    "src/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h",
+    "src/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc",
+    "src/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h",
+    "src/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h",
+    "src/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc",
+    "src/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h",
+    "src/src/core/lib/event_engine/resolved_address.cc",
+    "src/src/core/lib/event_engine/resolved_address_internal.h",
+    "src/src/core/lib/event_engine/shim.cc",
+    "src/src/core/lib/event_engine/shim.h",
+    "src/src/core/lib/event_engine/slice.cc",
+    "src/src/core/lib/event_engine/slice_buffer.cc",
+    "src/src/core/lib/event_engine/tcp_socket_utils.cc",
+    "src/src/core/lib/event_engine/tcp_socket_utils.h",
+    "src/src/core/lib/event_engine/thread_pool.cc",
+    "src/src/core/lib/event_engine/thread_pool.h",
+    "src/src/core/lib/event_engine/time_util.cc",
+    "src/src/core/lib/event_engine/time_util.h",
+    "src/src/core/lib/event_engine/trace.cc",
+    "src/src/core/lib/event_engine/trace.h",
+    "src/src/core/lib/event_engine/utils.cc",
+    "src/src/core/lib/event_engine/utils.h",
+    "src/src/core/lib/event_engine/windows/iocp.cc",
+    "src/src/core/lib/event_engine/windows/iocp.h",
+    "src/src/core/lib/event_engine/windows/win_socket.cc",
+    "src/src/core/lib/event_engine/windows/win_socket.h",
+    "src/src/core/lib/event_engine/windows/windows_endpoint.cc",
+    "src/src/core/lib/event_engine/windows/windows_endpoint.h",
+    "src/src/core/lib/event_engine/windows/windows_engine.cc",
+    "src/src/core/lib/event_engine/windows/windows_engine.h",
+    "src/src/core/lib/experiments/config.cc",
+    "src/src/core/lib/experiments/config.h",
+    "src/src/core/lib/experiments/experiments.cc",
+    "src/src/core/lib/experiments/experiments.h",
+    "src/src/core/lib/gpr/spinlock.h",
+    "src/src/core/lib/gprpp/atomic_utils.h",
+    "src/src/core/lib/gprpp/bitset.h",
+    "src/src/core/lib/gprpp/chunked_vector.h",
+    "src/src/core/lib/gprpp/cpp_impl_of.h",
+    "src/src/core/lib/gprpp/dual_ref_counted.h",
+    "src/src/core/lib/gprpp/load_file.cc",
+    "src/src/core/lib/gprpp/load_file.h",
+    "src/src/core/lib/gprpp/manual_constructor.h",
+    "src/src/core/lib/gprpp/match.h",
+    "src/src/core/lib/gprpp/notification.h",
+    "src/src/core/lib/gprpp/orphanable.h",
+    "src/src/core/lib/gprpp/overload.h",
+    "src/src/core/lib/gprpp/packed_table.h",
+    "src/src/core/lib/gprpp/per_cpu.h",
+    "src/src/core/lib/gprpp/ref_counted.h",
+    "src/src/core/lib/gprpp/ref_counted_ptr.h",
+    "src/src/core/lib/gprpp/single_set_ptr.h",
+    "src/src/core/lib/gprpp/sorted_pack.h",
+    "src/src/core/lib/gprpp/status_helper.cc",
+    "src/src/core/lib/gprpp/status_helper.h",
+    "src/src/core/lib/gprpp/table.h",
+    "src/src/core/lib/gprpp/time.cc",
+    "src/src/core/lib/gprpp/time.h",
+    "src/src/core/lib/gprpp/time_averaged_stats.cc",
+    "src/src/core/lib/gprpp/time_averaged_stats.h",
+    "src/src/core/lib/gprpp/unique_type_name.h",
+    "src/src/core/lib/gprpp/validation_errors.cc",
+    "src/src/core/lib/gprpp/validation_errors.h",
+    "src/src/core/lib/gprpp/work_serializer.cc",
+    "src/src/core/lib/gprpp/work_serializer.h",
+    "src/src/core/lib/handshaker/proxy_mapper.h",
+    "src/src/core/lib/handshaker/proxy_mapper_registry.cc",
+    "src/src/core/lib/handshaker/proxy_mapper_registry.h",
+    "src/src/core/lib/http/format_request.cc",
+    "src/src/core/lib/http/format_request.h",
+    "src/src/core/lib/http/httpcli.cc",
+    "src/src/core/lib/http/httpcli.h",
+    "src/src/core/lib/http/parser.cc",
+    "src/src/core/lib/http/parser.h",
+    "src/src/core/lib/iomgr/block_annotate.h",
+    "src/src/core/lib/iomgr/buffer_list.cc",
+    "src/src/core/lib/iomgr/buffer_list.h",
+    "src/src/core/lib/iomgr/call_combiner.cc",
+    "src/src/core/lib/iomgr/call_combiner.h",
+    "src/src/core/lib/iomgr/cfstream_handle.cc",
+    "src/src/core/lib/iomgr/cfstream_handle.h",
+    "src/src/core/lib/iomgr/closure.cc",
+    "src/src/core/lib/iomgr/closure.h",
+    "src/src/core/lib/iomgr/combiner.cc",
+    "src/src/core/lib/iomgr/combiner.h",
+    "src/src/core/lib/iomgr/dualstack_socket_posix.cc",
+    "src/src/core/lib/iomgr/dynamic_annotations.h",
+    "src/src/core/lib/iomgr/endpoint.cc",
+    "src/src/core/lib/iomgr/endpoint.h",
+    "src/src/core/lib/iomgr/endpoint_cfstream.cc",
+    "src/src/core/lib/iomgr/endpoint_cfstream.h",
+    "src/src/core/lib/iomgr/endpoint_pair.h",
+    "src/src/core/lib/iomgr/endpoint_pair_posix.cc",
+    "src/src/core/lib/iomgr/endpoint_pair_windows.cc",
+    "src/src/core/lib/iomgr/error.cc",
+    "src/src/core/lib/iomgr/error.h",
+    "src/src/core/lib/iomgr/error_cfstream.cc",
+    "src/src/core/lib/iomgr/error_cfstream.h",
+    "src/src/core/lib/iomgr/ev_apple.cc",
+    "src/src/core/lib/iomgr/ev_apple.h",
+    "src/src/core/lib/iomgr/ev_epoll1_linux.cc",
+    "src/src/core/lib/iomgr/ev_epoll1_linux.h",
+    "src/src/core/lib/iomgr/ev_poll_posix.cc",
+    "src/src/core/lib/iomgr/ev_poll_posix.h",
+    "src/src/core/lib/iomgr/ev_posix.cc",
+    "src/src/core/lib/iomgr/ev_posix.h",
+    "src/src/core/lib/iomgr/ev_windows.cc",
+    "src/src/core/lib/iomgr/event_engine_shims/closure.cc",
+    "src/src/core/lib/iomgr/event_engine_shims/closure.h",
+    "src/src/core/lib/iomgr/event_engine_shims/endpoint.cc",
+    "src/src/core/lib/iomgr/event_engine_shims/endpoint.h",
+    "src/src/core/lib/iomgr/event_engine_shims/tcp_client.cc",
+    "src/src/core/lib/iomgr/event_engine_shims/tcp_client.h",
+    "src/src/core/lib/iomgr/exec_ctx.cc",
+    "src/src/core/lib/iomgr/exec_ctx.h",
+    "src/src/core/lib/iomgr/executor.cc",
+    "src/src/core/lib/iomgr/executor.h",
+    "src/src/core/lib/iomgr/fork_posix.cc",
+    "src/src/core/lib/iomgr/fork_windows.cc",
+    "src/src/core/lib/iomgr/gethostname.h",
+    "src/src/core/lib/iomgr/gethostname_fallback.cc",
+    "src/src/core/lib/iomgr/gethostname_host_name_max.cc",
+    "src/src/core/lib/iomgr/gethostname_sysconf.cc",
+    "src/src/core/lib/iomgr/grpc_if_nametoindex.h",
+    "src/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc",
+    "src/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc",
+    "src/src/core/lib/iomgr/internal_errqueue.cc",
+    "src/src/core/lib/iomgr/internal_errqueue.h",
+    "src/src/core/lib/iomgr/iocp_windows.cc",
+    "src/src/core/lib/iomgr/iocp_windows.h",
+    "src/src/core/lib/iomgr/iomgr.cc",
+    "src/src/core/lib/iomgr/iomgr.h",
+    "src/src/core/lib/iomgr/iomgr_fwd.h",
+    "src/src/core/lib/iomgr/iomgr_internal.cc",
+    "src/src/core/lib/iomgr/iomgr_internal.h",
+    "src/src/core/lib/iomgr/iomgr_posix.cc",
+    "src/src/core/lib/iomgr/iomgr_posix_cfstream.cc",
+    "src/src/core/lib/iomgr/iomgr_windows.cc",
+    "src/src/core/lib/iomgr/load_file.cc",
+    "src/src/core/lib/iomgr/load_file.h",
+    "src/src/core/lib/iomgr/lockfree_event.cc",
+    "src/src/core/lib/iomgr/lockfree_event.h",
+    "src/src/core/lib/iomgr/nameser.h",
+    "src/src/core/lib/iomgr/polling_entity.cc",
+    "src/src/core/lib/iomgr/polling_entity.h",
+    "src/src/core/lib/iomgr/pollset.cc",
+    "src/src/core/lib/iomgr/pollset.h",
+    "src/src/core/lib/iomgr/pollset_set.cc",
+    "src/src/core/lib/iomgr/pollset_set.h",
+    "src/src/core/lib/iomgr/pollset_set_windows.cc",
+    "src/src/core/lib/iomgr/pollset_set_windows.h",
+    "src/src/core/lib/iomgr/pollset_windows.cc",
+    "src/src/core/lib/iomgr/pollset_windows.h",
+    "src/src/core/lib/iomgr/port.h",
+    "src/src/core/lib/iomgr/python_util.h",
+    "src/src/core/lib/iomgr/resolve_address.cc",
+    "src/src/core/lib/iomgr/resolve_address.h",
+    "src/src/core/lib/iomgr/resolve_address_impl.h",
+    "src/src/core/lib/iomgr/resolve_address_posix.cc",
+    "src/src/core/lib/iomgr/resolve_address_posix.h",
+    "src/src/core/lib/iomgr/resolve_address_windows.cc",
+    "src/src/core/lib/iomgr/resolve_address_windows.h",
+    "src/src/core/lib/iomgr/resolved_address.h",
+    "src/src/core/lib/iomgr/sockaddr.h",
+    "src/src/core/lib/iomgr/sockaddr_posix.h",
+    "src/src/core/lib/iomgr/sockaddr_utils_posix.cc",
+    "src/src/core/lib/iomgr/sockaddr_windows.h",
+    "src/src/core/lib/iomgr/socket_factory_posix.cc",
+    "src/src/core/lib/iomgr/socket_factory_posix.h",
+    "src/src/core/lib/iomgr/socket_mutator.cc",
+    "src/src/core/lib/iomgr/socket_mutator.h",
+    "src/src/core/lib/iomgr/socket_utils.h",
+    "src/src/core/lib/iomgr/socket_utils_common_posix.cc",
+    "src/src/core/lib/iomgr/socket_utils_linux.cc",
+    "src/src/core/lib/iomgr/socket_utils_posix.cc",
+    "src/src/core/lib/iomgr/socket_utils_posix.h",
+    "src/src/core/lib/iomgr/socket_utils_windows.cc",
+    "src/src/core/lib/iomgr/socket_windows.cc",
+    "src/src/core/lib/iomgr/socket_windows.h",
+    "src/src/core/lib/iomgr/systemd_utils.cc",
+    "src/src/core/lib/iomgr/systemd_utils.h",
+    "src/src/core/lib/iomgr/tcp_client.cc",
+    "src/src/core/lib/iomgr/tcp_client.h",
+    "src/src/core/lib/iomgr/tcp_client_cfstream.cc",
+    "src/src/core/lib/iomgr/tcp_client_posix.cc",
+    "src/src/core/lib/iomgr/tcp_client_posix.h",
+    "src/src/core/lib/iomgr/tcp_client_windows.cc",
+    "src/src/core/lib/iomgr/tcp_posix.cc",
+    "src/src/core/lib/iomgr/tcp_posix.h",
+    "src/src/core/lib/iomgr/tcp_server.cc",
+    "src/src/core/lib/iomgr/tcp_server.h",
+    "src/src/core/lib/iomgr/tcp_server_posix.cc",
+    "src/src/core/lib/iomgr/tcp_server_utils_posix.h",
+    "src/src/core/lib/iomgr/tcp_server_utils_posix_common.cc",
+    "src/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc",
+    "src/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc",
+    "src/src/core/lib/iomgr/tcp_server_windows.cc",
+    "src/src/core/lib/iomgr/tcp_windows.cc",
+    "src/src/core/lib/iomgr/tcp_windows.h",
+    "src/src/core/lib/iomgr/timer.cc",
+    "src/src/core/lib/iomgr/timer.h",
+    "src/src/core/lib/iomgr/timer_generic.cc",
+    "src/src/core/lib/iomgr/timer_generic.h",
+    "src/src/core/lib/iomgr/timer_heap.cc",
+    "src/src/core/lib/iomgr/timer_heap.h",
+    "src/src/core/lib/iomgr/timer_manager.cc",
+    "src/src/core/lib/iomgr/timer_manager.h",
+    "src/src/core/lib/iomgr/unix_sockets_posix.cc",
+    "src/src/core/lib/iomgr/unix_sockets_posix.h",
+    "src/src/core/lib/iomgr/unix_sockets_posix_noop.cc",
+    "src/src/core/lib/iomgr/wakeup_fd_eventfd.cc",
+    "src/src/core/lib/iomgr/wakeup_fd_nospecial.cc",
+    "src/src/core/lib/iomgr/wakeup_fd_pipe.cc",
+    "src/src/core/lib/iomgr/wakeup_fd_pipe.h",
+    "src/src/core/lib/iomgr/wakeup_fd_posix.cc",
+    "src/src/core/lib/iomgr/wakeup_fd_posix.h",
+    "src/src/core/lib/json/json.h",
+    "src/src/core/lib/json/json_args.h",
+    "src/src/core/lib/json/json_channel_args.h",
+    "src/src/core/lib/json/json_object_loader.cc",
+    "src/src/core/lib/json/json_object_loader.h",
+    "src/src/core/lib/json/json_reader.cc",
+    "src/src/core/lib/json/json_writer.cc",
+    "src/src/core/lib/load_balancing/lb_policy.cc",
+    "src/src/core/lib/load_balancing/lb_policy.h",
+    "src/src/core/lib/load_balancing/lb_policy_factory.h",
+    "src/src/core/lib/load_balancing/lb_policy_registry.cc",
+    "src/src/core/lib/load_balancing/lb_policy_registry.h",
+    "src/src/core/lib/load_balancing/subchannel_interface.h",
+    "src/src/core/lib/promise/activity.cc",
+    "src/src/core/lib/promise/activity.h",
+    "src/src/core/lib/promise/arena_promise.h",
+    "src/src/core/lib/promise/context.h",
+    "src/src/core/lib/promise/detail/basic_join.h",
+    "src/src/core/lib/promise/detail/basic_seq.h",
+    "src/src/core/lib/promise/detail/promise_factory.h",
+    "src/src/core/lib/promise/detail/promise_like.h",
+    "src/src/core/lib/promise/detail/status.h",
+    "src/src/core/lib/promise/detail/switch.h",
+    "src/src/core/lib/promise/exec_ctx_wakeup_scheduler.h",
+    "src/src/core/lib/promise/if.h",
+    "src/src/core/lib/promise/interceptor_list.h",
+    "src/src/core/lib/promise/intra_activity_waiter.h",
+    "src/src/core/lib/promise/latch.h",
+    "src/src/core/lib/promise/loop.h",
+    "src/src/core/lib/promise/map.h",
+    "src/src/core/lib/promise/pipe.h",
+    "src/src/core/lib/promise/poll.h",
+    "src/src/core/lib/promise/promise.h",
+    "src/src/core/lib/promise/race.h",
+    "src/src/core/lib/promise/seq.h",
+    "src/src/core/lib/promise/sleep.cc",
+    "src/src/core/lib/promise/sleep.h",
+    "src/src/core/lib/promise/trace.cc",
+    "src/src/core/lib/promise/trace.h",
+    "src/src/core/lib/promise/try_join.h",
+    "src/src/core/lib/promise/try_seq.h",
+    "src/src/core/lib/resolver/resolver.cc",
+    "src/src/core/lib/resolver/resolver.h",
+    "src/src/core/lib/resolver/resolver_factory.h",
+    "src/src/core/lib/resolver/resolver_registry.cc",
+    "src/src/core/lib/resolver/resolver_registry.h",
+    "src/src/core/lib/resolver/server_address.cc",
+    "src/src/core/lib/resolver/server_address.h",
+    "src/src/core/lib/resource_quota/api.cc",
+    "src/src/core/lib/resource_quota/api.h",
+    "src/src/core/lib/resource_quota/arena.cc",
+    "src/src/core/lib/resource_quota/arena.h",
+    "src/src/core/lib/resource_quota/memory_quota.cc",
+    "src/src/core/lib/resource_quota/memory_quota.h",
+    "src/src/core/lib/resource_quota/periodic_update.cc",
+    "src/src/core/lib/resource_quota/periodic_update.h",
+    "src/src/core/lib/resource_quota/resource_quota.cc",
+    "src/src/core/lib/resource_quota/resource_quota.h",
+    "src/src/core/lib/resource_quota/thread_quota.cc",
+    "src/src/core/lib/resource_quota/thread_quota.h",
+    "src/src/core/lib/resource_quota/trace.cc",
+    "src/src/core/lib/resource_quota/trace.h",
+    "src/src/core/lib/security/authorization/authorization_engine.h",
+    "src/src/core/lib/security/authorization/authorization_policy_provider.h",
+    "src/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc",
+    "src/src/core/lib/security/authorization/evaluate_args.cc",
+    "src/src/core/lib/security/authorization/evaluate_args.h",
+    "src/src/core/lib/security/authorization/grpc_server_authz_filter.cc",
+    "src/src/core/lib/security/authorization/grpc_server_authz_filter.h",
+    "src/src/core/lib/security/certificate_provider/certificate_provider_factory.h",
+    "src/src/core/lib/security/certificate_provider/certificate_provider_registry.cc",
+    "src/src/core/lib/security/certificate_provider/certificate_provider_registry.h",
+    "src/src/core/lib/security/context/security_context.cc",
+    "src/src/core/lib/security/context/security_context.h",
+    "src/src/core/lib/security/credentials/alts/check_gcp_environment.cc",
+    "src/src/core/lib/security/credentials/alts/check_gcp_environment.h",
+    "src/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc",
+    "src/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc",
+    "src/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc",
+    "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc",
+    "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc",
+    "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h",
+    "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc",
+    "src/src/core/lib/security/credentials/call_creds_util.cc",
+    "src/src/core/lib/security/credentials/call_creds_util.h",
+    "src/src/core/lib/security/credentials/channel_creds_registry.h",
+    "src/src/core/lib/security/credentials/composite/composite_credentials.cc",
+    "src/src/core/lib/security/credentials/composite/composite_credentials.h",
+    "src/src/core/lib/security/credentials/credentials.cc",
+    "src/src/core/lib/security/credentials/credentials.h",
+    "src/src/core/lib/security/credentials/fake/fake_credentials.cc",
+    "src/src/core/lib/security/credentials/fake/fake_credentials.h",
+    "src/src/core/lib/security/credentials/insecure/insecure_credentials.cc",
+    "src/src/core/lib/security/credentials/insecure/insecure_credentials.h",
+    "src/src/core/lib/security/credentials/plugin/plugin_credentials.cc",
+    "src/src/core/lib/security/credentials/plugin/plugin_credentials.h",
+    "src/src/core/lib/security/credentials/tls/tls_utils.cc",
+    "src/src/core/lib/security/credentials/tls/tls_utils.h",
+    "src/src/core/lib/security/security_connector/fake/fake_security_connector.cc",
+    "src/src/core/lib/security/security_connector/fake/fake_security_connector.h",
+    "src/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc",
+    "src/src/core/lib/security/security_connector/insecure/insecure_security_connector.h",
+    "src/src/core/lib/security/security_connector/load_system_roots.h",
+    "src/src/core/lib/security/security_connector/load_system_roots_fallback.cc",
+    "src/src/core/lib/security/security_connector/load_system_roots_supported.cc",
+    "src/src/core/lib/security/security_connector/load_system_roots_supported.h",
+    "src/src/core/lib/security/security_connector/security_connector.cc",
+    "src/src/core/lib/security/security_connector/security_connector.h",
+    "src/src/core/lib/security/transport/auth_filters.h",
+    "src/src/core/lib/security/transport/client_auth_filter.cc",
+    "src/src/core/lib/security/transport/secure_endpoint.cc",
+    "src/src/core/lib/security/transport/secure_endpoint.h",
+    "src/src/core/lib/security/transport/security_handshaker.cc",
+    "src/src/core/lib/security/transport/security_handshaker.h",
+    "src/src/core/lib/security/transport/server_auth_filter.cc",
+    "src/src/core/lib/security/transport/tsi_error.cc",
+    "src/src/core/lib/security/transport/tsi_error.h",
+    "src/src/core/lib/security/util/json_util.cc",
+    "src/src/core/lib/security/util/json_util.h",
+    "src/src/core/lib/service_config/service_config.h",
+    "src/src/core/lib/service_config/service_config_call_data.h",
+    "src/src/core/lib/service_config/service_config_impl.cc",
+    "src/src/core/lib/service_config/service_config_impl.h",
+    "src/src/core/lib/service_config/service_config_parser.cc",
+    "src/src/core/lib/service_config/service_config_parser.h",
+    "src/src/core/lib/slice/b64.cc",
+    "src/src/core/lib/slice/b64.h",
+    "src/src/core/lib/slice/percent_encoding.cc",
+    "src/src/core/lib/slice/percent_encoding.h",
+    "src/src/core/lib/slice/slice.cc",
+    "src/src/core/lib/slice/slice.h",
+    "src/src/core/lib/slice/slice_buffer.cc",
+    "src/src/core/lib/slice/slice_buffer.h",
+    "src/src/core/lib/slice/slice_internal.h",
+    "src/src/core/lib/slice/slice_refcount.cc",
+    "src/src/core/lib/slice/slice_refcount.h",
+    "src/src/core/lib/slice/slice_string_helpers.cc",
+    "src/src/core/lib/slice/slice_string_helpers.h",
+    "src/src/core/lib/surface/api_trace.cc",
+    "src/src/core/lib/surface/api_trace.h",
+    "src/src/core/lib/surface/builtins.cc",
+    "src/src/core/lib/surface/builtins.h",
+    "src/src/core/lib/surface/byte_buffer.cc",
+    "src/src/core/lib/surface/byte_buffer_reader.cc",
+    "src/src/core/lib/surface/call.cc",
+    "src/src/core/lib/surface/call.h",
+    "src/src/core/lib/surface/call_details.cc",
+    "src/src/core/lib/surface/call_log_batch.cc",
+    "src/src/core/lib/surface/call_test_only.h",
+    "src/src/core/lib/surface/call_trace.cc",
+    "src/src/core/lib/surface/call_trace.h",
+    "src/src/core/lib/surface/channel.cc",
+    "src/src/core/lib/surface/channel.h",
+    "src/src/core/lib/surface/channel_init.cc",
+    "src/src/core/lib/surface/channel_init.h",
+    "src/src/core/lib/surface/channel_ping.cc",
+    "src/src/core/lib/surface/channel_stack_type.cc",
+    "src/src/core/lib/surface/channel_stack_type.h",
+    "src/src/core/lib/surface/completion_queue.cc",
+    "src/src/core/lib/surface/completion_queue.h",
+    "src/src/core/lib/surface/completion_queue_factory.cc",
+    "src/src/core/lib/surface/completion_queue_factory.h",
+    "src/src/core/lib/surface/event_string.cc",
+    "src/src/core/lib/surface/event_string.h",
+    "src/src/core/lib/surface/init.cc",
+    "src/src/core/lib/surface/init.h",
+    "src/src/core/lib/surface/init_internally.cc",
+    "src/src/core/lib/surface/init_internally.h",
+    "src/src/core/lib/surface/lame_client.cc",
+    "src/src/core/lib/surface/lame_client.h",
+    "src/src/core/lib/surface/metadata_array.cc",
+    "src/src/core/lib/surface/server.cc",
+    "src/src/core/lib/surface/server.h",
+    "src/src/core/lib/surface/validate_metadata.cc",
+    "src/src/core/lib/surface/validate_metadata.h",
+    "src/src/core/lib/surface/version.cc",
+    "src/src/core/lib/transport/bdp_estimator.cc",
+    "src/src/core/lib/transport/bdp_estimator.h",
+    "src/src/core/lib/transport/connectivity_state.cc",
+    "src/src/core/lib/transport/connectivity_state.h",
+    "src/src/core/lib/transport/error_utils.cc",
+    "src/src/core/lib/transport/error_utils.h",
+    "src/src/core/lib/transport/handshaker.cc",
+    "src/src/core/lib/transport/handshaker.h",
+    "src/src/core/lib/transport/handshaker_factory.h",
+    "src/src/core/lib/transport/handshaker_registry.cc",
+    "src/src/core/lib/transport/handshaker_registry.h",
+    "src/src/core/lib/transport/http2_errors.h",
+    "src/src/core/lib/transport/http_connect_handshaker.cc",
+    "src/src/core/lib/transport/http_connect_handshaker.h",
+    "src/src/core/lib/transport/metadata_batch.cc",
+    "src/src/core/lib/transport/metadata_batch.h",
+    "src/src/core/lib/transport/parsed_metadata.cc",
+    "src/src/core/lib/transport/parsed_metadata.h",
+    "src/src/core/lib/transport/pid_controller.cc",
+    "src/src/core/lib/transport/pid_controller.h",
+    "src/src/core/lib/transport/status_conversion.cc",
+    "src/src/core/lib/transport/status_conversion.h",
+    "src/src/core/lib/transport/tcp_connect_handshaker.cc",
+    "src/src/core/lib/transport/tcp_connect_handshaker.h",
+    "src/src/core/lib/transport/timeout_encoding.cc",
+    "src/src/core/lib/transport/timeout_encoding.h",
+    "src/src/core/lib/transport/transport.cc",
+    "src/src/core/lib/transport/transport.h",
+    "src/src/core/lib/transport/transport_fwd.h",
+    "src/src/core/lib/transport/transport_impl.h",
+    "src/src/core/lib/transport/transport_op_string.cc",
+    "src/src/core/lib/uri/uri_parser.cc",
+    "src/src/core/lib/uri/uri_parser.h",
+    "src/src/core/plugin_registry/grpc_plugin_registry.cc",
+    "src/src/core/plugin_registry/grpc_plugin_registry_noextra.cc",
+    "src/src/core/tsi/alts/handshaker/transport_security_common_api.cc",
+    "src/src/core/tsi/alts/handshaker/transport_security_common_api.h",
+    "src/src/core/tsi/fake_transport_security.cc",
+    "src/src/core/tsi/fake_transport_security.h",
+    "src/src/core/tsi/local_transport_security.cc",
+    "src/src/core/tsi/local_transport_security.h",
+    "src/src/core/tsi/transport_security.cc",
+    "src/src/core/tsi/transport_security.h",
+    "src/src/core/tsi/transport_security_grpc.cc",
+    "src/src/core/tsi/transport_security_grpc.h",
+    "src/src/core/tsi/transport_security_interface.h",
+    "src/third_party/xxhash/xxhash.h",
+  ]
+  public_deps = [
+    ":absl_cleanup_cleanup",
+    ":absl_container_flat_hash_map",
+    ":absl_container_flat_hash_set",
+    ":absl_container_inlined_vector",
+    ":absl_functional_any_invocable",
+    ":absl_functional_bind_front",
+    ":absl_functional_function_ref",
+    ":absl_hash_hash",
+    ":absl_meta_type_traits",
+    ":absl_status_statusor",
+    ":absl_types_span",
+    ":absl_utility_utility",
+    ":address_sorting",
+    ":gpr",
+    ":upb",
+  ]
+  public_configs = [ "..:grpc_internal_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+static_library("grpc++") {
+  sources = [
+    "src/src/core/ext/transport/binder/client/binder_connector.cc",
+    "src/src/core/ext/transport/binder/client/binder_connector.h",
+    "src/src/core/ext/transport/binder/client/channel_create.cc",
+    "src/src/core/ext/transport/binder/client/channel_create_impl.cc",
+    "src/src/core/ext/transport/binder/client/channel_create_impl.h",
+    "src/src/core/ext/transport/binder/client/connection_id_generator.cc",
+    "src/src/core/ext/transport/binder/client/connection_id_generator.h",
+    "src/src/core/ext/transport/binder/client/endpoint_binder_pool.cc",
+    "src/src/core/ext/transport/binder/client/endpoint_binder_pool.h",
+    "src/src/core/ext/transport/binder/client/jni_utils.cc",
+    "src/src/core/ext/transport/binder/client/jni_utils.h",
+    "src/src/core/ext/transport/binder/client/security_policy_setting.cc",
+    "src/src/core/ext/transport/binder/client/security_policy_setting.h",
+    "src/src/core/ext/transport/binder/security_policy/binder_security_policy.cc",
+    "src/src/core/ext/transport/binder/server/binder_server.cc",
+    "src/src/core/ext/transport/binder/server/binder_server.h",
+    "src/src/core/ext/transport/binder/server/binder_server_credentials.cc",
+    "src/src/core/ext/transport/binder/transport/binder_stream.h",
+    "src/src/core/ext/transport/binder/transport/binder_transport.cc",
+    "src/src/core/ext/transport/binder/transport/binder_transport.h",
+    "src/src/core/ext/transport/binder/utils/binder_auto_utils.h",
+    "src/src/core/ext/transport/binder/utils/ndk_binder.cc",
+    "src/src/core/ext/transport/binder/utils/ndk_binder.h",
+    "src/src/core/ext/transport/binder/utils/transport_stream_receiver.h",
+    "src/src/core/ext/transport/binder/utils/transport_stream_receiver_impl.cc",
+    "src/src/core/ext/transport/binder/utils/transport_stream_receiver_impl.h",
+    "src/src/core/ext/transport/binder/wire_format/binder.h",
+    "src/src/core/ext/transport/binder/wire_format/binder_android.cc",
+    "src/src/core/ext/transport/binder/wire_format/binder_android.h",
+    "src/src/core/ext/transport/binder/wire_format/binder_constants.cc",
+    "src/src/core/ext/transport/binder/wire_format/binder_constants.h",
+    "src/src/core/ext/transport/binder/wire_format/transaction.cc",
+    "src/src/core/ext/transport/binder/wire_format/transaction.h",
+    "src/src/core/ext/transport/binder/wire_format/wire_reader.h",
+    "src/src/core/ext/transport/binder/wire_format/wire_reader_impl.cc",
+    "src/src/core/ext/transport/binder/wire_format/wire_reader_impl.h",
+    "src/src/core/ext/transport/binder/wire_format/wire_writer.cc",
+    "src/src/core/ext/transport/binder/wire_format/wire_writer.h",
+    "src/src/cpp/client/channel_cc.cc",
+    "src/src/cpp/client/client_callback.cc",
+    "src/src/cpp/client/client_context.cc",
+    "src/src/cpp/client/client_interceptor.cc",
+    "src/src/cpp/client/create_channel.cc",
+    "src/src/cpp/client/create_channel_internal.cc",
+    "src/src/cpp/client/create_channel_internal.h",
+    "src/src/cpp/client/create_channel_posix.cc",
+    "src/src/cpp/client/insecure_credentials.cc",
+    "src/src/cpp/client/secure_credentials.cc",
+    "src/src/cpp/client/secure_credentials.h",
+    "src/src/cpp/client/xds_credentials.cc",
+    "src/src/cpp/common/alarm.cc",
+    "src/src/cpp/common/auth_property_iterator.cc",
+    "src/src/cpp/common/channel_arguments.cc",
+    "src/src/cpp/common/channel_filter.cc",
+    "src/src/cpp/common/channel_filter.h",
+    "src/src/cpp/common/completion_queue_cc.cc",
+    "src/src/cpp/common/resource_quota_cc.cc",
+    "src/src/cpp/common/rpc_method.cc",
+    "src/src/cpp/common/secure_auth_context.cc",
+    "src/src/cpp/common/secure_auth_context.h",
+    "src/src/cpp/common/secure_channel_arguments.cc",
+    "src/src/cpp/common/secure_create_auth_context.cc",
+    "src/src/cpp/common/tls_certificate_provider.cc",
+    "src/src/cpp/common/tls_certificate_verifier.cc",
+    "src/src/cpp/common/tls_credentials_options.cc",
+    "src/src/cpp/common/validate_service_config.cc",
+    "src/src/cpp/common/version_cc.cc",
+    "src/src/cpp/server/async_generic_service.cc",
+    "src/src/cpp/server/channel_argument_option.cc",
+    "src/src/cpp/server/create_default_thread_pool.cc",
+    "src/src/cpp/server/dynamic_thread_pool.h",
+    "src/src/cpp/server/external_connection_acceptor_impl.cc",
+    "src/src/cpp/server/external_connection_acceptor_impl.h",
+    "src/src/cpp/server/health/default_health_check_service.cc",
+    "src/src/cpp/server/health/default_health_check_service.h",
+    "src/src/cpp/server/health/health_check_service.cc",
+    "src/src/cpp/server/health/health_check_service_server_builder_option.cc",
+    "src/src/cpp/server/insecure_server_credentials.cc",
+    "src/src/cpp/server/orca/call_metric_recorder.cc",
+    "src/src/cpp/server/secure_server_credentials.cc",
+    "src/src/cpp/server/secure_server_credentials.h",
+    "src/src/cpp/server/server_builder.cc",
+    "src/src/cpp/server/server_callback.cc",
+    "src/src/cpp/server/server_cc.cc",
+    "src/src/cpp/server/server_context.cc",
+    "src/src/cpp/server/server_posix.cc",
+    "src/src/cpp/server/thread_pool_interface.h",
+    "src/src/cpp/server/xds_server_credentials.cc",
+    "src/src/cpp/thread_manager/thread_manager.cc",
+    "src/src/cpp/thread_manager/thread_manager.h",
+    "src/src/cpp/util/byte_buffer_cc.cc",
+    "src/src/cpp/util/status.cc",
+    "src/src/cpp/util/string_ref.cc",
+    "src/src/cpp/util/time_cc.cc",
+  ]
+  public_deps = [ ":grpc" ]
+  public_configs = [ "..:grpc_internal_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("grpc++_alts") {
+  sources = [
+    "src/src/cpp/common/alts_context.cc",
+    "src/src/cpp/common/alts_util.cc",
+  ]
+  public_deps = [ ":grpc++" ]
+  public_configs = [ "..:grpc_internal_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("grpc++_error_details") {
+  sources = [ "src/src/cpp/util/error_details.cc" ]
+  public_deps = [ ":grpc++" ]
+  public_configs = [ "..:grpc_internal_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("grpc++_unsecure") {
+  sources = [
+    "src/src/cpp/client/channel_cc.cc",
+    "src/src/cpp/client/client_callback.cc",
+    "src/src/cpp/client/client_context.cc",
+    "src/src/cpp/client/client_interceptor.cc",
+    "src/src/cpp/client/create_channel.cc",
+    "src/src/cpp/client/create_channel_internal.cc",
+    "src/src/cpp/client/create_channel_internal.h",
+    "src/src/cpp/client/create_channel_posix.cc",
+    "src/src/cpp/client/insecure_credentials.cc",
+    "src/src/cpp/common/alarm.cc",
+    "src/src/cpp/common/channel_arguments.cc",
+    "src/src/cpp/common/channel_filter.cc",
+    "src/src/cpp/common/channel_filter.h",
+    "src/src/cpp/common/completion_queue_cc.cc",
+    "src/src/cpp/common/insecure_create_auth_context.cc",
+    "src/src/cpp/common/resource_quota_cc.cc",
+    "src/src/cpp/common/rpc_method.cc",
+    "src/src/cpp/common/validate_service_config.cc",
+    "src/src/cpp/common/version_cc.cc",
+    "src/src/cpp/server/async_generic_service.cc",
+    "src/src/cpp/server/channel_argument_option.cc",
+    "src/src/cpp/server/create_default_thread_pool.cc",
+    "src/src/cpp/server/dynamic_thread_pool.h",
+    "src/src/cpp/server/external_connection_acceptor_impl.cc",
+    "src/src/cpp/server/external_connection_acceptor_impl.h",
+    "src/src/cpp/server/health/default_health_check_service.cc",
+    "src/src/cpp/server/health/default_health_check_service.h",
+    "src/src/cpp/server/health/health_check_service.cc",
+    "src/src/cpp/server/health/health_check_service_server_builder_option.cc",
+    "src/src/cpp/server/insecure_server_credentials.cc",
+    "src/src/cpp/server/orca/call_metric_recorder.cc",
+    "src/src/cpp/server/server_builder.cc",
+    "src/src/cpp/server/server_callback.cc",
+    "src/src/cpp/server/server_cc.cc",
+    "src/src/cpp/server/server_context.cc",
+    "src/src/cpp/server/server_posix.cc",
+    "src/src/cpp/server/thread_pool_interface.h",
+    "src/src/cpp/thread_manager/thread_manager.cc",
+    "src/src/cpp/thread_manager/thread_manager.h",
+    "src/src/cpp/util/byte_buffer_cc.cc",
+    "src/src/cpp/util/status.cc",
+    "src/src/cpp/util/string_ref.cc",
+    "src/src/cpp/util/time_cc.cc",
+  ]
+  public_deps = [ ":grpc_unsecure" ]
+  public_configs = [ "..:grpc_internal_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("grpc_authorization_provider") {
+  sources = [
+    "src/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h",
+    "src/src/core/ext/upb-generated/google/protobuf/any.upb.c",
+    "src/src/core/ext/upb-generated/google/protobuf/any.upb.h",
+    "src/src/core/ext/upb-generated/google/rpc/status.upb.c",
+    "src/src/core/ext/upb-generated/google/rpc/status.upb.h",
+    "src/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c",
+    "src/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h",
+    "src/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c",
+    "src/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h",
+    "src/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c",
+    "src/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h",
+    "src/src/core/lib/address_utils/parse_address.cc",
+    "src/src/core/lib/address_utils/parse_address.h",
+    "src/src/core/lib/address_utils/sockaddr_utils.cc",
+    "src/src/core/lib/address_utils/sockaddr_utils.h",
+    "src/src/core/lib/avl/avl.h",
+    "src/src/core/lib/channel/call_finalization.h",
+    "src/src/core/lib/channel/call_tracer.h",
+    "src/src/core/lib/channel/channel_args.cc",
+    "src/src/core/lib/channel/channel_args.h",
+    "src/src/core/lib/channel/channel_args_preconditioning.cc",
+    "src/src/core/lib/channel/channel_args_preconditioning.h",
+    "src/src/core/lib/channel/channel_fwd.h",
+    "src/src/core/lib/channel/channel_stack.cc",
+    "src/src/core/lib/channel/channel_stack.h",
+    "src/src/core/lib/channel/channel_stack_builder.cc",
+    "src/src/core/lib/channel/channel_stack_builder.h",
+    "src/src/core/lib/channel/channel_stack_builder_impl.cc",
+    "src/src/core/lib/channel/channel_stack_builder_impl.h",
+    "src/src/core/lib/channel/channel_trace.cc",
+    "src/src/core/lib/channel/channel_trace.h",
+    "src/src/core/lib/channel/channelz.cc",
+    "src/src/core/lib/channel/channelz.h",
+    "src/src/core/lib/channel/channelz_registry.cc",
+    "src/src/core/lib/channel/channelz_registry.h",
+    "src/src/core/lib/channel/connected_channel.cc",
+    "src/src/core/lib/channel/connected_channel.h",
+    "src/src/core/lib/channel/context.h",
+    "src/src/core/lib/channel/promise_based_filter.cc",
+    "src/src/core/lib/channel/promise_based_filter.h",
+    "src/src/core/lib/channel/status_util.cc",
+    "src/src/core/lib/channel/status_util.h",
+    "src/src/core/lib/compression/compression.cc",
+    "src/src/core/lib/compression/compression_internal.cc",
+    "src/src/core/lib/compression/compression_internal.h",
+    "src/src/core/lib/compression/message_compress.cc",
+    "src/src/core/lib/compression/message_compress.h",
+    "src/src/core/lib/config/core_configuration.cc",
+    "src/src/core/lib/config/core_configuration.h",
+    "src/src/core/lib/debug/event_log.cc",
+    "src/src/core/lib/debug/event_log.h",
+    "src/src/core/lib/debug/histogram_view.cc",
+    "src/src/core/lib/debug/histogram_view.h",
+    "src/src/core/lib/debug/stats.cc",
+    "src/src/core/lib/debug/stats.h",
+    "src/src/core/lib/debug/stats_data.cc",
+    "src/src/core/lib/debug/stats_data.h",
+    "src/src/core/lib/debug/trace.cc",
+    "src/src/core/lib/debug/trace.h",
+    "src/src/core/lib/event_engine/channel_args_endpoint_config.cc",
+    "src/src/core/lib/event_engine/channel_args_endpoint_config.h",
+    "src/src/core/lib/event_engine/common_closures.h",
+    "src/src/core/lib/event_engine/default_event_engine.cc",
+    "src/src/core/lib/event_engine/default_event_engine.h",
+    "src/src/core/lib/event_engine/default_event_engine_factory.cc",
+    "src/src/core/lib/event_engine/default_event_engine_factory.h",
+    "src/src/core/lib/event_engine/event_engine.cc",
+    "src/src/core/lib/event_engine/executor/executor.h",
+    "src/src/core/lib/event_engine/forkable.cc",
+    "src/src/core/lib/event_engine/forkable.h",
+    "src/src/core/lib/event_engine/handle_containers.h",
+    "src/src/core/lib/event_engine/memory_allocator.cc",
+    "src/src/core/lib/event_engine/poller.h",
+    "src/src/core/lib/event_engine/posix.h",
+    "src/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc",
+    "src/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h",
+    "src/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc",
+    "src/src/core/lib/event_engine/posix_engine/ev_poll_posix.h",
+    "src/src/core/lib/event_engine/posix_engine/event_poller.h",
+    "src/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc",
+    "src/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h",
+    "src/src/core/lib/event_engine/posix_engine/internal_errqueue.cc",
+    "src/src/core/lib/event_engine/posix_engine/internal_errqueue.h",
+    "src/src/core/lib/event_engine/posix_engine/lockfree_event.cc",
+    "src/src/core/lib/event_engine/posix_engine/lockfree_event.h",
+    "src/src/core/lib/event_engine/posix_engine/posix_endpoint.cc",
+    "src/src/core/lib/event_engine/posix_engine/posix_endpoint.h",
+    "src/src/core/lib/event_engine/posix_engine/posix_engine.cc",
+    "src/src/core/lib/event_engine/posix_engine/posix_engine.h",
+    "src/src/core/lib/event_engine/posix_engine/posix_engine_closure.h",
+    "src/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc",
+    "src/src/core/lib/event_engine/posix_engine/posix_engine_listener.h",
+    "src/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc",
+    "src/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h",
+    "src/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc",
+    "src/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h",
+    "src/src/core/lib/event_engine/posix_engine/timer.cc",
+    "src/src/core/lib/event_engine/posix_engine/timer.h",
+    "src/src/core/lib/event_engine/posix_engine/timer_heap.cc",
+    "src/src/core/lib/event_engine/posix_engine/timer_heap.h",
+    "src/src/core/lib/event_engine/posix_engine/timer_manager.cc",
+    "src/src/core/lib/event_engine/posix_engine/timer_manager.h",
+    "src/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc",
+    "src/src/core/lib/event_engine/posix_engine/traced_buffer_list.h",
+    "src/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc",
+    "src/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h",
+    "src/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc",
+    "src/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h",
+    "src/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h",
+    "src/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc",
+    "src/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h",
+    "src/src/core/lib/event_engine/resolved_address.cc",
+    "src/src/core/lib/event_engine/resolved_address_internal.h",
+    "src/src/core/lib/event_engine/shim.cc",
+    "src/src/core/lib/event_engine/shim.h",
+    "src/src/core/lib/event_engine/slice.cc",
+    "src/src/core/lib/event_engine/slice_buffer.cc",
+    "src/src/core/lib/event_engine/tcp_socket_utils.cc",
+    "src/src/core/lib/event_engine/tcp_socket_utils.h",
+    "src/src/core/lib/event_engine/thread_pool.cc",
+    "src/src/core/lib/event_engine/thread_pool.h",
+    "src/src/core/lib/event_engine/time_util.cc",
+    "src/src/core/lib/event_engine/time_util.h",
+    "src/src/core/lib/event_engine/trace.cc",
+    "src/src/core/lib/event_engine/trace.h",
+    "src/src/core/lib/event_engine/utils.cc",
+    "src/src/core/lib/event_engine/utils.h",
+    "src/src/core/lib/event_engine/windows/iocp.cc",
+    "src/src/core/lib/event_engine/windows/iocp.h",
+    "src/src/core/lib/event_engine/windows/win_socket.cc",
+    "src/src/core/lib/event_engine/windows/win_socket.h",
+    "src/src/core/lib/event_engine/windows/windows_endpoint.cc",
+    "src/src/core/lib/event_engine/windows/windows_endpoint.h",
+    "src/src/core/lib/event_engine/windows/windows_engine.cc",
+    "src/src/core/lib/event_engine/windows/windows_engine.h",
+    "src/src/core/lib/experiments/config.cc",
+    "src/src/core/lib/experiments/config.h",
+    "src/src/core/lib/experiments/experiments.cc",
+    "src/src/core/lib/experiments/experiments.h",
+    "src/src/core/lib/gpr/spinlock.h",
+    "src/src/core/lib/gprpp/atomic_utils.h",
+    "src/src/core/lib/gprpp/bitset.h",
+    "src/src/core/lib/gprpp/chunked_vector.h",
+    "src/src/core/lib/gprpp/cpp_impl_of.h",
+    "src/src/core/lib/gprpp/dual_ref_counted.h",
+    "src/src/core/lib/gprpp/load_file.cc",
+    "src/src/core/lib/gprpp/load_file.h",
+    "src/src/core/lib/gprpp/manual_constructor.h",
+    "src/src/core/lib/gprpp/match.h",
+    "src/src/core/lib/gprpp/notification.h",
+    "src/src/core/lib/gprpp/orphanable.h",
+    "src/src/core/lib/gprpp/overload.h",
+    "src/src/core/lib/gprpp/packed_table.h",
+    "src/src/core/lib/gprpp/per_cpu.h",
+    "src/src/core/lib/gprpp/ref_counted.h",
+    "src/src/core/lib/gprpp/ref_counted_ptr.h",
+    "src/src/core/lib/gprpp/sorted_pack.h",
+    "src/src/core/lib/gprpp/status_helper.cc",
+    "src/src/core/lib/gprpp/status_helper.h",
+    "src/src/core/lib/gprpp/table.h",
+    "src/src/core/lib/gprpp/time.cc",
+    "src/src/core/lib/gprpp/time.h",
+    "src/src/core/lib/gprpp/time_averaged_stats.cc",
+    "src/src/core/lib/gprpp/time_averaged_stats.h",
+    "src/src/core/lib/gprpp/unique_type_name.h",
+    "src/src/core/lib/gprpp/validation_errors.cc",
+    "src/src/core/lib/gprpp/validation_errors.h",
+    "src/src/core/lib/gprpp/work_serializer.cc",
+    "src/src/core/lib/gprpp/work_serializer.h",
+    "src/src/core/lib/handshaker/proxy_mapper.h",
+    "src/src/core/lib/handshaker/proxy_mapper_registry.cc",
+    "src/src/core/lib/handshaker/proxy_mapper_registry.h",
+    "src/src/core/lib/iomgr/block_annotate.h",
+    "src/src/core/lib/iomgr/buffer_list.cc",
+    "src/src/core/lib/iomgr/buffer_list.h",
+    "src/src/core/lib/iomgr/call_combiner.cc",
+    "src/src/core/lib/iomgr/call_combiner.h",
+    "src/src/core/lib/iomgr/cfstream_handle.cc",
+    "src/src/core/lib/iomgr/cfstream_handle.h",
+    "src/src/core/lib/iomgr/closure.cc",
+    "src/src/core/lib/iomgr/closure.h",
+    "src/src/core/lib/iomgr/combiner.cc",
+    "src/src/core/lib/iomgr/combiner.h",
+    "src/src/core/lib/iomgr/dualstack_socket_posix.cc",
+    "src/src/core/lib/iomgr/dynamic_annotations.h",
+    "src/src/core/lib/iomgr/endpoint.cc",
+    "src/src/core/lib/iomgr/endpoint.h",
+    "src/src/core/lib/iomgr/endpoint_cfstream.cc",
+    "src/src/core/lib/iomgr/endpoint_cfstream.h",
+    "src/src/core/lib/iomgr/endpoint_pair.h",
+    "src/src/core/lib/iomgr/endpoint_pair_posix.cc",
+    "src/src/core/lib/iomgr/endpoint_pair_windows.cc",
+    "src/src/core/lib/iomgr/error.cc",
+    "src/src/core/lib/iomgr/error.h",
+    "src/src/core/lib/iomgr/error_cfstream.cc",
+    "src/src/core/lib/iomgr/error_cfstream.h",
+    "src/src/core/lib/iomgr/ev_apple.cc",
+    "src/src/core/lib/iomgr/ev_apple.h",
+    "src/src/core/lib/iomgr/ev_epoll1_linux.cc",
+    "src/src/core/lib/iomgr/ev_epoll1_linux.h",
+    "src/src/core/lib/iomgr/ev_poll_posix.cc",
+    "src/src/core/lib/iomgr/ev_poll_posix.h",
+    "src/src/core/lib/iomgr/ev_posix.cc",
+    "src/src/core/lib/iomgr/ev_posix.h",
+    "src/src/core/lib/iomgr/ev_windows.cc",
+    "src/src/core/lib/iomgr/event_engine_shims/closure.cc",
+    "src/src/core/lib/iomgr/event_engine_shims/closure.h",
+    "src/src/core/lib/iomgr/event_engine_shims/endpoint.cc",
+    "src/src/core/lib/iomgr/event_engine_shims/endpoint.h",
+    "src/src/core/lib/iomgr/event_engine_shims/tcp_client.cc",
+    "src/src/core/lib/iomgr/event_engine_shims/tcp_client.h",
+    "src/src/core/lib/iomgr/exec_ctx.cc",
+    "src/src/core/lib/iomgr/exec_ctx.h",
+    "src/src/core/lib/iomgr/executor.cc",
+    "src/src/core/lib/iomgr/executor.h",
+    "src/src/core/lib/iomgr/fork_posix.cc",
+    "src/src/core/lib/iomgr/fork_windows.cc",
+    "src/src/core/lib/iomgr/gethostname.h",
+    "src/src/core/lib/iomgr/gethostname_fallback.cc",
+    "src/src/core/lib/iomgr/gethostname_host_name_max.cc",
+    "src/src/core/lib/iomgr/gethostname_sysconf.cc",
+    "src/src/core/lib/iomgr/grpc_if_nametoindex.h",
+    "src/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc",
+    "src/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc",
+    "src/src/core/lib/iomgr/internal_errqueue.cc",
+    "src/src/core/lib/iomgr/internal_errqueue.h",
+    "src/src/core/lib/iomgr/iocp_windows.cc",
+    "src/src/core/lib/iomgr/iocp_windows.h",
+    "src/src/core/lib/iomgr/iomgr.cc",
+    "src/src/core/lib/iomgr/iomgr.h",
+    "src/src/core/lib/iomgr/iomgr_fwd.h",
+    "src/src/core/lib/iomgr/iomgr_internal.cc",
+    "src/src/core/lib/iomgr/iomgr_internal.h",
+    "src/src/core/lib/iomgr/iomgr_posix.cc",
+    "src/src/core/lib/iomgr/iomgr_posix_cfstream.cc",
+    "src/src/core/lib/iomgr/iomgr_windows.cc",
+    "src/src/core/lib/iomgr/load_file.cc",
+    "src/src/core/lib/iomgr/load_file.h",
+    "src/src/core/lib/iomgr/lockfree_event.cc",
+    "src/src/core/lib/iomgr/lockfree_event.h",
+    "src/src/core/lib/iomgr/nameser.h",
+    "src/src/core/lib/iomgr/polling_entity.cc",
+    "src/src/core/lib/iomgr/polling_entity.h",
+    "src/src/core/lib/iomgr/pollset.cc",
+    "src/src/core/lib/iomgr/pollset.h",
+    "src/src/core/lib/iomgr/pollset_set.cc",
+    "src/src/core/lib/iomgr/pollset_set.h",
+    "src/src/core/lib/iomgr/pollset_set_windows.cc",
+    "src/src/core/lib/iomgr/pollset_set_windows.h",
+    "src/src/core/lib/iomgr/pollset_windows.cc",
+    "src/src/core/lib/iomgr/pollset_windows.h",
+    "src/src/core/lib/iomgr/port.h",
+    "src/src/core/lib/iomgr/python_util.h",
+    "src/src/core/lib/iomgr/resolve_address.cc",
+    "src/src/core/lib/iomgr/resolve_address.h",
+    "src/src/core/lib/iomgr/resolve_address_impl.h",
+    "src/src/core/lib/iomgr/resolve_address_posix.cc",
+    "src/src/core/lib/iomgr/resolve_address_posix.h",
+    "src/src/core/lib/iomgr/resolve_address_windows.cc",
+    "src/src/core/lib/iomgr/resolve_address_windows.h",
+    "src/src/core/lib/iomgr/resolved_address.h",
+    "src/src/core/lib/iomgr/sockaddr.h",
+    "src/src/core/lib/iomgr/sockaddr_posix.h",
+    "src/src/core/lib/iomgr/sockaddr_utils_posix.cc",
+    "src/src/core/lib/iomgr/sockaddr_windows.h",
+    "src/src/core/lib/iomgr/socket_factory_posix.cc",
+    "src/src/core/lib/iomgr/socket_factory_posix.h",
+    "src/src/core/lib/iomgr/socket_mutator.cc",
+    "src/src/core/lib/iomgr/socket_mutator.h",
+    "src/src/core/lib/iomgr/socket_utils.h",
+    "src/src/core/lib/iomgr/socket_utils_common_posix.cc",
+    "src/src/core/lib/iomgr/socket_utils_linux.cc",
+    "src/src/core/lib/iomgr/socket_utils_posix.cc",
+    "src/src/core/lib/iomgr/socket_utils_posix.h",
+    "src/src/core/lib/iomgr/socket_utils_windows.cc",
+    "src/src/core/lib/iomgr/socket_windows.cc",
+    "src/src/core/lib/iomgr/socket_windows.h",
+    "src/src/core/lib/iomgr/systemd_utils.cc",
+    "src/src/core/lib/iomgr/systemd_utils.h",
+    "src/src/core/lib/iomgr/tcp_client.cc",
+    "src/src/core/lib/iomgr/tcp_client.h",
+    "src/src/core/lib/iomgr/tcp_client_cfstream.cc",
+    "src/src/core/lib/iomgr/tcp_client_posix.cc",
+    "src/src/core/lib/iomgr/tcp_client_posix.h",
+    "src/src/core/lib/iomgr/tcp_client_windows.cc",
+    "src/src/core/lib/iomgr/tcp_posix.cc",
+    "src/src/core/lib/iomgr/tcp_posix.h",
+    "src/src/core/lib/iomgr/tcp_server.cc",
+    "src/src/core/lib/iomgr/tcp_server.h",
+    "src/src/core/lib/iomgr/tcp_server_posix.cc",
+    "src/src/core/lib/iomgr/tcp_server_utils_posix.h",
+    "src/src/core/lib/iomgr/tcp_server_utils_posix_common.cc",
+    "src/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc",
+    "src/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc",
+    "src/src/core/lib/iomgr/tcp_server_windows.cc",
+    "src/src/core/lib/iomgr/tcp_windows.cc",
+    "src/src/core/lib/iomgr/tcp_windows.h",
+    "src/src/core/lib/iomgr/timer.cc",
+    "src/src/core/lib/iomgr/timer.h",
+    "src/src/core/lib/iomgr/timer_generic.cc",
+    "src/src/core/lib/iomgr/timer_generic.h",
+    "src/src/core/lib/iomgr/timer_heap.cc",
+    "src/src/core/lib/iomgr/timer_heap.h",
+    "src/src/core/lib/iomgr/timer_manager.cc",
+    "src/src/core/lib/iomgr/timer_manager.h",
+    "src/src/core/lib/iomgr/unix_sockets_posix.cc",
+    "src/src/core/lib/iomgr/unix_sockets_posix.h",
+    "src/src/core/lib/iomgr/unix_sockets_posix_noop.cc",
+    "src/src/core/lib/iomgr/wakeup_fd_eventfd.cc",
+    "src/src/core/lib/iomgr/wakeup_fd_nospecial.cc",
+    "src/src/core/lib/iomgr/wakeup_fd_pipe.cc",
+    "src/src/core/lib/iomgr/wakeup_fd_pipe.h",
+    "src/src/core/lib/iomgr/wakeup_fd_posix.cc",
+    "src/src/core/lib/iomgr/wakeup_fd_posix.h",
+    "src/src/core/lib/json/json.h",
+    "src/src/core/lib/json/json_reader.cc",
+    "src/src/core/lib/json/json_writer.cc",
+    "src/src/core/lib/load_balancing/lb_policy.cc",
+    "src/src/core/lib/load_balancing/lb_policy.h",
+    "src/src/core/lib/load_balancing/lb_policy_factory.h",
+    "src/src/core/lib/load_balancing/lb_policy_registry.cc",
+    "src/src/core/lib/load_balancing/lb_policy_registry.h",
+    "src/src/core/lib/load_balancing/subchannel_interface.h",
+    "src/src/core/lib/matchers/matchers.cc",
+    "src/src/core/lib/matchers/matchers.h",
+    "src/src/core/lib/promise/activity.cc",
+    "src/src/core/lib/promise/activity.h",
+    "src/src/core/lib/promise/arena_promise.h",
+    "src/src/core/lib/promise/context.h",
+    "src/src/core/lib/promise/detail/basic_join.h",
+    "src/src/core/lib/promise/detail/basic_seq.h",
+    "src/src/core/lib/promise/detail/promise_factory.h",
+    "src/src/core/lib/promise/detail/promise_like.h",
+    "src/src/core/lib/promise/detail/status.h",
+    "src/src/core/lib/promise/detail/switch.h",
+    "src/src/core/lib/promise/exec_ctx_wakeup_scheduler.h",
+    "src/src/core/lib/promise/if.h",
+    "src/src/core/lib/promise/interceptor_list.h",
+    "src/src/core/lib/promise/intra_activity_waiter.h",
+    "src/src/core/lib/promise/loop.h",
+    "src/src/core/lib/promise/map.h",
+    "src/src/core/lib/promise/pipe.h",
+    "src/src/core/lib/promise/poll.h",
+    "src/src/core/lib/promise/promise.h",
+    "src/src/core/lib/promise/race.h",
+    "src/src/core/lib/promise/seq.h",
+    "src/src/core/lib/promise/trace.cc",
+    "src/src/core/lib/promise/trace.h",
+    "src/src/core/lib/promise/try_join.h",
+    "src/src/core/lib/promise/try_seq.h",
+    "src/src/core/lib/resolver/resolver.cc",
+    "src/src/core/lib/resolver/resolver.h",
+    "src/src/core/lib/resolver/resolver_factory.h",
+    "src/src/core/lib/resolver/resolver_registry.cc",
+    "src/src/core/lib/resolver/resolver_registry.h",
+    "src/src/core/lib/resolver/server_address.cc",
+    "src/src/core/lib/resolver/server_address.h",
+    "src/src/core/lib/resource_quota/api.cc",
+    "src/src/core/lib/resource_quota/api.h",
+    "src/src/core/lib/resource_quota/arena.cc",
+    "src/src/core/lib/resource_quota/arena.h",
+    "src/src/core/lib/resource_quota/memory_quota.cc",
+    "src/src/core/lib/resource_quota/memory_quota.h",
+    "src/src/core/lib/resource_quota/periodic_update.cc",
+    "src/src/core/lib/resource_quota/periodic_update.h",
+    "src/src/core/lib/resource_quota/resource_quota.cc",
+    "src/src/core/lib/resource_quota/resource_quota.h",
+    "src/src/core/lib/resource_quota/thread_quota.cc",
+    "src/src/core/lib/resource_quota/thread_quota.h",
+    "src/src/core/lib/resource_quota/trace.cc",
+    "src/src/core/lib/resource_quota/trace.h",
+    "src/src/core/lib/security/authorization/authorization_engine.h",
+    "src/src/core/lib/security/authorization/authorization_policy_provider.h",
+    "src/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc",
+    "src/src/core/lib/security/authorization/evaluate_args.cc",
+    "src/src/core/lib/security/authorization/evaluate_args.h",
+    "src/src/core/lib/security/authorization/grpc_authorization_engine.cc",
+    "src/src/core/lib/security/authorization/grpc_authorization_engine.h",
+    "src/src/core/lib/security/authorization/grpc_authorization_policy_provider.cc",
+    "src/src/core/lib/security/authorization/grpc_authorization_policy_provider.h",
+    "src/src/core/lib/security/authorization/grpc_server_authz_filter.cc",
+    "src/src/core/lib/security/authorization/grpc_server_authz_filter.h",
+    "src/src/core/lib/security/authorization/matchers.cc",
+    "src/src/core/lib/security/authorization/matchers.h",
+    "src/src/core/lib/security/authorization/rbac_policy.cc",
+    "src/src/core/lib/security/authorization/rbac_policy.h",
+    "src/src/core/lib/security/authorization/rbac_translator.cc",
+    "src/src/core/lib/security/authorization/rbac_translator.h",
+    "src/src/core/lib/security/certificate_provider/certificate_provider_factory.h",
+    "src/src/core/lib/security/certificate_provider/certificate_provider_registry.cc",
+    "src/src/core/lib/security/certificate_provider/certificate_provider_registry.h",
+    "src/src/core/lib/security/context/security_context.cc",
+    "src/src/core/lib/security/context/security_context.h",
+    "src/src/core/lib/security/credentials/alts/check_gcp_environment.cc",
+    "src/src/core/lib/security/credentials/alts/check_gcp_environment.h",
+    "src/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc",
+    "src/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc",
+    "src/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc",
+    "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc",
+    "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc",
+    "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h",
+    "src/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc",
+    "src/src/core/lib/security/credentials/call_creds_util.cc",
+    "src/src/core/lib/security/credentials/call_creds_util.h",
+    "src/src/core/lib/security/credentials/channel_creds_registry.h",
+    "src/src/core/lib/security/credentials/composite/composite_credentials.cc",
+    "src/src/core/lib/security/credentials/composite/composite_credentials.h",
+    "src/src/core/lib/security/credentials/credentials.cc",
+    "src/src/core/lib/security/credentials/credentials.h",
+    "src/src/core/lib/security/credentials/plugin/plugin_credentials.cc",
+    "src/src/core/lib/security/credentials/plugin/plugin_credentials.h",
+    "src/src/core/lib/security/credentials/tls/tls_utils.cc",
+    "src/src/core/lib/security/credentials/tls/tls_utils.h",
+    "src/src/core/lib/security/security_connector/load_system_roots.h",
+    "src/src/core/lib/security/security_connector/load_system_roots_fallback.cc",
+    "src/src/core/lib/security/security_connector/load_system_roots_supported.cc",
+    "src/src/core/lib/security/security_connector/load_system_roots_supported.h",
+    "src/src/core/lib/security/security_connector/security_connector.cc",
+    "src/src/core/lib/security/security_connector/security_connector.h",
+    "src/src/core/lib/security/transport/auth_filters.h",
+    "src/src/core/lib/security/transport/client_auth_filter.cc",
+    "src/src/core/lib/security/transport/secure_endpoint.cc",
+    "src/src/core/lib/security/transport/secure_endpoint.h",
+    "src/src/core/lib/security/transport/security_handshaker.cc",
+    "src/src/core/lib/security/transport/security_handshaker.h",
+    "src/src/core/lib/security/transport/server_auth_filter.cc",
+    "src/src/core/lib/security/transport/tsi_error.cc",
+    "src/src/core/lib/security/transport/tsi_error.h",
+    "src/src/core/lib/security/util/json_util.cc",
+    "src/src/core/lib/security/util/json_util.h",
+    "src/src/core/lib/service_config/service_config.h",
+    "src/src/core/lib/service_config/service_config_call_data.h",
+    "src/src/core/lib/service_config/service_config_parser.cc",
+    "src/src/core/lib/service_config/service_config_parser.h",
+    "src/src/core/lib/slice/b64.cc",
+    "src/src/core/lib/slice/b64.h",
+    "src/src/core/lib/slice/percent_encoding.cc",
+    "src/src/core/lib/slice/percent_encoding.h",
+    "src/src/core/lib/slice/slice.cc",
+    "src/src/core/lib/slice/slice.h",
+    "src/src/core/lib/slice/slice_buffer.cc",
+    "src/src/core/lib/slice/slice_buffer.h",
+    "src/src/core/lib/slice/slice_internal.h",
+    "src/src/core/lib/slice/slice_refcount.cc",
+    "src/src/core/lib/slice/slice_refcount.h",
+    "src/src/core/lib/slice/slice_string_helpers.cc",
+    "src/src/core/lib/slice/slice_string_helpers.h",
+    "src/src/core/lib/surface/api_trace.cc",
+    "src/src/core/lib/surface/api_trace.h",
+    "src/src/core/lib/surface/builtins.cc",
+    "src/src/core/lib/surface/builtins.h",
+    "src/src/core/lib/surface/byte_buffer.cc",
+    "src/src/core/lib/surface/byte_buffer_reader.cc",
+    "src/src/core/lib/surface/call.cc",
+    "src/src/core/lib/surface/call.h",
+    "src/src/core/lib/surface/call_details.cc",
+    "src/src/core/lib/surface/call_log_batch.cc",
+    "src/src/core/lib/surface/call_test_only.h",
+    "src/src/core/lib/surface/call_trace.cc",
+    "src/src/core/lib/surface/call_trace.h",
+    "src/src/core/lib/surface/channel.cc",
+    "src/src/core/lib/surface/channel.h",
+    "src/src/core/lib/surface/channel_init.cc",
+    "src/src/core/lib/surface/channel_init.h",
+    "src/src/core/lib/surface/channel_ping.cc",
+    "src/src/core/lib/surface/channel_stack_type.cc",
+    "src/src/core/lib/surface/channel_stack_type.h",
+    "src/src/core/lib/surface/completion_queue.cc",
+    "src/src/core/lib/surface/completion_queue.h",
+    "src/src/core/lib/surface/completion_queue_factory.cc",
+    "src/src/core/lib/surface/completion_queue_factory.h",
+    "src/src/core/lib/surface/event_string.cc",
+    "src/src/core/lib/surface/event_string.h",
+    "src/src/core/lib/surface/init.h",
+    "src/src/core/lib/surface/init_internally.cc",
+    "src/src/core/lib/surface/init_internally.h",
+    "src/src/core/lib/surface/lame_client.cc",
+    "src/src/core/lib/surface/lame_client.h",
+    "src/src/core/lib/surface/metadata_array.cc",
+    "src/src/core/lib/surface/server.cc",
+    "src/src/core/lib/surface/server.h",
+    "src/src/core/lib/surface/validate_metadata.cc",
+    "src/src/core/lib/surface/validate_metadata.h",
+    "src/src/core/lib/surface/version.cc",
+    "src/src/core/lib/transport/connectivity_state.cc",
+    "src/src/core/lib/transport/connectivity_state.h",
+    "src/src/core/lib/transport/error_utils.cc",
+    "src/src/core/lib/transport/error_utils.h",
+    "src/src/core/lib/transport/handshaker.cc",
+    "src/src/core/lib/transport/handshaker.h",
+    "src/src/core/lib/transport/handshaker_factory.h",
+    "src/src/core/lib/transport/handshaker_registry.cc",
+    "src/src/core/lib/transport/handshaker_registry.h",
+    "src/src/core/lib/transport/http2_errors.h",
+    "src/src/core/lib/transport/metadata_batch.cc",
+    "src/src/core/lib/transport/metadata_batch.h",
+    "src/src/core/lib/transport/parsed_metadata.cc",
+    "src/src/core/lib/transport/parsed_metadata.h",
+    "src/src/core/lib/transport/status_conversion.cc",
+    "src/src/core/lib/transport/status_conversion.h",
+    "src/src/core/lib/transport/timeout_encoding.cc",
+    "src/src/core/lib/transport/timeout_encoding.h",
+    "src/src/core/lib/transport/transport.cc",
+    "src/src/core/lib/transport/transport.h",
+    "src/src/core/lib/transport/transport_fwd.h",
+    "src/src/core/lib/transport/transport_impl.h",
+    "src/src/core/lib/transport/transport_op_string.cc",
+    "src/src/core/lib/uri/uri_parser.cc",
+    "src/src/core/lib/uri/uri_parser.h",
+    "src/src/core/tsi/alts/handshaker/transport_security_common_api.cc",
+    "src/src/core/tsi/alts/handshaker/transport_security_common_api.h",
+    "src/src/core/tsi/transport_security.cc",
+    "src/src/core/tsi/transport_security.h",
+    "src/src/core/tsi/transport_security_grpc.cc",
+    "src/src/core/tsi/transport_security_grpc.h",
+    "src/src/core/tsi/transport_security_interface.h",
+  ]
+  public_deps = [
+    ":absl_cleanup_cleanup",
+    ":absl_container_flat_hash_map",
+    ":absl_container_flat_hash_set",
+    ":absl_container_inlined_vector",
+    ":absl_functional_any_invocable",
+    ":absl_functional_function_ref",
+    ":absl_hash_hash",
+    ":absl_meta_type_traits",
+    ":absl_status_statusor",
+    ":absl_types_span",
+    ":absl_utility_utility",
+    ":gpr",
+    ":upb",
+  ]
+  public_configs = [ "..:grpc_internal_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+source_set("grpc_plugin_support") {
+  sources = [
+    "src/src/compiler/config.h",
+    "src/src/compiler/config_protobuf.h",
+    "src/src/compiler/cpp_generator.cc",
+    "src/src/compiler/cpp_generator.h",
+    "src/src/compiler/cpp_generator_helpers.h",
+    "src/src/compiler/cpp_plugin.h",
+    "src/src/compiler/csharp_generator.cc",
+    "src/src/compiler/csharp_generator.h",
+    "src/src/compiler/csharp_generator_helpers.h",
+    "src/src/compiler/generator_helpers.h",
+    "src/src/compiler/node_generator.cc",
+    "src/src/compiler/node_generator.h",
+    "src/src/compiler/node_generator_helpers.h",
+    "src/src/compiler/objective_c_generator.cc",
+    "src/src/compiler/objective_c_generator.h",
+    "src/src/compiler/objective_c_generator_helpers.h",
+    "src/src/compiler/php_generator.cc",
+    "src/src/compiler/php_generator.h",
+    "src/src/compiler/php_generator_helpers.h",
+    "src/src/compiler/protobuf_plugin.h",
+    "src/src/compiler/python_generator.cc",
+    "src/src/compiler/python_generator.h",
+    "src/src/compiler/python_generator_helpers.h",
+    "src/src/compiler/python_private_generator.h",
+    "src/src/compiler/ruby_generator.cc",
+    "src/src/compiler/ruby_generator.h",
+    "src/src/compiler/ruby_generator_helpers-inl.h",
+    "src/src/compiler/ruby_generator_map-inl.h",
+    "src/src/compiler/ruby_generator_string-inl.h",
+    "src/src/compiler/schema_interface.h",
+  ]
+  public_deps = [ "..:protoc_lib" ]
+  public_configs = [ "..:grpc_internal_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
+
+executable("grpc_cpp_plugin") {
+  sources = [ "src/src/compiler/cpp_plugin.cc" ]
+  public_deps = [ ":grpc_plugin_support" ]
+  public_configs = [ "..:grpc_internal_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}
diff --git a/docs/faq.md b/docs/faq.md
index 29ba71b..7a05913 100644
--- a/docs/faq.md
+++ b/docs/faq.md
@@ -1,23 +1,48 @@
 # Frequently Asked Questions
-This page contains some common questions that the Perfetto team is asked
-and their answers.
-
-- [Frequently Asked Questions](#frequently-asked-questions)
-  - [How do I open trace in UI from command line?](#how-do-i-open-trace-in-ui-from-command-line)
 
 ## How do I open trace in UI from command line?
+
 When collecting traces from the command line, a convenient way to open traces
-is to use the [open_trace_in_ui script](/tools/open_trace_in_ui).
+is to use the [open\_trace\_in\_ui script](/tools/open_trace_in_ui).
 
 This can be used as follows:
+
 ```sh
 curl -OL https://github.com/google/perfetto/raw/master/tools/open_trace_in_ui
 chmod +x open_trace_in_ui
 ./open_trace_in_ui -i /path/to/trace
 ```
 
-If you already have a Perfetto checkout, the first steps can be skipped.
+If you already have a Perfetto checkout, the first two steps can be skipped.
 From the Perfetto root, run:
+
 ```sh
 tools/open_trace_in_ui -i /path/to/trace
-```
\ No newline at end of file
+```
+
+## Incorrectly displayed overlapping events in JSON trace
+
+NOTE: JSON is considered a legacy trace format and is supported on a best-effort
+basis.
+
+The Perfetto UI and trace processor do support overlapping B/E/X events, in
+compliance with the
+[JSON spec](https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview#heading=h.nso4gcezn7n1).
+As stated in the spec, events are only allowed to perfecty nest.
+
+Users are recommended to emit
+[TrackEvent](/docs/instrumentation/track-events.md)
+instead, Perfetto's native trace format. See
+[this guide](/docs/reference/synthetic-track-event.md) for how common JSON
+events can be represented using
+TrackEvent.
+
+## How can I use Perfetto tooling without instrumenting my program?
+A common problem is that users want to use Perfetto analysis and visualization
+tooling but they don't want to instrument their program. This can be because
+Perfetto is not a good fit for their use-case or because they may already have
+an existing tracing system.
+
+The recommended approach for this is to emit Perfetto's native TrackEvent proto
+format. A reference guide for this is available
+[here](/docs/reference/synthetic-track-event.md).
diff --git a/docs/images/synthetic-track-event-counter.png b/docs/images/synthetic-track-event-counter.png
new file mode 100644
index 0000000..fc659d5
--- /dev/null
+++ b/docs/images/synthetic-track-event-counter.png
Binary files differ
diff --git a/docs/images/synthetic-track-event-flow.png b/docs/images/synthetic-track-event-flow.png
new file mode 100644
index 0000000..e0a20ed
--- /dev/null
+++ b/docs/images/synthetic-track-event-flow.png
Binary files differ
diff --git a/docs/images/synthetic-track-event-process.png b/docs/images/synthetic-track-event-process.png
new file mode 100644
index 0000000..db1379e
--- /dev/null
+++ b/docs/images/synthetic-track-event-process.png
Binary files differ
diff --git a/docs/images/synthetic-track-event-thread.png b/docs/images/synthetic-track-event-thread.png
new file mode 100644
index 0000000..d247662
--- /dev/null
+++ b/docs/images/synthetic-track-event-thread.png
Binary files differ
diff --git a/docs/reference/synthetic-track-event.md b/docs/reference/synthetic-track-event.md
new file mode 100644
index 0000000..1052d77
--- /dev/null
+++ b/docs/reference/synthetic-track-event.md
@@ -0,0 +1,375 @@
+# Writing TrackEvent Protos Synthetically
+This page acts as a reference guide to synthetically generate TrackEvent,
+Perfetto's native protobuf based tracing format. This allows using Perfetto's
+analysis and visualzation without using collecting traces using the Perfetto
+SDK.
+
+TrackEvent protos can be manually written using the
+[official protobuf library](https://protobuf.dev/reference/) or any other
+protobuf-compatible library. To be language-agnostic, the rest of this page
+will show examples using the
+[text format](https://protobuf.dev/reference/protobuf/textformat-spec/)
+representation of protobufs.
+
+## Thread-scoped (sync) slices
+NOTE: in the legacy JSON tracing format, this section correspond to B/E/I/X
+events with the associated M (metadata) events.
+
+Thread scoped slices are used to trace execution of functions on a single
+thread. As only one function runs on a single thread over time, this requires
+that child slices nest perfectly inside parent slices and do not partially
+overlap.
+
+![Thread track event in UI](/docs/images/synthetic-track-event-thread.png)
+
+This is corresponds to the following protos:
+```
+# Emit this packet once *before* you emit the first event for this process.
+packet: {
+  track_descriptor: {
+    uuid: 894893984                     # 64-bit random number.
+    process: {
+      pid: 1234                         # PID for your process.
+      process_name: "My process name"
+    }
+  }
+}
+
+# Emit this packet once *before* you emit the first event for this thread.
+packet: {
+  track_descriptor: {
+    uuid: 49083589894                   # 64-bit random number.
+    parent_uuid: 894893984              # UUID from above.
+    thread: {
+      pid: 1234                         # PID for your process.
+      tid: 5678                         # TID for your thread.
+      thread_name: "My thread name"
+    }
+  }
+}
+
+# The events for this thread.
+packet: {
+  timestamp: 200
+  track_event: {
+    type: TYPE_SLICE_BEGIN
+    track_uuid: 49083589894             # Same random number from above.
+    name: "My special parent"
+  }
+  trusted_packet_sequence_id: 3903809   # Generate *once*, use throughout.
+}
+packet: {
+  timestamp: 250
+  track_event: {
+    type: TYPE_SLICE_BEGIN
+    track_uuid: 49083589894
+    name: "My special child"
+  }
+  trusted_packet_sequence_id: 3903809
+}
+packet {
+  timestamp: 285
+  track_event {
+    type: TYPE_INSTANT
+    track_uuid: 49083589894
+  }
+  trusted_packet_sequence_id: 3903809
+}
+packet: {
+  timestamp: 290
+  track_event: {
+    type: TYPE_SLICE_END
+    track_uuid: 49083589894
+  }
+  trusted_packet_sequence_id: 3903809
+}
+packet: {
+  timestamp: 300
+  track_event: {
+    type: TYPE_SLICE_END
+    track_uuid: 49083589894
+  }
+  trusted_packet_sequence_id: 3903809
+}
+```
+
+## Process-scoped (async) slices
+NOTE: in the legacy JSON tracing format, this section corresponds to b/e/n
+events with the associated M (metadata) events.
+
+Process-scoped slices are useful to trace execution of a "piece of work" across
+multiple threads of a process. A process-scoped slice can start on a thread
+A and end on a thread B. Examples include work submitted to thread pools
+and coroutines.
+
+Process tracks can be named corresponding to the executor and can also have
+child slices in an identical way to thread-scoped slices. Importantly, this
+means slices on a single track must **strictly nest** inside each other
+without overlapping.
+
+As separating each track in the UI can cause a lot of clutter, the UI
+visually merges process tracks with the same name in each process. Note that
+this **does not** change the data model (e.g. in trace processor
+tracks remain separated) as this is simply a visual grouping.
+
+![Process track event in UI](/docs/images/synthetic-track-event-process.png)
+
+This is corresponds to the following protos:
+```
+# The first track associated with this process.
+packet {
+  track_descriptor {
+    uuid: 48948                         # 64-bit random number.
+    name: "My special track"
+    process {
+      pid: 1234                         # PID for your process
+      process_name: "My process name"
+    }
+  }
+}
+# The events for the first track.
+packet {
+  timestamp: 200
+  track_event {
+    type: TYPE_SLICE_BEGIN
+    track_uuid: 48948                   # Same random number from above.
+    name: "My special parent A"
+  }
+  trusted_packet_sequence_id: 3903809   # Generate *once*, use throughout.
+}
+packet {
+  timestamp: 250
+  track_event {
+    type: TYPE_SLICE_BEGIN
+    track_uuid: 48948
+    name: "My special child"
+  }
+  trusted_packet_sequence_id: 3903809
+}
+packet {
+  timestamp: 290
+  track_event {
+    type: TYPE_SLICE_END
+    track_uuid: 48948
+  }
+  trusted_packet_sequence_id: 3903809
+}
+packet {
+  timestamp: 300
+  track_event {
+    type: TYPE_SLICE_END
+    track_uuid: 48948
+  }
+  trusted_packet_sequence_id: 3903809
+}
+
+# The second track associated with this process. Note how we make the above
+# track the "parent" of this track: this means that this track also is
+# associated to the same process. Note further this shows as the same visual
+# track in the UI but remains separate in the trace and data model. Emitting
+# these events on a separate track is necessary because these events overlap
+# *without* nesting with the above events.
+packet {
+  track_descriptor {
+      uuid: 2390190934                  # 64-bit random number.
+      name: "My special track"
+      parent_uuid: 48948
+  }
+}
+# The events for the second track.
+packet {
+  timestamp: 230
+  track_event {
+    type: TYPE_SLICE_BEGIN
+    track_uuid: 2390190934              # Same random number from above.
+    name: "My special parent A"
+  }
+  trusted_packet_sequence_id: 3903809
+}
+packet {
+  timestamp: 260
+  track_event {
+    type: TYPE_SLICE_BEGIN
+    track_uuid: 2390190934
+    name: "My special child"
+  }
+  trusted_packet_sequence_id: 3903809
+}
+packet {
+  timestamp: 270
+  track_event {
+    type: TYPE_SLICE_END
+    track_uuid: 2390190934
+  }
+  trusted_packet_sequence_id: 3903809
+}
+packet {
+  timestamp: 295
+  track_event {
+    type: TYPE_SLICE_END
+    track_uuid: 2390190934
+  }
+  trusted_packet_sequence_id: 3903809
+}
+```
+
+## Flows
+NOTE: in the legacy JSON tracing format, this section correspond to s/t/f
+events.
+
+Flows allow connecting any number of slices with arrows. The semantic meaning
+of the arrow varies across different applications but most commonly it is used
+to track work passing between threads or processes: e.g. the UI thread asks a
+background thread to do some work and notify when the result is available.
+
+NOTE: a single flow *cannot* fork ands imply represents a single stream of
+arrows from one slice to the next. See [this](https://source.chromium.org/chromium/chromium/src/+/main:third_party/perfetto/protos/perfetto/trace/perfetto_trace.proto;drc=ba05b783d9c29fe334a02913cf157ea1d415d37c;l=9604) comment for information.
+
+![TrackEvent flows in UI](/docs/images/synthetic-track-event-flow.png)
+
+```
+# The main thread of the process.
+packet {
+  track_descriptor {
+    uuid: 93094
+    thread {
+        pid: 100
+        tid: 100
+        thread_name: "Main thread"
+    }
+  }
+}
+packet {
+  timestamp: 200
+  track_event {
+    type: TYPE_SLICE_BEGIN
+    track_uuid: 93094
+    name: "Request generation"
+    flow_ids: 1055895987                  # Random number used to track work
+                                          # across threads/processes.
+  }
+  trusted_packet_sequence_id: 3903809
+}
+packet {
+  timestamp: 300
+  track_event {
+    type: TYPE_SLICE_END
+    track_uuid: 93094
+  }
+  trusted_packet_sequence_id: 3903809
+}
+packet {
+  timestamp: 400
+  track_event {
+    type: TYPE_SLICE_BEGIN
+    track_uuid: 93094
+    name: "Process background result"
+    flow_ids: 1055895987                  # Same as above.
+  }
+  trusted_packet_sequence_id: 3903809
+}
+packet {
+  timestamp: 500
+  track_event {
+    type: TYPE_SLICE_END
+    track_uuid: 93094
+  }
+  trusted_packet_sequence_id: 3903809
+}
+
+# The background thread of the process.
+packet {
+  track_descriptor {
+    uuid: 40489498
+    thread {
+      pid: 100
+      tid: 101
+      thread_name: "Background thread"
+    }
+  }
+}
+packet {
+  timestamp: 310
+  track_event {
+    type: TYPE_SLICE_BEGIN
+    track_uuid: 40489498
+    name: "Background work"
+    flow_ids: 1055895987                  # Same as above.
+  }
+  trusted_packet_sequence_id: 3903809
+}
+packet {
+  timestamp: 385
+  track_event {
+    type: TYPE_SLICE_END
+    track_uuid: 40489498
+  }
+  trusted_packet_sequence_id: 3903809
+}
+```
+
+## Counters
+NOTE: in the legacy JSON tracing format, this section correspond to C events.
+
+Counters are useful to represent continuous values which change with time.
+Common examples include CPU frequency, memory usage, battery charge etc.
+
+![TrackEvent counter in UI](/docs/images/synthetic-track-event-counter.png)
+
+This corresponds to the following protos:
+```
+# Counter track scoped to a process.
+packet {
+  track_descriptor {
+    uuid: 1388
+    process {
+      pid: 1024
+      process_name: "MySpecialProcess"
+    }
+  }
+}
+packet {
+  track_descriptor {
+    uuid: 4489498
+    parent_uuid: 1388
+    name: "My special counter"
+    counter {}
+  }
+}
+packet {
+  timestamp: 200
+  track_event {
+    type: TYPE_COUNTER
+    track_uuid: 4489498
+    counter_value: 34567    # Value at start
+  }
+  trusted_packet_sequence_id: 3903809
+}
+packet {
+  timestamp: 250
+  track_event {
+    type: TYPE_COUNTER
+    track_uuid: 4489498
+    counter_value: 67890    # Value goes up
+  }
+  trusted_packet_sequence_id: 3903809
+}
+packet {
+  timestamp: 300
+  track_event {
+    type: TYPE_COUNTER
+    track_uuid: 4489498
+    counter_value: 12345   # Value goes down
+  }
+  trusted_packet_sequence_id: 3903809
+}
+packet {
+  timestamp: 400
+  track_event {
+    type: TYPE_COUNTER
+    track_uuid: 4489498
+    counter_value: 12345   # Final value
+  }
+  trusted_packet_sequence_id: 3903809
+}
+```
diff --git a/docs/toc.md b/docs/toc.md
index 1d37192..bc96bbc 100644
--- a/docs/toc.md
+++ b/docs/toc.md
@@ -67,6 +67,7 @@
   * [Trace Packet proto](reference/trace-packet-proto.autogen)
   * [perfetto cmdline](reference/perfetto-cli.md)
   * [heap_profile cmdline](reference/heap_profile-cli.md)
+  * [Synthetic TrackEvent](reference/synthetic-track-event.md)
 
 * [Contributing](#)
     * [Getting started](contributing/getting-started.md)
diff --git a/docs/tracing-101.md b/docs/tracing-101.md
index 61ea985..ef80452 100644
--- a/docs/tracing-101.md
+++ b/docs/tracing-101.md
@@ -1,9 +1,6 @@
 # Tracing 101
-*This page provides a birds-eye view of performance analysis using Perfetto.
-The aim is for to orient even people who have no idea what "tracing" is. You
-should walk away from this page with a good understanding of the available
-capabilities in Perfetto and how they can be used to improve performance of a
-system.*
+*This page provides a birds-eye view of performance analysis.
+The aim is to orient people who have no idea what "tracing" is.*
 
 ## Introduction to...
 ### Performance
@@ -148,7 +145,7 @@
 systems. It helps identify the changes they can make to improve performance
 and verify the impact of those changes.
 
-NOTE: In Perfetto, since profiles and traces can be collected simultaneously, 
+NOTE: In Perfetto, since profiles and traces can be collected simultaneously,
 we call everything a "trace" even if it may contain (only) profiling data
 inside.
 
diff --git a/gn/BUILD.gn b/gn/BUILD.gn
index 0130ce7..01f12d0 100644
--- a/gn/BUILD.gn
+++ b/gn/BUILD.gn
@@ -275,13 +275,8 @@
     "GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
   ]
   cflags = []
-  if (is_clang || !is_win) {
-    cflags += [
-      "-Wno-unknown-warning-option",
-      "-Wno-deprecated",
-      "-Wno-undef",
-      "-Wno-zero-as-null-pointer-constant",
-    ]
+  if (!is_clang || !is_win) {
+    cflags += [ "-Wno-deprecated-declarations" ]
   }
   if (is_clang && is_win) {
     cflags += [
diff --git a/gn/perfetto.gni b/gn/perfetto.gni
index 04c07ca..b778d88 100644
--- a/gn/perfetto.gni
+++ b/gn/perfetto.gni
@@ -307,6 +307,12 @@
   # typically handles only itanium mangling.
   enable_perfetto_llvm_demangle =
       enable_perfetto_trace_processor && perfetto_build_standalone
+
+  # Enables gRPC in the Perfetto codebase. gRPC significantly increases build
+  # times and the general footprint of Perfetto. As it only required for
+  # cloud trace processor and even then only to build the final ready-to-ship
+  # binary, don't enable this by default.
+  enable_perfetto_grpc = false
 }
 
 declare_args() {
diff --git a/gn/proto_library.gni b/gn/proto_library.gni
index d1794d5..f69d3ce 100644
--- a/gn/proto_library.gni
+++ b/gn/proto_library.gni
@@ -204,6 +204,40 @@
   }
 }
 
+# Generates .grpc.{h,cc} stubs for services defined in .proto files.
+# We require explicit opt-in as gRPC is very heavyweight so we do not
+# want accidental dependencies on this.
+if (enable_perfetto_grpc) {
+  template("perfetto_grpc_library") {
+    proto_library(target_name) {
+      proto_in_dir = perfetto_root_path
+      proto_out_dir = perfetto_root_path
+      propagate_imports_configs = false
+
+      perfetto_root_path = perfetto_root_path
+      generate_cc = false
+      generate_python = false
+      generator_plugin_label =
+          "$perfetto_root_path/buildtools/grpc:grpc_cpp_plugin"
+      generator_plugin_suffix = ".grpc.pb"
+      deps = [ "$perfetto_root_path/buildtools/grpc:grpc++" ]
+      public_configs = [ "$perfetto_root_path/buildtools:grpc_gen_config" ]
+      if (defined(invoker.deps)) {
+        deps += invoker.deps
+      }
+      forward_variables_from(invoker,
+                             [
+                               "defines",
+                               "extra_configs",
+                               "include_dirs",
+                               "sources",
+                               "testonly",
+                               "visibility",
+                             ])
+    }
+  }
+}
+
 # The template used everywhere in the codebase.
 template("perfetto_proto_library") {
   if (defined(invoker.proto_generators)) {
diff --git a/gn/standalone/BUILD.gn b/gn/standalone/BUILD.gn
index bd21589..329aa97 100644
--- a/gn/standalone/BUILD.gn
+++ b/gn/standalone/BUILD.gn
@@ -84,6 +84,7 @@
       "-Wno-reserved-identifier",
       "-Wno-unknown-sanitizers",
       "-Wno-unknown-warning-option",
+      "-Wno-unsafe-buffer-usage",
     ]
   } else if (!is_clang && !is_win) {
     # Use return std::move(...) for compatibility with old GCC compilers.
diff --git a/include/perfetto/ext/base/threading/BUILD.gn b/include/perfetto/ext/base/threading/BUILD.gn
index ab12670..cb11115 100644
--- a/include/perfetto/ext/base/threading/BUILD.gn
+++ b/include/perfetto/ext/base/threading/BUILD.gn
@@ -15,7 +15,10 @@
 import("../../../../../gn/perfetto.gni")
 
 source_set("threading") {
-  sources = [ "thread_pool.h" ]
+  sources = [
+    "channel.h",
+    "thread_pool.h",
+  ]
   deps = [
     "..:base",
     "../../../../../gn:default_deps",
diff --git a/include/perfetto/ext/base/threading/channel.h b/include/perfetto/ext/base/threading/channel.h
new file mode 100644
index 0000000..d117ff0
--- /dev/null
+++ b/include/perfetto/ext/base/threading/channel.h
@@ -0,0 +1,180 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef INCLUDE_PERFETTO_EXT_BASE_THREADING_CHANNEL_H_
+#define INCLUDE_PERFETTO_EXT_BASE_THREADING_CHANNEL_H_
+
+#include <mutex>
+
+#include "perfetto/base/compiler.h"
+#include "perfetto/base/platform_handle.h"
+#include "perfetto/ext/base/circular_queue.h"
+#include "perfetto/ext/base/event_fd.h"
+#include "perfetto/ext/base/optional.h"
+
+namespace perfetto {
+namespace base {
+
+// Unidirectional conduit used to send values between threads with a fixed-sized
+// buffer in-between.
+//
+// When a channel is read from when empty or written to when full, the operation
+// will not succeed and the caller can choose to a) abandon the operation,
+// or b) use |read_fd| or |write_fd| (as appropriate) which will be become
+// "ready" (i.e. base::TaskRunner watches will fire) when the operation would
+// succeed.
+//
+// A channel is very similar to a Unix pipe except with the values being sent
+// a) not needing to be serializable b) data does not go through the kernel.
+template <typename T>
+class Channel {
+ public:
+  struct ReadResult {
+    ReadResult(base::Optional<T> _item, bool _is_closed)
+        : item(std::move(_item)), is_closed(_is_closed) {}
+
+    bool operator==(const ReadResult& res) const {
+      return item == res.item && is_closed == res.is_closed;
+    }
+
+    // The item read from the channel or base::nullopt if the channel is empty.
+    // If so, callers can use |read_fd| to be notified when a read operation
+    // would succeed.
+    base::Optional<T> item;
+
+    // Indicates the channel is closed. Readers can continue to read from the
+    // channel and any buffered elements will be correctly returned. Moreover,
+    // any future reads will also have |is_closed| == true and |read_fd| will be
+    // ready forever.
+    //
+    // Once a ReadResult is returned with |item| == base::nullopt and
+    // |is_closed| == true, no further values will ever be returned.
+    bool is_closed;
+  };
+  struct WriteResult {
+    WriteResult(bool _success, bool _is_closed)
+        : success(std::move(_success)), is_closed(_is_closed) {}
+
+    bool operator==(const WriteResult& res) const {
+      return success == res.success && is_closed == res.is_closed;
+    }
+
+    // Returns whether the write to the channel was successful. If this is
+    // false, callers can use |write_fd| to be notified when future writes
+    // would succeed. Note that callers should also check |is_closed| as another
+    // writer may have closed the channel.
+    bool success;
+
+    // Indicates that the channel is closed. If this value is true, |success|
+    // will be |false| Moreover, any further writes will continue to return
+    // |success| == false, |is_closed| == true and |write_fd| will be ready
+    // forever.
+    bool is_closed;
+  };
+
+  // Creates a channel with a capacity at least as large as |capacity_hint|. The
+  // capacity *must* be greater than zero.
+  //
+  // Note that it's possible that a capacity > |capacity_hint| will be chosen:
+  // it is implementation defined when this might happen.
+  explicit Channel(uint32_t capacity_hint) : elements_(capacity_hint) {
+    PERFETTO_DCHECK(capacity_hint > 0);
+
+    // It's very important that we make sure |write_fd| is ready to avoid
+    // deadlocks.
+    write_fd_.Notify();
+  }
+
+  // Attempts to read from the channel and returns the result of the attempt.
+  // See |ReadResult| for more information on the result.
+  PERFETTO_WARN_UNUSED_RESULT ReadResult ReadNonBlocking() {
+    std::lock_guard<std::mutex> lock(mutex_);
+    if (elements_.empty()) {
+      return ReadResult(base::nullopt, is_closed_);
+    }
+    if (elements_.capacity() == elements_.size()) {
+      write_fd_.Notify();
+    }
+    T value = std::move(elements_.front());
+    elements_.pop_front();
+    if (!is_closed_ && elements_.empty()) {
+      read_fd_.Clear();
+    }
+    return ReadResult(std::move(value), is_closed_);
+  }
+
+  // Attempts to write to the channel and returns the result of the attempt.
+  // See |WriteResult| for more information on the result.
+  //
+  // IMPORTANT: if this function returns |success| == false, |element| *will
+  // not* be modified. This allows the caller to try again with the same value.
+  PERFETTO_WARN_UNUSED_RESULT WriteResult WriteNonBlocking(T&& element) {
+    std::lock_guard<std::mutex> lock(mutex_);
+    if (is_closed_) {
+      return WriteResult{false, true};
+    }
+    if (elements_.size() == elements_.capacity()) {
+      return WriteResult{false, false};
+    }
+    if (elements_.empty()) {
+      read_fd_.Notify();
+    }
+    elements_.emplace_back(std::move(element));
+    if (elements_.size() == elements_.capacity()) {
+      write_fd_.Clear();
+    }
+    return WriteResult{true, false};
+  }
+
+  // Closes the channel for to any further writes.
+  //
+  // Note: this function will make both |read_fd| and |write_fd| ready to
+  // avoid deadlocks. Callers should correctly handle |is_closed| being
+  // false from |ReadNonBlocking| and |WriteNonBlocking| to stop watching the
+  // fds to avoid poll returning immediately.
+  //
+  // We prefer this behaviour as it's a lot more obvious something is wrong when
+  // it spins and takes 100% CPU rather than silently deadlocking.
+  void Close() {
+    std::lock_guard<std::mutex> lock(mutex_);
+    is_closed_ = true;
+
+    // Make both fds ready to avoid deadlocks.
+    read_fd_.Notify();
+    write_fd_.Notify();
+  }
+
+  // Notification FD for when |ReadNonBlocking| would succeed. Can be useful to
+  // pass to AddFileDescriptorWatch to read data from the channel.
+  base::PlatformHandle read_fd() const { return read_fd_.fd(); }
+
+  // Notification FD for when |WriteNonBlocking| would succeed. Can be useful to
+  // pass to AddFileDescriptorWatch to send data through the channel.
+  base::PlatformHandle write_fd() const { return write_fd_.fd(); }
+
+ private:
+  std::mutex mutex_;
+  base::CircularQueue<T> elements_;
+  bool is_closed_ = false;
+
+  base::EventFd read_fd_;
+  base::EventFd write_fd_;
+};
+
+}  // namespace base
+}  // namespace perfetto
+
+#endif  // INCLUDE_PERFETTO_EXT_BASE_THREADING_CHANNEL_H_
diff --git a/include/perfetto/protozero/BUILD.gn b/include/perfetto/protozero/BUILD.gn
index c99f7fd..4c6c08f 100644
--- a/include/perfetto/protozero/BUILD.gn
+++ b/include/perfetto/protozero/BUILD.gn
@@ -20,6 +20,7 @@
     "cpp_message_obj.h",
     "field.h",
     "field_writer.h",
+    "gen_field_helpers.h",
     "message.h",
     "message_arena.h",
     "message_handle.h",
diff --git a/include/perfetto/protozero/gen_field_helpers.h b/include/perfetto/protozero/gen_field_helpers.h
new file mode 100644
index 0000000..ad3dee8
--- /dev/null
+++ b/include/perfetto/protozero/gen_field_helpers.h
@@ -0,0 +1,152 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef INCLUDE_PERFETTO_PROTOZERO_GEN_FIELD_HELPERS_H_
+#define INCLUDE_PERFETTO_PROTOZERO_GEN_FIELD_HELPERS_H_
+
+#include "perfetto/protozero/message.h"
+#include "perfetto/protozero/proto_decoder.h"
+#include "perfetto/protozero/proto_utils.h"
+#include "perfetto/protozero/scattered_heap_buffer.h"
+
+namespace protozero {
+namespace internal {
+namespace gen_helpers {
+
+// This file implements some helpers used by the protobuf generated code in the
+// .gen.cc files.
+//
+// The .gen.cc generated protobuf implementation (as opposed to the .pbzero.h
+// implementation) is not zero-copy and is not supposed to be used in fast
+// paths, so most of these helpers are designed to reduce binary size.
+
+void DeserializeString(const protozero::Field& field, std::string* dst);
+
+// Read packed repeated elements (serialized as `wire_type`) from `field` into
+// the `*dst` vector. Returns false if some bytes of `field` could not be
+// interpreted correctly as `wire_type`.
+template <proto_utils::ProtoWireType wire_type, typename CppType>
+bool DeserializePackedRepeated(const protozero::Field& field,
+                               std::vector<CppType>* dst) {
+  bool parse_error = false;
+  for (::protozero::PackedRepeatedFieldIterator<wire_type, CppType> rep(
+           field.data(), field.size(), &parse_error);
+       rep; ++rep) {
+    dst->emplace_back(*rep);
+  }
+  return !parse_error;
+}
+
+extern template bool
+DeserializePackedRepeated<proto_utils::ProtoWireType::kVarInt, uint64_t>(
+    const protozero::Field& field,
+    std::vector<uint64_t>* dst);
+
+extern template bool
+DeserializePackedRepeated<proto_utils::ProtoWireType::kVarInt, int64_t>(
+    const protozero::Field& field,
+    std::vector<int64_t>* dst);
+
+extern template bool
+DeserializePackedRepeated<proto_utils::ProtoWireType::kVarInt, uint32_t>(
+    const protozero::Field& field,
+    std::vector<uint32_t>* dst);
+
+extern template bool
+DeserializePackedRepeated<proto_utils::ProtoWireType::kVarInt, int32_t>(
+    const protozero::Field& field,
+    std::vector<int32_t>* dst);
+
+// Serializers for different type of fields
+
+void SerializeTinyVarInt(uint32_t field_id, bool value, Message* msg);
+
+template <typename T>
+void SerializeExtendedVarInt(uint32_t field_id, T value, Message* msg) {
+  msg->AppendVarInt(field_id, value);
+}
+
+extern template void SerializeExtendedVarInt<uint64_t>(uint32_t field_id,
+                                                       uint64_t value,
+                                                       Message* msg);
+
+extern template void SerializeExtendedVarInt<uint32_t>(uint32_t field_id,
+                                                       uint32_t value,
+                                                       Message* msg);
+
+template <typename T>
+void SerializeVarInt(uint32_t field_id, T value, Message* msg) {
+  SerializeExtendedVarInt(
+      field_id, proto_utils::ExtendValueForVarIntSerialization(value), msg);
+}
+
+template <typename T>
+void SerializeSignedVarInt(uint32_t field_id, T value, Message* msg) {
+  SerializeVarInt(field_id, proto_utils::ZigZagEncode(value), msg);
+}
+
+template <typename T>
+void SerializeFixed(uint32_t field_id, T value, Message* msg) {
+  msg->AppendFixed(field_id, value);
+}
+
+extern template void SerializeFixed<double>(uint32_t field_id,
+                                            double value,
+                                            Message* msg);
+
+extern template void SerializeFixed<float>(uint32_t field_id,
+                                           float value,
+                                           Message* msg);
+
+extern template void SerializeFixed<uint64_t>(uint32_t field_id,
+                                              uint64_t value,
+                                              Message* msg);
+
+extern template void SerializeFixed<int64_t>(uint32_t field_id,
+                                             int64_t value,
+                                             Message* msg);
+
+extern template void SerializeFixed<uint32_t>(uint32_t field_id,
+                                              uint32_t value,
+                                              Message* msg);
+
+extern template void SerializeFixed<int32_t>(uint32_t field_id,
+                                             int32_t value,
+                                             Message* msg);
+
+void SerializeString(uint32_t field_id, const std::string& value, Message* msg);
+
+void SerializeUnknownFields(const std::string& unknown_fields, Message* msg);
+
+// Wrapper around HeapBuffered that avoids inlining.
+class MessageSerializer {
+ public:
+  MessageSerializer();
+  ~MessageSerializer();
+
+  Message* get() { return msg_.get(); }
+  std::vector<uint8_t> SerializeAsArray();
+  std::string SerializeAsString();
+
+ private:
+  HeapBuffered<Message> msg_;
+};
+
+}  // namespace gen_helpers
+}  // namespace internal
+}  // namespace protozero
+
+#endif  // INCLUDE_PERFETTO_PROTOZERO_GEN_FIELD_HELPERS_H_
diff --git a/include/perfetto/protozero/proto_utils.h b/include/perfetto/protozero/proto_utils.h
index eafd6ce..2896b3d 100644
--- a/include/perfetto/protozero/proto_utils.h
+++ b/include/perfetto/protozero/proto_utils.h
@@ -178,7 +178,9 @@
 }
 
 template <typename T>
-inline uint8_t* WriteVarInt(T value, uint8_t* target) {
+auto ExtendValueForVarIntSerialization(T value) -> typename std::make_unsigned<
+    typename std::conditional<std::is_unsigned<T>::value, T, int64_t>::type>::
+    type {
   // If value is <= 0 we must first sign extend to int64_t (see [1]).
   // Finally we always cast to an unsigned value to to avoid arithmetic
   // (sign expanding) shifts in the while loop.
@@ -198,6 +200,13 @@
   MaybeExtendedType extended_value = static_cast<MaybeExtendedType>(value);
   UnsignedType unsigned_value = static_cast<UnsignedType>(extended_value);
 
+  return unsigned_value;
+}
+
+template <typename T>
+inline uint8_t* WriteVarInt(T value, uint8_t* target) {
+  auto unsigned_value = ExtendValueForVarIntSerialization(value);
+
   while (unsigned_value >= 0x80) {
     *target++ = static_cast<uint8_t>(unsigned_value) | 0x80;
     unsigned_value >>= 7;
diff --git a/include/perfetto/trace_processor/ref_counted.h b/include/perfetto/trace_processor/ref_counted.h
index 4eb27c9..02996f0 100644
--- a/include/perfetto/trace_processor/ref_counted.h
+++ b/include/perfetto/trace_processor/ref_counted.h
@@ -88,6 +88,23 @@
   // This case is really the move-assignment operator=(&&).
   void reset(T* new_obj) { *this = RefPtr<T>(new_obj); }
 
+  // Releases the pointer owned by this RefPtr *without* decrementing the
+  // refcount. Callers *must* call |FromReleasedUnsafe| at a later date with
+  // this pointer to avoid memory leaks.
+  T* ReleaseUnsafe() {
+    auto* old_ptr = ptr_;
+    ptr_ = nullptr;
+    return old_ptr;
+  }
+
+  // Creates a RefPtr from a pointer returned by |ReleaseUnsafe|. Passing a
+  // pointer from any other source results in undefined behaviour.
+  static RefPtr<T> FromReleasedUnsafe(T* ptr) {
+    RefPtr<T> res;
+    res.ptr_ = ptr;
+    return res;
+  }
+
   // Move operators.
   RefPtr(RefPtr&& move_from) noexcept {
     ptr_ = move_from.ptr_;
diff --git a/include/perfetto/tracing/data_source.h b/include/perfetto/tracing/data_source.h
index acf892c..7206776 100644
--- a/include/perfetto/tracing/data_source.h
+++ b/include/perfetto/tracing/data_source.h
@@ -459,7 +459,8 @@
         instances &= Traits::GetActiveInstances(trace_point_data)
                          ->load(std::memory_order_acquire);
         instance_state = static_state_.TryGetCached(instances, i);
-        if (!instance_state || !instance_state->trace_lambda_enabled)
+        if (!instance_state || !instance_state->trace_lambda_enabled.load(
+                                   std::memory_order_relaxed))
           continue;
         tls_inst.muxer_id_for_testing = instance_state->muxer_id_for_testing;
         tls_inst.backend_id = instance_state->backend_id;
diff --git a/include/perfetto/tracing/internal/data_source_internal.h b/include/perfetto/tracing/internal/data_source_internal.h
index 9d9c6a2..8cfe5e6 100644
--- a/include/perfetto/tracing/internal/data_source_internal.h
+++ b/include/perfetto/tracing/internal/data_source_internal.h
@@ -59,7 +59,7 @@
   // Keep this flag as the first field. This allows the compiler to directly
   // dereference the DataSourceState* pointer in the trace fast-path without
   // doing extra pointr arithmetic.
-  bool trace_lambda_enabled = false;
+  std::atomic<bool> trace_lambda_enabled = false;
 
   // The overall TracingMuxerImpl instance id, which gets incremented by
   // ResetForTesting.
diff --git a/protos/perfetto/common/BUILD.gn b/protos/perfetto/common/BUILD.gn
index 5ecc0de..31d4842 100644
--- a/protos/perfetto/common/BUILD.gn
+++ b/protos/perfetto/common/BUILD.gn
@@ -36,4 +36,10 @@
     "tracing_service_state.proto",
     "track_event_descriptor.proto",
   ]
+  proto_generators = [
+    "lite",
+    "zero",
+    "cpp",
+    "source_set",
+  ]
 }
diff --git a/protos/perfetto/trace_processor/BUILD.gn b/protos/perfetto/trace_processor/BUILD.gn
index c8671b1..4ba70c7 100644
--- a/protos/perfetto/trace_processor/BUILD.gn
+++ b/protos/perfetto/trace_processor/BUILD.gn
@@ -17,10 +17,11 @@
 
 perfetto_proto_library("@TYPE@") {
   proto_generators = [
+    "lite",
     "zero",
     "source_set",
   ]
-  deps = [ "../common:zero" ]  # ../common:zero needed for descriptor.proto.
+  deps = [ "../common:@TYPE@" ]  # needed for descriptor.proto.
   sources = []
   foreach(source, trace_processor_protos) {
     sources += [ "$source.proto" ]
@@ -34,3 +35,10 @@
   ]
   sources = [ "metrics_impl.proto" ]
 }
+
+if (enable_perfetto_grpc) {
+  perfetto_grpc_library("cloud_trace_processor_grpc") {
+    deps = [ ":lite" ]
+    sources = [ "cloud_trace_processor.proto" ]
+  }
+}
diff --git a/protos/perfetto/trace_processor/cloud_trace_processor.proto b/protos/perfetto/trace_processor/cloud_trace_processor.proto
new file mode 100644
index 0000000..b009fe3
--- /dev/null
+++ b/protos/perfetto/trace_processor/cloud_trace_processor.proto
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto2";
+
+package perfetto.protos;
+
+service CloudTraceProcessorWorkerService {}
\ No newline at end of file
diff --git a/protos/perfetto/trace_processor/proto_files.gni b/protos/perfetto/trace_processor/proto_files.gni
index b46da47..4c9ae21 100644
--- a/protos/perfetto/trace_processor/proto_files.gni
+++ b/protos/perfetto/trace_processor/proto_files.gni
@@ -15,6 +15,7 @@
 # This variable is used both by ./BUILD.gn (for the C++ proto codegen) and by
 # //ui/BUIlD.gn (for the TypeScript/JS proto codegen).
 trace_processor_protos = [
+  "cloud_trace_processor",
   "trace_processor",
   "metatrace_categories",
 ]
diff --git a/protos/third_party/chromium/chrome_track_event.proto b/protos/third_party/chromium/chrome_track_event.proto
index 911dbe0..546e22b 100644
--- a/protos/third_party/chromium/chrome_track_event.proto
+++ b/protos/third_party/chromium/chrome_track_event.proto
@@ -1034,6 +1034,7 @@
   optional string stack_trace = 6;
   repeated V8StackFrame stack_frames = 7;
 }
+
 // Contains the meta information for high entropy events (like api calls)
 // that are to be traced for debugging in the context of identifiability study.
 message BlinkHighEntropyAPI {
@@ -1070,9 +1071,44 @@
   optional CalledJsApi called_api = 2;
 }
 
+// Contains information about a tab switch measurement.
+message TabSwitchMeasurement {
+  // Possible outcomes of a tab switch. Maps to
+  // blink::ContentToVisibleTimeReporter::TabSwitchResult.
+  enum Result {
+    RESULT_UNSPECIFIED = 0;
+    // A frame was successfully presented after a tab switch.
+    RESULT_SUCCESS = 1;
+    // Tab was hidden before a frame was presented after a tab switch.
+    RESULT_INCOMPLETE = 2;
+    // TabWasShown called twice for a frame without TabWasHidden between. Treat
+    // the first TabWasShown as an incomplete tab switch.
+    RESULT_MISSED_TAB_HIDE = 3;
+  }
+
+  // State of the target tab. Corresponds to the suffixes of the
+  // Browser.TabSwitchResult2.* histograms.
+  enum TabState {
+    STATE_UNSPECIFIED = 0;
+    // The tab has frames in the frame cache, which can be composited in the
+    // browser process.
+    STATE_WITH_SAVED_FRAMES = 1;
+    // The tab has no frames in the frame cache so must be rendered and
+    // composited in a renderer process.
+    STATE_LOADED_NO_SAVED_FRAMES = 2;
+    // The tab has no frames in the frame cache and is not fully loaded, so it
+    // must be reloaded before it can be rendered and composited in a renderer
+    // process.
+    STATE_NOT_LOADED_NO_SAVED_FRAMES = 3;
+  }
+
+  optional Result result = 1;
+  optional TabState tab_state = 2;
+}
+
 message ChromeTrackEvent {
   // Extension range for Chrome: 1000-1999
-  // Next ID: 1046
+  // Next ID: 1047
   extend TrackEvent {
     optional ChromeAppState chrome_app_state = 1000;
 
@@ -1170,5 +1206,7 @@
     optional UkmPageLoadTimingUpdate ukm_page_load_timing_update = 1044;
 
     optional BlinkHighEntropyAPI high_entropy_api = 1045;
+
+    optional TabSwitchMeasurement tab_switch_measurement = 1046;
   }
 }
diff --git a/python/generators/diff_tests/runner.py b/python/generators/diff_tests/runner.py
index dab06d1..c6eb14e 100644
--- a/python/generators/diff_tests/runner.py
+++ b/python/generators/diff_tests/runner.py
@@ -21,7 +21,7 @@
 import sys
 import tempfile
 from dataclasses import dataclass
-from typing import Dict, List, Tuple
+from typing import List, Tuple, Optional
 
 from google.protobuf import text_format
 from python.generators.diff_tests.testing import TestCase, TestType
@@ -63,7 +63,7 @@
   passed: bool
   stderr: str
   exit_code: int
-  perf_result: PerfResult
+  perf_result: Optional[PerfResult]
 
   def __init__(self, test: TestCase, gen_trace_path: str, cmd: List[str],
                expected_text: str, actual_text: str, stderr: str,
@@ -88,7 +88,10 @@
     actual_content = self.actual.replace('\r\n', '\n')
     self.passed = (expected_content == actual_content)
 
-    self.perf_result = PerfResult(self.test, perf_lines)
+    if self.exit_code == 0:
+      self.perf_result = PerfResult(self.test, perf_lines)
+    else:
+      self.perf_result = None
 
   def write_diff(self):
     expected_lines = self.expected.splitlines(True)
diff --git a/python/generators/diff_tests/testing.py b/python/generators/diff_tests/testing.py
index 30f69bd..aeef2b0 100644
--- a/python/generators/diff_tests/testing.py
+++ b/python/generators/diff_tests/testing.py
@@ -16,7 +16,7 @@
 import inspect
 import os
 from dataclasses import dataclass
-from typing import Dict, List, Union
+from typing import List, Union
 from enum import Enum
 import re
 
diff --git a/python/tools/cpu_profile.py b/python/tools/cpu_profile.py
index 46b258f..8968bb9 100644
--- a/python/tools/cpu_profile.py
+++ b/python/tools/cpu_profile.py
@@ -98,6 +98,25 @@
       metavar="DURATION",
       type=int,
       default=0)
+  # Profiling using hardware counters.
+  parser.add_argument(
+      "-e",
+      "--event",
+      help="Use the specified hardware counter event for sampling.",
+      metavar="EVENT",
+      action="append",
+      # See: '//perfetto/protos/perfetto/trace/perfetto_trace.proto'.
+      choices=['HW_CPU_CYCLES', 'HW_INSTRUCTIONS', 'HW_CACHE_REFERENCES',
+               'HW_CACHE_MISSES', 'HW_BRANCH_INSTRUCTIONS', 'HW_BRANCH_MISSES',
+               'HW_BUS_CYCLES', 'HW_STALLED_CYCLES_FRONTEND',
+               'HW_STALLED_CYCLES_BACKEND'],
+      default=[])
+  parser.add_argument(
+      "-k",
+      "--kernel-frames",
+      help="Collect kernel frames.  Default: false.",
+      action="store_true",
+      default=False)
   parser.add_argument(
       "-n",
       "--name",
@@ -136,8 +155,11 @@
       default=None)
 
   args = parser.parse_args()
-  if args.config is not None and args.name is not None:
-    sys.exit("--name/-n should not be provided when --config/-c is provided.")
+  if args.config is not None:
+    if args.name is not None:
+      sys.exit("--name/-n should not be specified with --config/-c.")
+    elif args.event is not None:
+      sys.exit("-e/--event should not be specified with --config/-c.")
   elif args.config is None and args.name is None:
     sys.exit("One of --names/-n or --config/-c is required.")
 
@@ -186,7 +208,7 @@
     except IOError as error:
       sys.exit("Unable to read config file: {}".format(error))
 
-  CONFIG_INDENT = '      '
+  CONFIG_INDENT = '          '
   CONFIG = textwrap.dedent('''\
   buffers {{
     size_kb: 2048
@@ -206,18 +228,6 @@
     }}
   }}
 
-  data_sources {{
-    config {{
-      name: "linux.perf"
-      target_buffer: 1
-      perf_event_config {{
-        all_cpus: true
-        sampling_frequency: {frequency}
-  {target_config}
-      }}
-    }}
-  }}
-
   duration_ms: {duration}
   write_into_file: true
   flush_timeout_ms: 30000
@@ -235,6 +245,35 @@
   target_config = "\n".join(
       [f'{CONFIG_INDENT}target_cmdline: "{p}"' for p in matching_processes])
 
+  events = args.event or ['SW_CPU_CLOCK']
+  for event in events:
+    CONFIG += (textwrap.dedent('''
+    data_sources {{
+      config {{
+        name: "linux.perf"
+        target_buffer: 1
+        perf_event_config {{
+          timebase {{
+            counter: %s
+            frequency: {frequency}
+            timestamp_clock: PERF_CLOCK_MONOTONIC
+          }}
+          callstack_sampling {{
+            scope {{
+    {target_config}
+            }}
+            kernel_frames: {kernel_config}
+          }}
+        }}
+      }}
+    }}
+    ''') % (event))
+
+  if args.kernel_frames:
+    kernel_config = "true"
+  else:
+    kernel_config = "false"
+
   if not args.print_config:
     print("Configured profiling for these processes:\n")
     for matching_process in matching_processes:
@@ -244,7 +283,8 @@
   config = CONFIG.format(
       frequency=args.frequency,
       duration=args.duration,
-      target_config=target_config)
+      target_config=target_config,
+      kernel_config=kernel_config)
 
   return config
 
diff --git a/src/base/threading/BUILD.gn b/src/base/threading/BUILD.gn
index ba709e7..b1e01e3 100644
--- a/src/base/threading/BUILD.gn
+++ b/src/base/threading/BUILD.gn
@@ -28,6 +28,8 @@
     "../../../gn:default_deps",
     "../../../gn:gtest_and_gmock",
   ]
-
-  sources = [ "thread_pool_unittest.cc" ]
+  sources = [
+    "channel_unittest.cc",
+    "thread_pool_unittest.cc",
+  ]
 }
diff --git a/src/base/threading/channel_unittest.cc b/src/base/threading/channel_unittest.cc
new file mode 100644
index 0000000..21c5ce7
--- /dev/null
+++ b/src/base/threading/channel_unittest.cc
@@ -0,0 +1,188 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "perfetto/ext/base/threading/channel.h"
+#include <sys/poll.h>
+#include <memory>
+
+#include "perfetto/base/platform_handle.h"
+#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/optional.h"
+#include "perfetto/ext/base/utils.h"
+#include "test/gtest_and_gmock.h"
+
+#if PERFETTO_BUILDFLAG(PERFETTO_OS_WIN)
+#include <Windows.h>
+#include <synchapi.h>
+#else
+#include <poll.h>
+#endif
+
+namespace perfetto {
+namespace base {
+namespace {
+
+using ReadResult = Channel<int>::ReadResult;
+using WriteResult = Channel<int>::WriteResult;
+
+bool IsReady(base::PlatformHandle fd) {
+#if PERFETTO_BUILDFLAG(PERFETTO_OS_WIN)
+  std::array<base::PlatformHandle, 1> poll_fds{fd};
+  DWORD ret =
+      WaitForMultipleObjects(static_cast<DWORD>(poll_fds.size()), &poll_fds[0],
+                             /*bWaitAll=*/false, 0);
+  PERFETTO_CHECK(ret == WAIT_TIMEOUT || ret == 0);
+  return ret == 0;
+#else
+  std::array<struct pollfd, 1> poll_fds;
+  poll_fds[0].fd = fd;
+  poll_fds[0].events = POLLIN | POLLHUP;
+  poll_fds[0].revents = 0;
+
+  int ret = PERFETTO_EINTR(
+      poll(&poll_fds[0], static_cast<nfds_t>(poll_fds.size()), 0));
+  PERFETTO_CHECK(ret == 0 || ret == 1);
+  return ret == 1;
+#endif
+}
+
+TEST(ChannelUnittest, SingleElementBuffer) {
+  Channel<int> channel(1);
+  ASSERT_TRUE(IsReady(channel.write_fd()));
+  ASSERT_FALSE(IsReady(channel.read_fd()));
+
+  ASSERT_EQ(channel.WriteNonBlocking(100), WriteResult(true, false));
+  ASSERT_EQ(channel.WriteNonBlocking(101), WriteResult(false, false));
+
+  ASSERT_FALSE(IsReady(channel.write_fd()));
+  ASSERT_TRUE(IsReady(channel.read_fd()));
+
+  ASSERT_EQ(channel.ReadNonBlocking(), ReadResult(100, false));
+  ASSERT_EQ(channel.ReadNonBlocking(), ReadResult(base::nullopt, false));
+
+  ASSERT_TRUE(IsReady(channel.write_fd()));
+  ASSERT_FALSE(IsReady(channel.read_fd()));
+}
+
+TEST(ChannelUnittest, MultiElementBuffer) {
+  Channel<int> channel(2);
+  ASSERT_TRUE(IsReady(channel.write_fd()));
+  ASSERT_FALSE(IsReady(channel.read_fd()));
+
+  ASSERT_EQ(channel.WriteNonBlocking(100), WriteResult(true, false));
+  ASSERT_TRUE(IsReady(channel.write_fd()));
+  ASSERT_TRUE(IsReady(channel.read_fd()));
+
+  ASSERT_EQ(channel.WriteNonBlocking(101), WriteResult(true, false));
+  ASSERT_FALSE(IsReady(channel.write_fd()));
+  ASSERT_TRUE(IsReady(channel.read_fd()));
+
+  ASSERT_EQ(channel.ReadNonBlocking(), ReadResult(100, false));
+  ASSERT_TRUE(IsReady(channel.write_fd()));
+  ASSERT_TRUE(IsReady(channel.read_fd()));
+
+  ASSERT_EQ(channel.ReadNonBlocking(), ReadResult(101, false));
+  ASSERT_TRUE(IsReady(channel.write_fd()));
+  ASSERT_FALSE(IsReady(channel.read_fd()));
+
+  ASSERT_EQ(channel.ReadNonBlocking(), ReadResult(base::nullopt, false));
+  ASSERT_TRUE(IsReady(channel.write_fd()));
+  ASSERT_FALSE(IsReady(channel.read_fd()));
+}
+
+TEST(ChannelUnittest, CloseEmptyChannel) {
+  Channel<int> channel(1);
+
+  ASSERT_EQ(channel.ReadNonBlocking(), ReadResult(base::nullopt, false));
+  ASSERT_FALSE(IsReady(channel.read_fd()));
+
+  channel.Close();
+
+  ASSERT_EQ(channel.ReadNonBlocking(), ReadResult(base::nullopt, true));
+  ASSERT_EQ(channel.ReadNonBlocking(), ReadResult(base::nullopt, true));
+
+  ASSERT_TRUE(IsReady(channel.read_fd()));
+  ASSERT_TRUE(IsReady(channel.read_fd()));
+}
+
+TEST(ChannelUnittest, WriteDoesNotMoveIfFalse) {
+  Channel<std::unique_ptr<int>> channel(1);
+
+  std::unique_ptr<int> first(new int(100));
+  int* first_ptr = first.get();
+  ASSERT_EQ(channel.WriteNonBlocking(std::move(first)),
+            Channel<std::unique_ptr<int>>::WriteResult(true, false));
+  ASSERT_EQ(first.get(), nullptr);
+
+  std::unique_ptr<int> second(new int(101));
+  ASSERT_EQ(channel.WriteNonBlocking(std::move(second)),
+            Channel<std::unique_ptr<int>>::WriteResult(false, false));
+  ASSERT_NE(second.get(), nullptr);
+  ASSERT_EQ(*second, 101);
+
+  auto res = channel.ReadNonBlocking();
+  ASSERT_EQ(res.item->get(), first_ptr);
+}
+
+TEST(ChannelUnittest, ReadAfterClose) {
+  Channel<int> channel(1);
+  ASSERT_EQ(channel.ReadNonBlocking(), ReadResult(base::nullopt, false));
+  ASSERT_EQ(channel.WriteNonBlocking(100), WriteResult(true, false));
+  channel.Close();
+
+  ASSERT_EQ(channel.ReadNonBlocking(), ReadResult(100, true));
+  ASSERT_EQ(channel.ReadNonBlocking(), ReadResult(base::nullopt, true));
+}
+
+TEST(ChannelUnittest, WriteAfterClose) {
+  Channel<int> channel(1);
+  ASSERT_EQ(channel.WriteNonBlocking(100), WriteResult(true, false));
+  ASSERT_EQ(channel.WriteNonBlocking(101), WriteResult(false, false));
+  ASSERT_EQ(channel.ReadNonBlocking(), ReadResult(100, false));
+  channel.Close();
+
+  ASSERT_EQ(channel.WriteNonBlocking(101), WriteResult(false, true));
+}
+
+TEST(ChannelUnittest, EmptyClosedChannel) {
+  Channel<int> channel(1);
+  ASSERT_FALSE(IsReady(channel.read_fd()));
+  ASSERT_TRUE(IsReady(channel.write_fd()));
+  channel.Close();
+  ASSERT_TRUE(IsReady(channel.write_fd()));
+  ASSERT_TRUE(IsReady(channel.write_fd()));
+  ASSERT_EQ(channel.ReadNonBlocking(), ReadResult(base::nullopt, true));
+  ASSERT_TRUE(IsReady(channel.write_fd()));
+  ASSERT_TRUE(IsReady(channel.read_fd()));
+}
+
+TEST(ChannelUnittest, FullClosedChannel) {
+  Channel<int> channel(1);
+  ASSERT_FALSE(IsReady(channel.read_fd()));
+  ASSERT_EQ(channel.WriteNonBlocking(100), WriteResult(true, false));
+  ASSERT_TRUE(IsReady(channel.read_fd()));
+  ASSERT_FALSE(IsReady(channel.write_fd()));
+  channel.Close();
+  ASSERT_TRUE(IsReady(channel.write_fd()));
+
+  ASSERT_EQ(channel.ReadNonBlocking(), ReadResult(100, true));
+  ASSERT_TRUE(IsReady(channel.write_fd()));
+  ASSERT_TRUE(IsReady(channel.read_fd()));
+}
+
+}  // namespace
+}  // namespace base
+}  // namespace perfetto
diff --git a/src/profiling/common/producer_support.cc b/src/profiling/common/producer_support.cc
index 8ab0b42..a160149 100644
--- a/src/profiling/common/producer_support.cc
+++ b/src/profiling/common/producer_support.cc
@@ -110,10 +110,25 @@
     return true;
   }
 
+  bool trusted_initiator = ds_config.session_initiator() ==
+                           DataSourceConfig::SESSION_INITIATOR_TRUSTED_SYSTEM;
+
   uint64_t uid_without_profile = uid % kAidUserOffset;
   uint64_t uid_for_lookup = 0;
-  if (uid_without_profile >= kAidAppStart &&
-      uid_without_profile <= kAidAppEnd) {
+  if (uid_without_profile < kAidAppStart) {
+    // Platform processes are considered profileable by the platform itself.
+    // This includes platform UIDs from other profiles, e.g. "u10_system".
+    // It's possible that this is an app (e.g. com.android.settings runs as
+    // AID_SYSTEM), but we will skip checking packages.list for the profileable
+    // manifest flags, as running under a platform UID is considered sufficient.
+    // Minor consequence: shell cannot profile platform apps, even if their
+    // manifest flags opt into profiling from shell. Resolving this would
+    // require definitively disambiguating native processes from apps if both
+    // can run as the same platform UID.
+    return trusted_initiator;
+
+  } else if (uid_without_profile >= kAidAppStart &&
+             uid_without_profile <= kAidAppEnd) {
     // normal app
     uid_for_lookup = uid_without_profile;
 
@@ -133,8 +148,6 @@
     // even be the package in which the service was defined).
     // TODO(rsavitski): find a way for the platform to tell native services
     // about isolated<->app relations.
-    bool trusted_initiator = ds_config.session_initiator() ==
-                             DataSourceConfig::SESSION_INITIATOR_TRUSTED_SYSTEM;
     return trusted_initiator &&
            AllPackagesProfileableByTrustedInitiator(packages_list_path);
 
diff --git a/src/protozero/BUILD.gn b/src/protozero/BUILD.gn
index dcb85d3..d553aac 100644
--- a/src/protozero/BUILD.gn
+++ b/src/protozero/BUILD.gn
@@ -31,6 +31,7 @@
   ]
   sources = [
     "field.cc",
+    "gen_field_helpers.cc",
     "message.cc",
     "message_arena.cc",
     "message_handle.cc",
diff --git a/src/protozero/gen_field_helpers.cc b/src/protozero/gen_field_helpers.cc
new file mode 100644
index 0000000..85a41f7
--- /dev/null
+++ b/src/protozero/gen_field_helpers.cc
@@ -0,0 +1,103 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "perfetto/protozero/gen_field_helpers.h"
+
+namespace protozero {
+namespace internal {
+namespace gen_helpers {
+
+void DeserializeString(const protozero::Field& field, std::string* dst) {
+  field.get(dst);
+}
+
+template bool DeserializePackedRepeated<proto_utils::ProtoWireType::kVarInt,
+                                        uint64_t>(const protozero::Field& field,
+                                                  std::vector<uint64_t>* dst);
+
+template bool DeserializePackedRepeated<proto_utils::ProtoWireType::kVarInt,
+                                        int64_t>(const protozero::Field& field,
+                                                 std::vector<int64_t>* dst);
+
+template bool DeserializePackedRepeated<proto_utils::ProtoWireType::kVarInt,
+                                        uint32_t>(const protozero::Field& field,
+                                                  std::vector<uint32_t>* dst);
+
+template bool DeserializePackedRepeated<proto_utils::ProtoWireType::kVarInt,
+                                        int32_t>(const protozero::Field& field,
+                                                 std::vector<int32_t>* dst);
+
+void SerializeTinyVarInt(uint32_t field_id, bool value, Message* msg) {
+  msg->AppendTinyVarInt(field_id, value);
+}
+
+template void SerializeExtendedVarInt<uint64_t>(uint32_t field_id,
+                                                uint64_t value,
+                                                Message* msg);
+
+template void SerializeExtendedVarInt<uint32_t>(uint32_t field_id,
+                                                uint32_t value,
+                                                Message* msg);
+
+template void SerializeFixed<double>(uint32_t field_id,
+                                     double value,
+                                     Message* msg);
+
+template void SerializeFixed<float>(uint32_t field_id,
+                                    float value,
+                                    Message* msg);
+
+template void SerializeFixed<uint64_t>(uint32_t field_id,
+                                       uint64_t value,
+                                       Message* msg);
+
+template void SerializeFixed<int64_t>(uint32_t field_id,
+                                      int64_t value,
+                                      Message* msg);
+
+template void SerializeFixed<uint32_t>(uint32_t field_id,
+                                       uint32_t value,
+                                       Message* msg);
+
+template void SerializeFixed<int32_t>(uint32_t field_id,
+                                      int32_t value,
+                                      Message* msg);
+
+void SerializeString(uint32_t field_id,
+                     const std::string& value,
+                     Message* msg) {
+  msg->AppendString(field_id, value);
+}
+
+void SerializeUnknownFields(const std::string& unknown_fields, Message* msg) {
+  msg->AppendRawProtoBytes(unknown_fields.data(), unknown_fields.size());
+}
+
+MessageSerializer::MessageSerializer() = default;
+
+MessageSerializer::~MessageSerializer() = default;
+
+std::vector<uint8_t> MessageSerializer::SerializeAsArray() {
+  return msg_.SerializeAsArray();
+}
+
+std::string MessageSerializer::SerializeAsString() {
+  return msg_.SerializeAsString();
+}
+
+}  // namespace gen_helpers
+}  // namespace internal
+}  // namespace protozero
diff --git a/src/protozero/protoc_plugin/cppgen_plugin.cc b/src/protozero/protoc_plugin/cppgen_plugin.cc
index a963910..eadc23a 100644
--- a/src/protozero/protoc_plugin/cppgen_plugin.cc
+++ b/src/protozero/protoc_plugin/cppgen_plugin.cc
@@ -46,6 +46,7 @@
 using perfetto::base::StripSuffix;
 using perfetto::base::ToUpper;
 
+static constexpr auto TYPE_STRING = FieldDescriptor::TYPE_STRING;
 static constexpr auto TYPE_MESSAGE = FieldDescriptor::TYPE_MESSAGE;
 static constexpr auto TYPE_SINT32 = FieldDescriptor::TYPE_SINT32;
 static constexpr auto TYPE_SINT64 = FieldDescriptor::TYPE_SINT64;
@@ -147,6 +148,7 @@
   h_printer.Print("#include \"perfetto/protozero/copyable_ptr.h\"\n");
   h_printer.Print("#include \"perfetto/base/export.h\"\n\n");
 
+  cc_printer.Print("#include \"perfetto/protozero/gen_field_helpers.h\"\n");
   cc_printer.Print("#include \"perfetto/protozero/message.h\"\n");
   cc_printer.Print(
       "#include \"perfetto/protozero/packed_repeated_fields.h\"\n");
@@ -388,26 +390,26 @@
     const FieldDescriptor* field) const {
   switch (field->type()) {
     case FieldDescriptor::TYPE_BOOL:
-      return "AppendTinyVarInt";
+      return "::protozero::internal::gen_helpers::SerializeTinyVarInt";
     case FieldDescriptor::TYPE_INT32:
     case FieldDescriptor::TYPE_INT64:
     case FieldDescriptor::TYPE_UINT32:
     case FieldDescriptor::TYPE_UINT64:
     case FieldDescriptor::TYPE_ENUM:
-      return "AppendVarInt";
+      return "::protozero::internal::gen_helpers::SerializeVarInt";
     case FieldDescriptor::TYPE_SINT32:
     case FieldDescriptor::TYPE_SINT64:
-      return "AppendSignedVarInt";
+      return "::protozero::internal::gen_helpers::SerializeSignedVarInt";
     case FieldDescriptor::TYPE_FIXED32:
     case FieldDescriptor::TYPE_FIXED64:
     case FieldDescriptor::TYPE_SFIXED32:
     case FieldDescriptor::TYPE_SFIXED64:
     case FieldDescriptor::TYPE_FLOAT:
     case FieldDescriptor::TYPE_DOUBLE:
-      return "AppendFixed";
+      return "::protozero::internal::gen_helpers::SerializeFixed";
     case FieldDescriptor::TYPE_STRING:
     case FieldDescriptor::TYPE_BYTES:
-      return "AppendString";
+      return "::protozero::internal::gen_helpers::SerializeString";
     case FieldDescriptor::TYPE_GROUP:
     case FieldDescriptor::TYPE_MESSAGE:
       abort();
@@ -755,7 +757,10 @@
              "n", field->lowercase_name());
     p->Indent();
     if (field->options().lazy()) {
-      p->Print("$n$_ = field.as_std_string();\n", "n", field->lowercase_name());
+      p->Print(
+          "::protozero::internal::gen_helpers::DeserializeString(field, "
+          "&$n$_);\n",
+          "n", field->lowercase_name());
     } else {
       std::string statement;
       if (field->type() == TYPE_MESSAGE) {
@@ -764,6 +769,10 @@
         if (field->type() == TYPE_SINT32 || field->type() == TYPE_SINT64) {
           // sint32/64 fields are special and need to be zig-zag-decoded.
           statement = "field.get_signed(&$rval$);\n";
+        } else if (field->type() == TYPE_STRING) {
+          statement =
+              "::protozero::internal::gen_helpers::DeserializeString(field, "
+              "&$rval$);\n";
         } else {
           statement = "field.get(&$rval$);\n";
         }
@@ -774,10 +783,12 @@
           PERFETTO_FATAL("packed signed (zigzag) fields are not supported");
         }
         p->Print(
-            "for (::protozero::PackedRepeatedFieldIterator<$w$, $c$> "
-            "rep(field.data(), field.size(), &packed_error); rep; ++rep) {\n",
-            "w", GetPackedWireType(field), "c", GetCppType(field, false));
-        p->Print("  $n$_.emplace_back(*rep);\n", "n", field->lowercase_name());
+            "if "
+            "(!::protozero::internal::gen_helpers::DeserializePackedRepeated"
+            "<$w$, $c$>(field, &$n$_)) {\n",
+            "w", GetPackedWireType(field), "c", GetCppType(field, false), "n",
+            field->lowercase_name());
+        p->Print("  packed_error = true;");
         p->Print("}\n");
       } else if (field->is_repeated()) {
         p->Print("$n$_.emplace_back();\n", "n", field->lowercase_name());
@@ -807,7 +818,7 @@
   // Generate the SerializeAsString() method definition.
   p->Print("std::string $f$::SerializeAsString() const {\n", "f", full_name);
   p->Indent();
-  p->Print("::protozero::HeapBuffered<::protozero::Message> msg;\n");
+  p->Print("::protozero::internal::gen_helpers::MessageSerializer msg;\n");
   p->Print("Serialize(msg.get());\n");
   p->Print("return msg.SerializeAsString();\n");
   p->Outdent();
@@ -817,7 +828,7 @@
   p->Print("std::vector<uint8_t> $f$::SerializeAsArray() const {\n", "f",
            full_name);
   p->Indent();
-  p->Print("::protozero::HeapBuffered<::protozero::Message> msg;\n");
+  p->Print("::protozero::internal::gen_helpers::MessageSerializer msg;\n");
   p->Print("Serialize(msg.get());\n");
   p->Print("return msg.SerializeAsArray();\n");
   p->Outdent();
@@ -863,7 +874,7 @@
                  "msg->BeginNestedMessage<::protozero::Message>($id$));\n");
       } else {
         args["setter"] = GetProtozeroSetter(field);
-        p->Print(args, "msg->$setter$($id$, $rvalue$);\n");
+        p->Print(args, "$setter$($id$, $rvalue$, msg);\n");
       }
       p->Outdent();
       p->Print("}\n");
@@ -872,8 +883,8 @@
     p->Print("\n");
   }  // for (field)
   p->Print(
-      "msg->AppendRawProtoBytes(unknown_fields_.data(), "
-      "unknown_fields_.size());\n");
+      "protozero::internal::gen_helpers::SerializeUnknownFields(unknown_fields_"
+      ", msg);\n");
   p->Outdent();
   p->Print("}\n\n");
 }
diff --git a/src/protozero/test/cppgen_conformance_unittest.cc b/src/protozero/test/cppgen_conformance_unittest.cc
index 933c74f..5ac43aa 100644
--- a/src/protozero/test/cppgen_conformance_unittest.cc
+++ b/src/protozero/test/cppgen_conformance_unittest.cc
@@ -62,7 +62,8 @@
   msg->set_big_enum(decltype(msg->big_enum())::BEGIN);
 
   msg->set_field_string("FizzBuzz");
-  msg->set_field_bytes(reinterpret_cast<const uint8_t*>("\x11\x00\xBE\xEF"), 4);
+  msg->set_field_bytes(reinterpret_cast<const uint8_t*>("\x11\x00\xBE\xEF"),
+                       4u);
   msg->add_repeated_int32(1);
   msg->add_repeated_int32(-1);
   msg->add_repeated_int32(100);
@@ -100,7 +101,7 @@
   pbgold::EveryField gold_msg;
   gold_msg.ParseFromString(serialized);
   CheckTestingFields(gold_msg);
-  EXPECT_EQ(serialized.size(), static_cast<size_t>(gold_msg.ByteSize()));
+  EXPECT_EQ(serialized.size(), static_cast<size_t>(gold_msg.ByteSizeLong()));
 }
 
 TEST(ProtoCppConformanceTest, GoldEncode_GenDecode) {
diff --git a/src/protozero/test/protozero_conformance_unittest.cc b/src/protozero/test/protozero_conformance_unittest.cc
index bdb15fa..7a73b69 100644
--- a/src/protozero/test/protozero_conformance_unittest.cc
+++ b/src/protozero/test/protozero_conformance_unittest.cc
@@ -94,7 +94,7 @@
   EXPECT_EQ(-1, gold_msg.repeated_int32(1));
   EXPECT_EQ(100, gold_msg.repeated_int32(2));
   EXPECT_EQ(2000000, gold_msg.repeated_int32(3));
-  EXPECT_EQ(serialized.size(), static_cast<size_t>(gold_msg.ByteSize()));
+  EXPECT_EQ(serialized.size(), static_cast<size_t>(gold_msg.ByteSizeLong()));
 }
 
 TEST(ProtoZeroConformanceTest, NestedMessages) {
diff --git a/src/trace_processor/importers/fuchsia/fuchsia_trace_parser.cc b/src/trace_processor/importers/fuchsia/fuchsia_trace_parser.cc
index e36da64..a4dc251 100644
--- a/src/trace_processor/importers/fuchsia/fuchsia_trace_parser.cc
+++ b/src/trace_processor/importers/fuchsia/fuchsia_trace_parser.cc
@@ -270,6 +270,11 @@
               procs->GetOrCreateProcess(static_cast<uint32_t>(tinfo.pid));
           std::string name_str =
               context_->storage->GetString(name).ToStdString();
+          uint64_t counter_id;
+          if (!cursor.ReadUint64(&counter_id)) {
+            context_->storage->IncrementStats(stats::fuchsia_invalid_event);
+            return;
+          }
           // Note: In the Fuchsia trace format, counter values are stored in the
           // arguments for the record, with the data series defined by both the
           // record name and the argument name. In Perfetto, counters only have
@@ -278,6 +283,7 @@
             std::string counter_name_str = name_str + ":";
             counter_name_str +=
                 context_->storage->GetString(arg.name).ToStdString();
+            counter_name_str += ":" + std::to_string(counter_id);
             bool is_valid_value = false;
             double counter_value = -1;
             switch (arg.value.Type()) {
diff --git a/src/trace_processor/importers/fuchsia/fuchsia_trace_utils.cc b/src/trace_processor/importers/fuchsia/fuchsia_trace_utils.cc
index d7879be..47de0f8 100644
--- a/src/trace_processor/importers/fuchsia/fuchsia_trace_utils.cc
+++ b/src/trace_processor/importers/fuchsia/fuchsia_trace_utils.cc
@@ -80,7 +80,7 @@
     case ArgType::kString:
       return Variadic::String(string_);
     case ArgType::kPointer:
-      return Variadic::Integer(static_cast<int64_t>(pointer_));
+      return Variadic::Pointer(pointer_);
     case ArgType::kKoid:
       return Variadic::Integer(static_cast<int64_t>(koid_));
     case ArgType::kUnknown:
diff --git a/src/tracing/internal/tracing_muxer_impl.cc b/src/tracing/internal/tracing_muxer_impl.cc
index 463d0d4..38cd239 100644
--- a/src/tracing/internal/tracing_muxer_impl.cc
+++ b/src/tracing/internal/tracing_muxer_impl.cc
@@ -1314,7 +1314,8 @@
   std::unique_lock<std::recursive_mutex> lock(ds.internal_state->lock);
   if (ds.internal_state->interceptor)
     ds.internal_state->interceptor->OnStart({});
-  ds.internal_state->trace_lambda_enabled = true;
+  ds.internal_state->trace_lambda_enabled.store(true,
+                                                std::memory_order_relaxed);
   PERFETTO_DCHECK(ds.internal_state->data_source != nullptr);
 
   if (!ds.requires_callbacks_under_lock)
@@ -1408,7 +1409,8 @@
   TracingSessionGlobalID startup_session_id;
   {
     std::lock_guard<std::recursive_mutex> guard(ds.internal_state->lock);
-    ds.internal_state->trace_lambda_enabled = false;
+    ds.internal_state->trace_lambda_enabled.store(false,
+                                                  std::memory_order_relaxed);
     ds.internal_state->data_source.reset();
     ds.internal_state->interceptor.reset();
     startup_buffer_reservation =
diff --git a/src/tracing/test/aligned_buffer_test.cc b/src/tracing/test/aligned_buffer_test.cc
index 6a603ea..082e130 100644
--- a/src/tracing/test/aligned_buffer_test.cc
+++ b/src/tracing/test/aligned_buffer_test.cc
@@ -20,8 +20,10 @@
 
 namespace perfetto {
 
+#if !PERFETTO_IS_AT_LEAST_CPP17()
 // static
 constexpr size_t AlignedBufferTest::kNumPages;
+#endif
 
 void AlignedBufferTest::SetUp() {
   page_size_ = GetParam();
diff --git a/src/tracing/test/api_integrationtest.cc b/src/tracing/test/api_integrationtest.cc
index f0f2f5d..583d281 100644
--- a/src/tracing/test/api_integrationtest.cc
+++ b/src/tracing/test/api_integrationtest.cc
@@ -201,12 +201,15 @@
 using perfetto::internal::TrackEventIncrementalState;
 using perfetto::internal::TrackEventInternal;
 using ::testing::_;
+using ::testing::AllOf;
 using ::testing::ContainerEq;
 using ::testing::Contains;
+using ::testing::Each;
 using ::testing::ElementsAre;
 using ::testing::HasSubstr;
 using ::testing::Invoke;
 using ::testing::InvokeWithoutArgs;
+using ::testing::IsEmpty;
 using ::testing::NiceMock;
 using ::testing::Not;
 using ::testing::Property;
@@ -5550,6 +5553,54 @@
                             "trigger1")))));
 }
 
+TEST_P(PerfettoApiTest, StartTracingWhileExecutingTracepoint) {
+  perfetto::TraceConfig cfg;
+  auto* buffer = cfg.add_buffers();
+  buffer->set_size_kb(64);
+  auto* ds_cfg = cfg.add_data_sources()->mutable_config();
+  ds_cfg->set_name("my_data_source");
+
+  std::atomic<bool> quit = false;
+  WaitableTestEvent outside_tracing;
+  WaitableTestEvent tracing;
+  std::thread t([&] {
+    while (!quit) {
+      MockDataSource::Trace([&](MockDataSource::TraceContext ctx) {
+        {
+          auto packet = ctx.NewTracePacket();
+          packet->set_for_testing()->set_str("My String");
+        }
+        { auto packet = ctx.NewTracePacket(); }
+        tracing.Notify();
+      });
+      outside_tracing.Notify();
+      std::this_thread::yield();
+    }
+  });
+  outside_tracing.Wait();
+
+  auto* tracing_session = NewTrace(cfg);
+  tracing_session->get()->StartBlocking();
+  tracing.Wait();
+  tracing_session->get()->StopBlocking();
+
+  // The data source instance should be stopped.
+  auto* data_source = &data_sources_["my_data_source"];
+  data_source->on_stop.Wait();
+
+  quit = true;
+  t.join();
+
+  auto trace = StopSessionAndReturnParsedTrace(tracing_session);
+  std::vector<std::string> test_strings;
+  for (auto& trace_packet : trace.packet()) {
+    if (trace_packet.has_for_testing()) {
+      test_strings.push_back(trace_packet.for_testing().str());
+    }
+  }
+  EXPECT_THAT(test_strings, AllOf(Not(IsEmpty()), Each("My String")));
+}
+
 class PerfettoStartupTracingApiTest : public PerfettoApiTest {
  public:
   using SetupStartupTracingOpts = perfetto::Tracing::SetupStartupTracingOpts;
diff --git a/test/cts/test_apps/src/android/perfetto/cts/app/JavaOomActivity.java b/test/cts/test_apps/src/android/perfetto/cts/app/JavaOomActivity.java
index 4165a92..f73c135 100644
--- a/test/cts/test_apps/src/android/perfetto/cts/app/JavaOomActivity.java
+++ b/test/cts/test_apps/src/android/perfetto/cts/app/JavaOomActivity.java
@@ -19,36 +19,15 @@
 import android.app.Activity;
 import android.os.Bundle;
 
-import java.util.ArrayList;
-
 public class JavaOomActivity extends Activity {
     @Override
     public void onCreate(Bundle state) {
         super.onCreate(state);
-
-        new Thread(new Runnable() {
-            public void run() {
-                try {
-                    runAllocationLoop();
-                } catch (Exception ex) {
-                    ex.printStackTrace();
-                }
+        new Thread(() -> {
+            try {
+                byte[] alloc = new byte[Integer.MAX_VALUE];
+            } catch (OutOfMemoryError e) {
             }
         }).start();
     }
-
-    private static void runAllocationLoop() {
-        ArrayList<byte[]> leaky = new ArrayList<>();
-        try {
-            for (;;) {
-                leaky.add(new byte[1024 * 1024]);
-                try {
-                    Thread.sleep(10);
-                } catch (InterruptedException ignored) {
-                }
-            }
-        } catch (OutOfMemoryError e) {
-          leaky.clear();
-        }
-    }
 }
diff --git a/test/trace_processor/diff_tests/fuchsia/tests.py b/test/trace_processor/diff_tests/fuchsia/tests.py
index caa44f7..86d08a7 100644
--- a/test/trace_processor/diff_tests/fuchsia/tests.py
+++ b/test/trace_processor/diff_tests/fuchsia/tests.py
@@ -107,11 +107,11 @@
         """,
         out=Csv("""
         "ts","value","name"
-        20329439768,30.331177,"cpu_usage:average_cpu_percentage"
-        21331281870,7.829745,"cpu_usage:average_cpu_percentage"
-        22332302017,9.669818,"cpu_usage:average_cpu_percentage"
-        23332974162,6.421237,"cpu_usage:average_cpu_percentage"
-        24333405767,12.079849,"cpu_usage:average_cpu_percentage"
+        20329439768,30.331177,"cpu_usage:average_cpu_percentage:0"
+        21331281870,7.829745,"cpu_usage:average_cpu_percentage:0"
+        22332302017,9.669818,"cpu_usage:average_cpu_percentage:0"
+        23332974162,6.421237,"cpu_usage:average_cpu_percentage:0"
+        24333405767,12.079849,"cpu_usage:average_cpu_percentage:0"
         """))
 
   def test_fuchsia_smoke_flow(self):
@@ -157,7 +157,7 @@
         2,"[NULL]","thread_track"
         3,"[NULL]","thread_track"
         4,"[NULL]","thread_track"
-        5,"cpu_usage:average_cpu_percentage","process_counter_track"
+        5,"cpu_usage:average_cpu_percentage:0","process_counter_track"
         6,"[NULL]","thread_track"
         7,"[NULL]","thread_track"
         8,"[NULL]","thread_track"
diff --git a/tools/cpu_profile b/tools/cpu_profile
index 943d6fb..ccce9d2 100755
--- a/tools/cpu_profile
+++ b/tools/cpu_profile
@@ -361,6 +361,25 @@
       metavar="DURATION",
       type=int,
       default=0)
+  # Profiling using hardware counters.
+  parser.add_argument(
+      "-e",
+      "--event",
+      help="Use the specified hardware counter event for sampling.",
+      metavar="EVENT",
+      action="append",
+      # See: '//perfetto/protos/perfetto/trace/perfetto_trace.proto'.
+      choices=['HW_CPU_CYCLES', 'HW_INSTRUCTIONS', 'HW_CACHE_REFERENCES',
+               'HW_CACHE_MISSES', 'HW_BRANCH_INSTRUCTIONS', 'HW_BRANCH_MISSES',
+               'HW_BUS_CYCLES', 'HW_STALLED_CYCLES_FRONTEND',
+               'HW_STALLED_CYCLES_BACKEND'],
+      default=[])
+  parser.add_argument(
+      "-k",
+      "--kernel-frames",
+      help="Collect kernel frames.  Default: false.",
+      action="store_true",
+      default=False)
   parser.add_argument(
       "-n",
       "--name",
@@ -399,8 +418,11 @@
       default=None)
 
   args = parser.parse_args()
-  if args.config is not None and args.name is not None:
-    sys.exit("--name/-n should not be provided when --config/-c is provided.")
+  if args.config is not None:
+    if args.name is not None:
+      sys.exit("--name/-n should not be specified with --config/-c.")
+    elif args.event is not None:
+      sys.exit("-e/--event should not be specified with --config/-c.")
   elif args.config is None and args.name is None:
     sys.exit("One of --names/-n or --config/-c is required.")
 
@@ -449,7 +471,7 @@
     except IOError as error:
       sys.exit("Unable to read config file: {}".format(error))
 
-  CONFIG_INDENT = '      '
+  CONFIG_INDENT = '          '
   CONFIG = textwrap.dedent('''\
   buffers {{
     size_kb: 2048
@@ -469,18 +491,6 @@
     }}
   }}
 
-  data_sources {{
-    config {{
-      name: "linux.perf"
-      target_buffer: 1
-      perf_event_config {{
-        all_cpus: true
-        sampling_frequency: {frequency}
-  {target_config}
-      }}
-    }}
-  }}
-
   duration_ms: {duration}
   write_into_file: true
   flush_timeout_ms: 30000
@@ -498,6 +508,35 @@
   target_config = "\n".join(
       [f'{CONFIG_INDENT}target_cmdline: "{p}"' for p in matching_processes])
 
+  events = args.event or ['SW_CPU_CLOCK']
+  for event in events:
+    CONFIG += (textwrap.dedent('''
+    data_sources {{
+      config {{
+        name: "linux.perf"
+        target_buffer: 1
+        perf_event_config {{
+          timebase {{
+            counter: %s
+            frequency: {frequency}
+            timestamp_clock: PERF_CLOCK_MONOTONIC
+          }}
+          callstack_sampling {{
+            scope {{
+    {target_config}
+            }}
+            kernel_frames: {kernel_config}
+          }}
+        }}
+      }}
+    }}
+    ''') % (event))
+
+  if args.kernel_frames:
+    kernel_config = "true"
+  else:
+    kernel_config = "false"
+
   if not args.print_config:
     print("Configured profiling for these processes:\n")
     for matching_process in matching_processes:
@@ -507,7 +546,8 @@
   config = CONFIG.format(
       frequency=args.frequency,
       duration=args.duration,
-      target_config=target_config)
+      target_config=target_config,
+      kernel_config=kernel_config)
 
   return config
 
diff --git a/tools/gen_grpc_build_gn.py b/tools/gen_grpc_build_gn.py
new file mode 100755
index 0000000..48993ca
--- /dev/null
+++ b/tools/gen_grpc_build_gn.py
@@ -0,0 +1,178 @@
+#!/usr/bin/env python3
+# Copyright (C) 2023 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import json
+import os
+import subprocess
+import sys
+from typing import Any, Dict, List
+import yaml
+
+ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+
+GRPC_GN_HEADER = '''
+#
+# DO NOT EDIT. AUTOGENERATED file
+#
+# This file is generated with the command:
+# tools/gen_grpc_build_gn.py > buildtools/grpc/BUILD.gn
+#
+
+import("../../gn/perfetto.gni")
+
+# Prevent the gRPC from being depended upon without explicitly being opted in.
+assert(enable_perfetto_grpc)
+
+# BoringSSL has assembly code which is tied to platform-specific. For now, we
+# only care about Linux x64 so assert this as the case.
+assert(is_linux && current_cpu == "x64")
+'''
+
+TARGET_TEMPLATE = """
+{target_type}("{name}") {{
+  sources = {srcs}
+  public_deps = {deps}
+  public_configs = ["..:{config_name}"]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+}}"""
+
+LIBRARY_IGNORE_LIST = set([
+    'grpcpp_channelz',
+    'grpc++_reflection',
+    'benchmark_helpers',
+    'boringssl_test_util',
+])
+
+TARGET_ALLOW_LIST = set([
+    'grpc_cpp_plugin',
+])
+
+STATIC_LIBRARY_TARGETS = set([
+    'upb',
+    're2',
+    'boringssl',
+    'grpc++',
+])
+
+
+def grpc_relpath(*segments: str) -> str:
+  '''From path segments to GRPC root, returns the absolute path.'''
+  return os.path.join(ROOT_DIR, 'buildtools', 'grpc', 'src', *segments)
+
+
+GRPC_BUILD_YAML = grpc_relpath('build_autogenerated.yaml')
+ABSL_GEN_BUILD_YAML = grpc_relpath('src', 'abseil-cpp', 'gen_build_yaml.py')
+UPB_GEN_BUILD_YAML = grpc_relpath('src', 'upb', 'gen_build_yaml.py')
+RE2_GEN_BUILD_YAML = grpc_relpath('src', 're2', 'gen_build_yaml.py')
+BSSL_GEN_BUILD_YAML = grpc_relpath('src', 'boringssl', 'gen_build_yaml.py')
+
+
+def gen_grpc_dep_yaml(gen_path: str) -> Dict[str, Any]:
+  '''Invokes a gen_build_yaml.py file for creating YAML for gRPC deps.'''
+  return yaml.safe_load(subprocess.check_output(['python3', gen_path]))
+
+
+def bazel_label_to_gn_target(dep: str) -> str:
+  '''Converts a Bazel label name into a gn target name.'''
+  if dep == 'libssl':
+    return 'boringssl'
+  return dep.replace('/', '_').replace(':', '_')
+
+
+def get_deps_for_target(target: str) -> List[str]:
+  if target == 'grpc_plugin_support':
+    return ['..:protoc_lib']
+  return []
+
+
+def get_library_target_type(target: str) -> str:
+  if target in STATIC_LIBRARY_TARGETS:
+    return 'static_library'
+  return 'source_set'
+
+
+def yaml_to_gn_targets(desc: Dict[str, Any], build_types: list[str],
+                       config_name: str) -> List[str]:
+  '''Given a gRPC YAML description of the build graph, generates GN targets.'''
+  out = []
+  for lib in desc['libs']:
+    if lib['build'] not in build_types:
+      continue
+    if lib['name'] in LIBRARY_IGNORE_LIST:
+      continue
+    srcs = [f'src/{file}' for file in lib['src'] + lib['headers']]
+    if 'asm_src' in lib:
+      srcs += [f'src/{file}' for file in lib['asm_src']['crypto_linux_x86_64']]
+    deps = [f':{bazel_label_to_gn_target(dep)}' for dep in lib.get('deps', [])
+           ] + get_deps_for_target(lib['name'])
+    library_target = TARGET_TEMPLATE.format(
+        name=bazel_label_to_gn_target(lib['name']),
+        config_name=config_name,
+        srcs=json.dumps(srcs),
+        deps=json.dumps(deps),
+        target_type=get_library_target_type(lib['name']))
+    out.append(library_target)
+
+  for bin in desc.get('targets', []):
+    if bin['build'] not in build_types:
+      continue
+    if bin['name'] not in TARGET_ALLOW_LIST:
+      continue
+    srcs = json.dumps([f'src/{file}' for file in bin['src'] + bin['headers']])
+    deps = [f':{bazel_label_to_gn_target(dep)}' for dep in bin.get('deps', [])
+           ] + get_deps_for_target(bin['name'])
+    binary_target = TARGET_TEMPLATE.format(
+        name=bazel_label_to_gn_target(bin['name']),
+        config_name=config_name,
+        srcs=srcs,
+        deps=json.dumps(deps),
+        target_type='executable')
+    out.append(binary_target)
+  return out
+
+
+def main():
+  out: List[str] = []
+
+  # Generate absl rules
+  absl_yaml = gen_grpc_dep_yaml(ABSL_GEN_BUILD_YAML)
+  out.extend(yaml_to_gn_targets(absl_yaml, ['private'], 'grpc_absl_config'))
+
+  # Generate upb rules
+  upb_yaml = gen_grpc_dep_yaml(UPB_GEN_BUILD_YAML)
+  out.extend(yaml_to_gn_targets(upb_yaml, ['all'], 'grpc_upb_config'))
+
+  # Generate re2 rules
+  re2_yaml = gen_grpc_dep_yaml(RE2_GEN_BUILD_YAML)
+  out.extend(yaml_to_gn_targets(re2_yaml, ['private'], 'grpc_re2_config'))
+
+  # Generate boringssl rules
+  boringssl_yaml = gen_grpc_dep_yaml(BSSL_GEN_BUILD_YAML)
+  out.extend(
+      yaml_to_gn_targets(boringssl_yaml, ['private'], 'grpc_boringssl_config'))
+
+  # Generate grpc rules
+  with open(GRPC_BUILD_YAML, 'r', encoding='utf-8') as f:
+    grpc_yaml = yaml.safe_load(f.read())
+  out.extend(
+      yaml_to_gn_targets(grpc_yaml, ['all', 'protoc'], 'grpc_internal_config'))
+
+  print(GRPC_GN_HEADER)
+  print('\n'.join(out))
+  return 0
+
+
+if __name__ == '__main__':
+  sys.exit(main())
diff --git a/tools/install-build-deps b/tools/install-build-deps
index 3ad1026..ddafffc 100755
--- a/tools/install-build-deps
+++ b/tools/install-build-deps
@@ -14,6 +14,7 @@
 # limitations under the License.
 
 import argparse
+import dataclasses as dc
 import hashlib
 import logging
 import os
@@ -27,6 +28,7 @@
 from collections import namedtuple
 from platform import system, machine
 
+
 # The format for the deps below is the following:
 # (target_folder, source_url, sha1, target_os, target_arch)
 # |source_url| can be either a git repo or a http url.
@@ -41,9 +43,15 @@
 # in both cases the dep only applies on matching platforms
 # |target_arch| can be 'all' when 'target_os' is not 'all' for example in the
 # case of MacOS universal binaries.
-Dependency = namedtuple(
-    'Dependency',
-    ['target_folder', 'source_url', 'checksum', 'target_os', 'target_arch'])
+@dc.dataclass
+class Dependency:
+  target_folder: str
+  source_url: str
+  checksum: str
+  target_os: str
+  target_arch: str
+  submodules: bool = False
+
 
 # This is to remove old directories when build tools get {re,}moved. This is to
 # avoid accidentally referring to stale dir in custom user scripts.
@@ -146,8 +154,8 @@
     # Keep in sync with Chromium's //third_party/protobuf.
     Dependency(
         'buildtools/protobuf',
-        'https://chromium.googlesource.com/external/github.com/google/protobuf.git',
-        '6a59a2ad1f61d9696092f79b6d74368b4d7970a3',  # refs/tags/v3.9.0
+        'https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf.git',
+        'fe271ab76f2ad2b2b28c10443865d2af21e27e0e',  # refs/tags/v3.20.3
         'all',
         'all'),
 
@@ -357,6 +365,14 @@
         TYPEFACES_SHA256, TYPEFACES_SHA256, 'all', 'all')
 ]
 
+# Dependencies to build gRPC.
+GRPC_DEPS = [
+    Dependency(
+        'buildtools/grpc/src',
+        'https://chromium.googlesource.com/external/github.com/grpc/grpc.git',
+        '6943c1841f57cac4666b165aea4f618fe73b3ff1', 'all', 'all', True),
+]
+
 # Sysroots required to cross-compile Linux targets (linux-arm{,64}).
 # These are taken from Chromium's build/linux/sysroot_scripts/sysroots.json.
 BUILD_DEPS_LINUX_CROSS_SYSROOTS = [
@@ -467,6 +483,9 @@
   subprocess.check_call(
       ['git', 'fetch', '--quiet', '--depth', '1', git_url, revision], cwd=path)
   subprocess.check_call(['git', 'checkout', revision, '--quiet'], cwd=path)
+  subprocess.check_call(
+      ['git', 'submodule', 'update', '--init', '--recursive', '--quiet'],
+      cwd=path)
   assert (IsGitRepoCheckoutOutAtRevision(path, revision))
   return True
 
@@ -533,6 +552,10 @@
       '--ui',
       action='store_true',
       help='Node and NPM packages to Build the Web-based UI via ./ui/build')
+  parser.add_argument(
+      '--grpc',
+      action='store_true',
+      help='Packages to build gRPC')
   parser.add_argument('--check-only')
   parser.add_argument('--filter', action='append')
   parser.add_argument('--verify', help='Check all URLs', action='store_true')
@@ -557,6 +580,8 @@
     deps += BUILD_DEPS_LINUX_CROSS_SYSROOTS
   if args.ui:
     deps += UI_DEPS
+  if args.grpc:
+    deps += GRPC_DEPS
   deps_updated = False
   nodejs_updated = False
 
diff --git a/tools/java_heap_dump b/tools/java_heap_dump
index eebf074..c14dde4 100755
--- a/tools/java_heap_dump
+++ b/tools/java_heap_dump
@@ -35,7 +35,7 @@
 }
 '''
 
-CFG_IDENT = '      '
+CFG_INDENT = '      '
 CFG = '''buffers {{
   size_kb: {size_kb}
   fill_policy: DISCARD
@@ -63,6 +63,9 @@
 data_sources: {{
     config {{
         name: "android.java_hprof.oom"
+        java_hprof_config {{
+{process_cfg}
+        }}
     }}
 }}
 
@@ -133,12 +136,12 @@
       except ValueError:
         print("FATAL: invalid PID %s" % pid, file=sys.stderr)
         fail = True
-      target_cfg += '{}pid: {}\n'.format(CFG_IDENT, pid)
+      target_cfg += '{}pid: {}\n'.format(CFG_INDENT, pid)
   if args.name:
     for name in args.name.split(','):
-      target_cfg += '{}process_cmdline: "{}"\n'.format(CFG_IDENT, name)
+      target_cfg += '{}process_cmdline: "{}"\n'.format(CFG_INDENT, name)
   if args.dump_smaps:
-    target_cfg += '{}dump_smaps: true\n'.format(CFG_IDENT)
+    target_cfg += '{}dump_smaps: true\n'.format(CFG_INDENT)
 
   if fail:
     return None
@@ -168,8 +171,13 @@
         file=sys.stderr)
     return None
 
-  if args.pid or args.name:
-    print("FATAL: Specifying process not supported in OOM mode",
+  if args.pid:
+    print("FATAL: Specifying pid not supported in OOM mode",
+        file=sys.stderr)
+    return None
+
+  if not args.name:
+    print("FATAL: Must specify process in OOM mode (use --name '*' to match all)",
         file=sys.stderr)
     return None
 
@@ -183,9 +191,14 @@
         file=sys.stderr)
     return None
 
+  process_cfg = ''
+  for name in args.name.split(','):
+    process_cfg += '{}process_cmdline: "{}"\n'.format(CFG_INDENT, name)
+
   return OOM_CFG.format(
       size_kb=convert_size_to_kb(args.buffer_size),
-      wait_duration_ms=args.oom_wait_seconds * 1000)
+      wait_duration_ms=args.oom_wait_seconds * 1000,
+      process_cfg=process_cfg)
 
 
 def main(argv):
diff --git a/ui/src/frontend/overview_timeline_panel.ts b/ui/src/frontend/overview_timeline_panel.ts
index 578fa7f..adc06d9 100644
--- a/ui/src/frontend/overview_timeline_panel.ts
+++ b/ui/src/frontend/overview_timeline_panel.ts
@@ -85,7 +85,7 @@
 
     const timeScale = new TimeScale(timeSpan, [TRACK_SHELL_WIDTH, this.width]);
 
-    if (timeScale.widthPx > 0) {
+    if (timeScale.timeSpan.duration > 0 && timeScale.widthPx > 0) {
       const tickGen = new TickGenerator(timeScale);
 
       // Draw time labels on the top header.
diff --git a/ui/tsconfig.json b/ui/tsconfig.json
index 5fd4e3d..35ae460 100644
--- a/ui/tsconfig.json
+++ b/ui/tsconfig.json
@@ -1,6 +1,6 @@
 {
   "extends": "./tsconfig.base.json",
-  "include": [ "src/" ],
+  "include": [ "src/**/*" ],
   "exclude": [
     "./node_modules/",
     "./src/service_worker/",