Merge remote-tracking branch 'origin/main' into stdlib_migration
diff --git a/.bazelignore b/.bazelignore
index 0391ccb..59fc87b 100644
--- a/.bazelignore
+++ b/.bazelignore
@@ -11,6 +11,7 @@
 # $ find buildtools -regex ".*/BUILD\(\.bazel\)?" | \
 # xargs -I {} sh -c 'echo "{}" | awk "{ print \$1, \$2 }" FS=/ OFS=/' | \
 # uniq | grep -v expat
+buildtools/abseil-cpp
 buildtools/googletest
 buildtools/protobuf
 buildtools/ndk
diff --git a/.bazelrc b/.bazelrc
index ec12fb7..2006e1f 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -1,4 +1,5 @@
 build --cxxopt=-std=c++17
+build --host_cxxopt=-std=c++17
 # To simplify command line invocations, we build "fat" APK
 # for real device (arm64-v8a) and emulators (x86_64) by default.
 common --android_platforms=@perfetto//bazel:arm64-v8a,@perfetto//bazel:x86_64
\ No newline at end of file
diff --git a/Android.bp b/Android.bp
index 42b14fb..b9abf2a 100644
--- a/Android.bp
+++ b/Android.bp
@@ -20363,10 +20363,10 @@
         "--javastream_opt=include_filter:perfetto.protos.TracePacket,perfetto.protos.ShellTransition,perfetto.protos.ShellHandlerMappings,perfetto.protos.ProtoLogMessage,perfetto.protos.ProtoLogViewerConfig,perfetto.protos.ShellHandlerMapping,perfetto.protos.ShellHandlerMappings,perfetto.protos.ProtoLogGroup,perfetto.protos.ProtoLogConfig,perfetto.protos.DataSourceConfig,perfetto.protos.InternedString,perfetto.protos.InternedData,perfetto.protos.ProtoLogLevel,perfetto.protos.TestEvent,perfetto.protos.TestEvent.TestPayload,perfetto.protos.TestConfig,perfetto.protos.TestConfig.DummyFields,perfetto.protos.WinscopeExtensionsImpl,perfetto.protos.ViewCapture,perfetto.protos.AppWakelocksConfig,perfetto.protos.AppWakelockInfo,perfetto.protos.AppWakelockBundle," +
 
         // IME protos
-        "perfetto.protos.ClientSideProto,perfetto.protos.DisplayCutoutProto,perfetto.protos.EditorInfoProto,perfetto.protos.ImeFocusControllerProto,perfetto.protos.InputConnectionCallProto,perfetto.protos.InputConnectionProto,perfetto.protos.InputMethodClientsTraceProto,perfetto.protos.InputMethodClientsTraceFileProto,perfetto.protos.InputMethodManagerProto,perfetto.protos.InputMethodManagerServiceProto,perfetto.protos.InputMethodManagerServiceTraceProto,perfetto.protos.InputMethodManagerServiceTraceFileProto,perfetto.protos.InputMethodServiceProto,perfetto.protos.InputMethodServiceTraceProto,perfetto.protos.InputMethodServiceTraceFileProto,perfetto.protos.InsetsAnimationControlImplProto,perfetto.protos.InsetsControllerProto,perfetto.protos.InsetsProto,perfetto.protos.InsetsSourceConsumerProto,perfetto.protos.InsetsSourceControlProto,perfetto.protos.InsetsSourceProto,perfetto.protos.InsetsStateProto,perfetto.protos.RectProto,perfetto.protos.SoftInputWindowProto,perfetto.protos.SurfaceControlProto,perfetto.protos.ViewRootImplProto,perfetto.protos.WindowLayoutParamsProto," +
+        "perfetto.protos.ClientSideProto,perfetto.protos.DisplayCutoutProto,perfetto.protos.EditorInfoProto,perfetto.protos.ImeFocusControllerProto,perfetto.protos.InputConnectionCallProto,perfetto.protos.InputConnectionProto,perfetto.protos.InputMethodClientsTraceProto,perfetto.protos.InputMethodClientsTraceFileProto,perfetto.protos.InputMethodManagerProto,perfetto.protos.InputMethodManagerServiceProto,perfetto.protos.InputMethodManagerServiceTraceProto,perfetto.protos.InputMethodManagerServiceTraceFileProto,perfetto.protos.InputMethodServiceProto,perfetto.protos.InputMethodServiceTraceProto,perfetto.protos.InputMethodServiceTraceFileProto,perfetto.protos.InsetsAnimationControlImplProto,perfetto.protos.InsetsControllerProto,perfetto.protos.InsetsProto,perfetto.protos.InsetsSourceConsumerProto,perfetto.protos.InsetsSourceControlProto,perfetto.protos.InsetsSourceProto,perfetto.protos.InsetsStateProto,perfetto.protos.RectProto,perfetto.protos.SoftInputWindowProto,perfetto.protos.SurfaceControlProto,perfetto.protos.ViewRootImplProto,perfetto.protos.WindowLayoutParamsProto,perfetto.protos.InsetsFrameProviderProto,perfetto.protos.InsetsSizeOverrideProto," +
 
         // WindowManager protos
-        "perfetto.protos.ActivityInfoProto,perfetto.protos.ActivityRecordProto,perfetto.protos.AlphaAnimationSpecProto,perfetto.protos.AnimationAdapterProto,perfetto.protos.AnimationSpecProto,perfetto.protos.AppTransitionProto,perfetto.protos.BackNavigationProto,perfetto.protos.ConfigurationContainerProto,perfetto.protos.ConfigurationProto,perfetto.protos.DeviceConfigurationProto,perfetto.protos.DisplayAreaProto,perfetto.protos.DisplayContentProto,perfetto.protos.DisplayInfoProto,perfetto.protos.DisplayRotationProto,perfetto.protos.GlobalConfigurationProto,perfetto.protos.IdentifierProto,perfetto.protos.ImeInsetsSourceProviderProto,perfetto.protos.InsetsSourceProviderProto,perfetto.protos.KeyguardControllerProto,perfetto.protos.KeyguardPerDisplayProto,perfetto.protos.KeyguardServiceDelegateProto,perfetto.protos.LocalAnimationAdapterProto,perfetto.protos.LocaleProto,perfetto.protos.MoveAnimationSpecProto,perfetto.protos.PointProto,perfetto.protos.RemoteAnimationTargetProto,perfetto.protos.RemoteInsetsControlTargetProto,perfetto.protos.ResourcesConfigurationProto,perfetto.protos.RootWindowContainerProto,perfetto.protos.SurfaceAnimatorProto,perfetto.protos.TaskFragmentProto,perfetto.protos.TaskProto,perfetto.protos.WindowAnimationSpecProto,perfetto.protos.WindowConfigurationProto,perfetto.protos.WindowContainerChildProto,perfetto.protos.WindowContainerProto,perfetto.protos.WindowFramesProto,perfetto.protos.WindowManagerConfig,perfetto.protos.WindowManagerPolicyProto,perfetto.protos.WindowManagerServiceDumpProto,perfetto.protos.WindowManagerTraceFileProto,perfetto.protos.WindowOrientationListenerProto,perfetto.protos.WindowStateAnimatorProto,perfetto.protos.WindowStateProto,perfetto.protos.WindowSurfaceControllerProto,perfetto.protos.WindowTokenProto " +
+        "perfetto.protos.ActivityInfoProto,perfetto.protos.ActivityRecordProto,perfetto.protos.AlphaAnimationSpecProto,perfetto.protos.AnimationAdapterProto,perfetto.protos.AnimationSpecProto,perfetto.protos.AppTransitionProto,perfetto.protos.BackNavigationProto,perfetto.protos.ConfigurationContainerProto,perfetto.protos.ConfigurationProto,perfetto.protos.DeviceConfigurationProto,perfetto.protos.DisplayAreaProto,perfetto.protos.DisplayContentProto,perfetto.protos.DisplayInfoProto,perfetto.protos.DisplayRotationProto,perfetto.protos.GlobalConfigurationProto,perfetto.protos.IdentifierProto,perfetto.protos.ImeInsetsSourceProviderProto,perfetto.protos.InsetsSourceProviderProto,perfetto.protos.KeyguardControllerProto,perfetto.protos.KeyguardPerDisplayProto,perfetto.protos.KeyguardServiceDelegateProto,perfetto.protos.LocalAnimationAdapterProto,perfetto.protos.LocaleProto,perfetto.protos.MoveAnimationSpecProto,perfetto.protos.PointProto,perfetto.protos.RemoteAnimationTargetProto,perfetto.protos.RemoteInsetsControlTargetProto,perfetto.protos.ResourcesConfigurationProto,perfetto.protos.RootWindowContainerProto,perfetto.protos.SurfaceAnimatorProto,perfetto.protos.TaskFragmentProto,perfetto.protos.TaskProto,perfetto.protos.WindowAnimationSpecProto,perfetto.protos.WindowConfigurationProto,perfetto.protos.WindowContainerChildProto,perfetto.protos.WindowContainerProto,perfetto.protos.WindowFramesProto,perfetto.protos.WindowManagerConfig,perfetto.protos.WindowManagerPolicyProto,perfetto.protos.WindowManagerServiceDumpProto,perfetto.protos.WindowManagerTraceFileProto,perfetto.protos.WindowOrientationListenerProto,perfetto.protos.WindowStateAnimatorProto,perfetto.protos.WindowStateProto,perfetto.protos.WindowSurfaceControllerProto,perfetto.protos.WindowTokenProto,perfetto.protos.InsetsStateControllerProto,perfetto.protos.DisplayPolicyProto,perfetto.protos.DecorInsetsProto,perfetto.protos.DecorInsetsInfoProto,perfetto.protos.AppearanceRegionProto,perfetto.protos.SystemBarVisibilityOverrideProto,perfetto.protos.InsetsPolicyProto,perfetto.protos.InsetsControlTargetProto,perfetto.protos.DisplayFramesProto " +
 
         "--javastream_out=$(genDir)/$(in) " +
         "-Iexternal/protobuf/src " +
diff --git a/Android.bp.extras b/Android.bp.extras
index 0bb509c..accd87b 100644
--- a/Android.bp.extras
+++ b/Android.bp.extras
@@ -222,10 +222,10 @@
         "--javastream_opt=include_filter:perfetto.protos.TracePacket,perfetto.protos.ShellTransition,perfetto.protos.ShellHandlerMappings,perfetto.protos.ProtoLogMessage,perfetto.protos.ProtoLogViewerConfig,perfetto.protos.ShellHandlerMapping,perfetto.protos.ShellHandlerMappings,perfetto.protos.ProtoLogGroup,perfetto.protos.ProtoLogConfig,perfetto.protos.DataSourceConfig,perfetto.protos.InternedString,perfetto.protos.InternedData,perfetto.protos.ProtoLogLevel,perfetto.protos.TestEvent,perfetto.protos.TestEvent.TestPayload,perfetto.protos.TestConfig,perfetto.protos.TestConfig.DummyFields,perfetto.protos.WinscopeExtensionsImpl,perfetto.protos.ViewCapture,perfetto.protos.AppWakelocksConfig,perfetto.protos.AppWakelockInfo,perfetto.protos.AppWakelockBundle," +
 
         // IME protos
-        "perfetto.protos.ClientSideProto,perfetto.protos.DisplayCutoutProto,perfetto.protos.EditorInfoProto,perfetto.protos.ImeFocusControllerProto,perfetto.protos.InputConnectionCallProto,perfetto.protos.InputConnectionProto,perfetto.protos.InputMethodClientsTraceProto,perfetto.protos.InputMethodClientsTraceFileProto,perfetto.protos.InputMethodManagerProto,perfetto.protos.InputMethodManagerServiceProto,perfetto.protos.InputMethodManagerServiceTraceProto,perfetto.protos.InputMethodManagerServiceTraceFileProto,perfetto.protos.InputMethodServiceProto,perfetto.protos.InputMethodServiceTraceProto,perfetto.protos.InputMethodServiceTraceFileProto,perfetto.protos.InsetsAnimationControlImplProto,perfetto.protos.InsetsControllerProto,perfetto.protos.InsetsProto,perfetto.protos.InsetsSourceConsumerProto,perfetto.protos.InsetsSourceControlProto,perfetto.protos.InsetsSourceProto,perfetto.protos.InsetsStateProto,perfetto.protos.RectProto,perfetto.protos.SoftInputWindowProto,perfetto.protos.SurfaceControlProto,perfetto.protos.ViewRootImplProto,perfetto.protos.WindowLayoutParamsProto," +
+        "perfetto.protos.ClientSideProto,perfetto.protos.DisplayCutoutProto,perfetto.protos.EditorInfoProto,perfetto.protos.ImeFocusControllerProto,perfetto.protos.InputConnectionCallProto,perfetto.protos.InputConnectionProto,perfetto.protos.InputMethodClientsTraceProto,perfetto.protos.InputMethodClientsTraceFileProto,perfetto.protos.InputMethodManagerProto,perfetto.protos.InputMethodManagerServiceProto,perfetto.protos.InputMethodManagerServiceTraceProto,perfetto.protos.InputMethodManagerServiceTraceFileProto,perfetto.protos.InputMethodServiceProto,perfetto.protos.InputMethodServiceTraceProto,perfetto.protos.InputMethodServiceTraceFileProto,perfetto.protos.InsetsAnimationControlImplProto,perfetto.protos.InsetsControllerProto,perfetto.protos.InsetsProto,perfetto.protos.InsetsSourceConsumerProto,perfetto.protos.InsetsSourceControlProto,perfetto.protos.InsetsSourceProto,perfetto.protos.InsetsStateProto,perfetto.protos.RectProto,perfetto.protos.SoftInputWindowProto,perfetto.protos.SurfaceControlProto,perfetto.protos.ViewRootImplProto,perfetto.protos.WindowLayoutParamsProto,perfetto.protos.InsetsFrameProviderProto,perfetto.protos.InsetsSizeOverrideProto," +
 
         // WindowManager protos
-        "perfetto.protos.ActivityInfoProto,perfetto.protos.ActivityRecordProto,perfetto.protos.AlphaAnimationSpecProto,perfetto.protos.AnimationAdapterProto,perfetto.protos.AnimationSpecProto,perfetto.protos.AppTransitionProto,perfetto.protos.BackNavigationProto,perfetto.protos.ConfigurationContainerProto,perfetto.protos.ConfigurationProto,perfetto.protos.DeviceConfigurationProto,perfetto.protos.DisplayAreaProto,perfetto.protos.DisplayContentProto,perfetto.protos.DisplayInfoProto,perfetto.protos.DisplayRotationProto,perfetto.protos.GlobalConfigurationProto,perfetto.protos.IdentifierProto,perfetto.protos.ImeInsetsSourceProviderProto,perfetto.protos.InsetsSourceProviderProto,perfetto.protos.KeyguardControllerProto,perfetto.protos.KeyguardPerDisplayProto,perfetto.protos.KeyguardServiceDelegateProto,perfetto.protos.LocalAnimationAdapterProto,perfetto.protos.LocaleProto,perfetto.protos.MoveAnimationSpecProto,perfetto.protos.PointProto,perfetto.protos.RemoteAnimationTargetProto,perfetto.protos.RemoteInsetsControlTargetProto,perfetto.protos.ResourcesConfigurationProto,perfetto.protos.RootWindowContainerProto,perfetto.protos.SurfaceAnimatorProto,perfetto.protos.TaskFragmentProto,perfetto.protos.TaskProto,perfetto.protos.WindowAnimationSpecProto,perfetto.protos.WindowConfigurationProto,perfetto.protos.WindowContainerChildProto,perfetto.protos.WindowContainerProto,perfetto.protos.WindowFramesProto,perfetto.protos.WindowManagerConfig,perfetto.protos.WindowManagerPolicyProto,perfetto.protos.WindowManagerServiceDumpProto,perfetto.protos.WindowManagerTraceFileProto,perfetto.protos.WindowOrientationListenerProto,perfetto.protos.WindowStateAnimatorProto,perfetto.protos.WindowStateProto,perfetto.protos.WindowSurfaceControllerProto,perfetto.protos.WindowTokenProto " +
+        "perfetto.protos.ActivityInfoProto,perfetto.protos.ActivityRecordProto,perfetto.protos.AlphaAnimationSpecProto,perfetto.protos.AnimationAdapterProto,perfetto.protos.AnimationSpecProto,perfetto.protos.AppTransitionProto,perfetto.protos.BackNavigationProto,perfetto.protos.ConfigurationContainerProto,perfetto.protos.ConfigurationProto,perfetto.protos.DeviceConfigurationProto,perfetto.protos.DisplayAreaProto,perfetto.protos.DisplayContentProto,perfetto.protos.DisplayInfoProto,perfetto.protos.DisplayRotationProto,perfetto.protos.GlobalConfigurationProto,perfetto.protos.IdentifierProto,perfetto.protos.ImeInsetsSourceProviderProto,perfetto.protos.InsetsSourceProviderProto,perfetto.protos.KeyguardControllerProto,perfetto.protos.KeyguardPerDisplayProto,perfetto.protos.KeyguardServiceDelegateProto,perfetto.protos.LocalAnimationAdapterProto,perfetto.protos.LocaleProto,perfetto.protos.MoveAnimationSpecProto,perfetto.protos.PointProto,perfetto.protos.RemoteAnimationTargetProto,perfetto.protos.RemoteInsetsControlTargetProto,perfetto.protos.ResourcesConfigurationProto,perfetto.protos.RootWindowContainerProto,perfetto.protos.SurfaceAnimatorProto,perfetto.protos.TaskFragmentProto,perfetto.protos.TaskProto,perfetto.protos.WindowAnimationSpecProto,perfetto.protos.WindowConfigurationProto,perfetto.protos.WindowContainerChildProto,perfetto.protos.WindowContainerProto,perfetto.protos.WindowFramesProto,perfetto.protos.WindowManagerConfig,perfetto.protos.WindowManagerPolicyProto,perfetto.protos.WindowManagerServiceDumpProto,perfetto.protos.WindowManagerTraceFileProto,perfetto.protos.WindowOrientationListenerProto,perfetto.protos.WindowStateAnimatorProto,perfetto.protos.WindowStateProto,perfetto.protos.WindowSurfaceControllerProto,perfetto.protos.WindowTokenProto,perfetto.protos.InsetsStateControllerProto,perfetto.protos.DisplayPolicyProto,perfetto.protos.DecorInsetsProto,perfetto.protos.DecorInsetsInfoProto,perfetto.protos.AppearanceRegionProto,perfetto.protos.SystemBarVisibilityOverrideProto,perfetto.protos.InsetsPolicyProto,perfetto.protos.InsetsControlTargetProto,perfetto.protos.DisplayFramesProto " +
 
         "--javastream_out=$(genDir)/$(in) " +
         "-Iexternal/protobuf/src " +
diff --git a/BUILD.gn b/BUILD.gn
index 93271b5..7adfb7c 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -263,6 +263,11 @@
     ]
     sources = [ "include/perfetto/tracing.h" ]
     assert_no_deps = [ "gn:protobuf_lite" ]
+
+    # Abseil is only used in Perfetto via the gRPC/libprotobuf.
+    if (perfetto_build_standalone || is_perfetto_build_generator) {
+      assert_no_deps += [ "buildtools:abseil_cpp" ]
+    }
   }
 
   all_targets += [ "src/shared_lib:libperfetto_c" ]
diff --git a/MODULE.bazel b/MODULE.bazel
index a321128..4afc27d 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -12,7 +12,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-bazel_dep(name = "rules_android", version = "0.6.0")
+bazel_dep(name = "protobuf", version = "31.1", repo_name = "com_google_protobuf")
+bazel_dep(name = "rules_python", version = "1.0.0")
+bazel_dep(name = "rules_android", version = "0.6.6")
 
 android_sdk_repository_extension = use_extension(
     "@rules_android//rules/android_sdk_repository:rule.bzl",
@@ -27,7 +29,7 @@
     build_tools_version = "35.0.1",
 )
 
-bazel_dep(name = "rules_jvm_external", version = "6.6")
+bazel_dep(name = "rules_jvm_external", version = "6.7")
 bazel_dep(name = "rules_android_ndk", version = "0.1.2")
 
 android_ndk_repository_extension = use_extension(
diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock
index bf71c29..7b9373f 100644
--- a/MODULE.bazel.lock
+++ b/MODULE.bazel.lock
@@ -9,11 +9,15 @@
     "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16",
     "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915",
     "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed",
-    "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da",
+    "https://bcr.bazel.build/modules/abseil-cpp/20240116.2/MODULE.bazel": "73939767a4686cd9a520d16af5ab440071ed75cec1a876bf2fcfaf1f71987a16",
+    "https://bcr.bazel.build/modules/abseil-cpp/20250127.0/MODULE.bazel": "d1086e248cda6576862b4b3fe9ad76a214e08c189af5b42557a6e1888812c5d5",
+    "https://bcr.bazel.build/modules/abseil-cpp/20250127.0/source.json": "1b996859f840d8efc7c720efc61dcf2a84b1261cb3974cbbe9b6666ebf567775",
     "https://bcr.bazel.build/modules/abseil-py/2.1.0/MODULE.bazel": "5ebe5bf853769c65707e5c28f216798f7a4b1042015e6a36e6d03094d94bec8a",
     "https://bcr.bazel.build/modules/abseil-py/2.1.0/source.json": "0e8fc4f088ce07099c1cd6594c20c7ddbb48b4b3c0849b7d94ba94be88ff042b",
+    "https://bcr.bazel.build/modules/apple_support/1.11.1/MODULE.bazel": "1843d7cd8a58369a444fc6000e7304425fba600ff641592161d9f15b179fb896",
+    "https://bcr.bazel.build/modules/apple_support/1.15.1/MODULE.bazel": "a0556fefca0b1bb2de8567b8827518f94db6a6e7e7d632b4c48dc5f865bc7c85",
+    "https://bcr.bazel.build/modules/apple_support/1.15.1/source.json": "517f2b77430084c541bc9be2db63fdcbb7102938c5f64c17ee60ffda2e5cf07b",
     "https://bcr.bazel.build/modules/apple_support/1.5.0/MODULE.bazel": "50341a62efbc483e8a2a6aec30994a58749bd7b885e18dd96aa8c33031e558ef",
-    "https://bcr.bazel.build/modules/apple_support/1.5.0/source.json": "eb98a7627c0bc486b57f598ad8da50f6625d974c8f723e9ea71bd39f709c9862",
     "https://bcr.bazel.build/modules/bazel_features/1.1.0/MODULE.bazel": "cfd42ff3b815a5f39554d97182657f8c4b9719568eb7fded2b9135f084bf760b",
     "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd",
     "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8",
@@ -22,7 +26,11 @@
     "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d",
     "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a",
     "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58",
-    "https://bcr.bazel.build/modules/bazel_features/1.19.0/source.json": "d7bf14517c1b25b9d9c580b0f8795fceeae08a7590f507b76aace528e941375d",
+    "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b",
+    "https://bcr.bazel.build/modules/bazel_features/1.23.0/MODULE.bazel": "fd1ac84bc4e97a5a0816b7fd7d4d4f6d837b0047cf4cbd81652d616af3a6591a",
+    "https://bcr.bazel.build/modules/bazel_features/1.3.0/MODULE.bazel": "cdcafe83ec318cda34e02948e81d790aab8df7a929cec6f6969f13a489ccecd9",
+    "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87",
+    "https://bcr.bazel.build/modules/bazel_features/1.30.0/source.json": "b07e17f067fe4f69f90b03b36ef1e08fe0d1f3cac254c1241a1818773e3423bc",
     "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7",
     "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a",
     "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8",
@@ -53,13 +61,18 @@
     "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb",
     "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4",
     "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6",
-    "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4",
     "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f",
+    "https://bcr.bazel.build/modules/googletest/1.15.2/MODULE.bazel": "6de1edc1d26cafb0ea1a6ab3f4d4192d91a312fd2d360b63adaa213cd00b2108",
+    "https://bcr.bazel.build/modules/googletest/1.15.2/source.json": "dbdda654dcb3a0d7a8bc5d0ac5fc7e150b58c2a986025ae5bc634bb2cb61f470",
     "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075",
-    "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d",
+    "https://bcr.bazel.build/modules/jsoncpp/1.9.6/MODULE.bazel": "2f8d20d3b7d54143213c4dfc3d98225c42de7d666011528dc8fe91591e2e17b0",
+    "https://bcr.bazel.build/modules/jsoncpp/1.9.6/source.json": "a04756d367a2126c3541682864ecec52f92cdee80a35735a3cb249ce015ca000",
     "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902",
+    "https://bcr.bazel.build/modules/nlohmann_json/3.6.1/MODULE.bazel": "6f7b417dcc794d9add9e556673ad25cb3ba835224290f4f848f8e2db1e1fca74",
+    "https://bcr.bazel.build/modules/nlohmann_json/3.6.1/source.json": "f448c6e8963fdfa7eb831457df83ad63d3d6355018f6574fb017e8169deb43a9",
     "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5",
-    "https://bcr.bazel.build/modules/platforms/0.0.10/source.json": "f22828ff4cf021a6b577f1bf6341cb9dcd7965092a439f64fc1bb3b7a5ae4bd5",
+    "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f",
+    "https://bcr.bazel.build/modules/platforms/0.0.11/source.json": "f7e188b79ebedebfe75e9e1d098b8845226c7992b307e28e1496f23112e8fc29",
     "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee",
     "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37",
     "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615",
@@ -70,33 +83,43 @@
     "https://bcr.bazel.build/modules/protobuf/23.1/MODULE.bazel": "88b393b3eb4101d18129e5db51847cd40a5517a53e81216144a8c32dfeeca52a",
     "https://bcr.bazel.build/modules/protobuf/24.4/MODULE.bazel": "7bc7ce5f2abf36b3b7b7c8218d3acdebb9426aeb35c2257c96445756f970eb12",
     "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c",
+    "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d",
     "https://bcr.bazel.build/modules/protobuf/27.2/MODULE.bazel": "32450b50673882e4c8c3d10a83f3bc82161b213ed2f80d17e38bece8f165c295",
-    "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e",
-    "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981",
+    "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df",
+    "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92",
     "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0",
     "https://bcr.bazel.build/modules/protobuf/3.19.2/MODULE.bazel": "532ffe5f2186b69fdde039efe6df13ba726ff338c6bc82275ad433013fa10573",
     "https://bcr.bazel.build/modules/protobuf/3.19.6/MODULE.bazel": "9233edc5e1f2ee276a60de3eaa47ac4132302ef9643238f23128fea53ea12858",
+    "https://bcr.bazel.build/modules/protobuf/31.1/MODULE.bazel": "379a389bb330b7b8c1cdf331cc90bf3e13de5614799b3b52cdb7c6f389f6b38e",
+    "https://bcr.bazel.build/modules/protobuf/31.1/source.json": "25af5d0219da0c0fc4d1191a24ce438e6ca7f49d2e1a94f354efeba6ef10426f",
     "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e",
-    "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022",
+    "https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/MODULE.bazel": "e6f4c20442eaa7c90d7190d8dc539d0ab422f95c65a57cc59562170c58ae3d34",
+    "https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/source.json": "6900fdc8a9e95866b8c0d4ad4aba4d4236317b5c1cd04c502df3f0d33afed680",
     "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206",
-    "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4",
+    "https://bcr.bazel.build/modules/re2/2024-07-02.bcr.1/MODULE.bazel": "b4963dda9b31080be1905ef085ecd7dd6cd47c05c79b9cdf83ade83ab2ab271a",
+    "https://bcr.bazel.build/modules/re2/2024-07-02.bcr.1/source.json": "2ff292be6ef3340325ce8a045ecc326e92cbfab47c7cbab4bd85d28971b97ac4",
+    "https://bcr.bazel.build/modules/re2/2024-07-02/MODULE.bazel": "0eadc4395959969297cbcf31a249ff457f2f1d456228c67719480205aa306daa",
     "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8",
-    "https://bcr.bazel.build/modules/rules_android/0.6.0/MODULE.bazel": "30e60cc87068ffbb3e8d0c704b9de3795a9cdeead315d916e258ed9c90236505",
-    "https://bcr.bazel.build/modules/rules_android/0.6.0/source.json": "83e22b29158f859389c47c11f50cc43e723f53452bd2fd51045e5798fcff3416",
+    "https://bcr.bazel.build/modules/rules_android/0.6.6/MODULE.bazel": "b0fb569752aab65ab1a9db0a8f6cfaf5aa1754965e17e95dcf0e4d88e192a68d",
+    "https://bcr.bazel.build/modules/rules_android/0.6.6/source.json": "a9d8dc2d5a102dc03269a94acc886a4cab82cdcb9ccbc77b0f665d6d17a6ae09",
     "https://bcr.bazel.build/modules/rules_android_ndk/0.1.2/MODULE.bazel": "9a0ddc87568c5813ae712124f3541948a4304fa23156dae8b7cd4f56fa89cdbf",
     "https://bcr.bazel.build/modules/rules_android_ndk/0.1.2/source.json": "8830fc25b996a92b5bca5467d3a84b27b98ba0291f9eb5e04f38108d9e5d7660",
+    "https://bcr.bazel.build/modules/rules_apple/3.16.0/MODULE.bazel": "0d1caf0b8375942ce98ea944be754a18874041e4e0459401d925577624d3a54a",
+    "https://bcr.bazel.build/modules/rules_apple/3.16.0/source.json": "d8b5fe461272018cc07cfafce11fe369c7525330804c37eec5a82f84cd475366",
     "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647",
     "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002",
+    "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191",
     "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc",
     "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87",
-    "https://bcr.bazel.build/modules/rules_cc/0.0.16/source.json": "227e83737046aa4f50015da48e98e0d8ab42fd0ec74d8d653b6cc9f9a357f200",
+    "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a",
     "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c",
     "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f",
     "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e",
     "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5",
+    "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513",
+    "https://bcr.bazel.build/modules/rules_cc/0.1.1/source.json": "d61627377bd7dd1da4652063e368d9366fc9a73920bfa396798ad92172cf645c",
     "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6",
     "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8",
-    "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e",
     "https://bcr.bazel.build/modules/rules_go/0.41.0/MODULE.bazel": "55861d8e8bb0e62cbd2896f60ff303f62ffcb0eddb74ecb0e5c0cbe36fc292c8",
     "https://bcr.bazel.build/modules/rules_go/0.42.0/MODULE.bazel": "8cfa875b9aa8c6fce2b2e5925e73c1388173ea3c32a0db4d2b4804b453c14270",
     "https://bcr.bazel.build/modules/rules_go/0.46.0/MODULE.bazel": "3477df8bdcc49e698b9d25f734c4f3a9f5931ff34ee48a2c662be168f5f2d3fd",
@@ -114,16 +137,20 @@
     "https://bcr.bazel.build/modules/rules_java/7.4.0/MODULE.bazel": "a592852f8a3dd539e82ee6542013bf2cadfc4c6946be8941e189d224500a8934",
     "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe",
     "https://bcr.bazel.build/modules/rules_java/7.6.5/MODULE.bazel": "481164be5e02e4cab6e77a36927683263be56b7e36fef918b458d7a8a1ebadb1",
+    "https://bcr.bazel.build/modules/rules_java/8.13.0/MODULE.bazel": "0444ebf737d144cf2bb2ccb368e7f1cce735264285f2a3711785827c1686625e",
+    "https://bcr.bazel.build/modules/rules_java/8.13.0/source.json": "4605c0f676b87dd9d1fabd4d743b71f04d97503bd1a79aad53f87399fb5396de",
+    "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017",
     "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939",
     "https://bcr.bazel.build/modules/rules_java/8.6.0/MODULE.bazel": "9c064c434606d75a086f15ade5edb514308cccd1544c2b2a89bbac4310e41c71",
-    "https://bcr.bazel.build/modules/rules_java/8.6.0/source.json": "3a9296647bf5d7dbb5b1a3a02b1933520cfcfd7709fecac8ff598be57ed472d1",
+    "https://bcr.bazel.build/modules/rules_java/8.6.1/MODULE.bazel": "f4808e2ab5b0197f094cabce9f4b006a27766beb6a9975931da07099560ca9c2",
     "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7",
     "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909",
     "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036",
     "https://bcr.bazel.build/modules/rules_jvm_external/6.2/MODULE.bazel": "36a6e52487a855f33cb960724eb56547fa87e2c98a0474c3acad94339d7f8e99",
     "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0",
     "https://bcr.bazel.build/modules/rules_jvm_external/6.6/MODULE.bazel": "153042249c7060536dc95b6bb9f9bb8063b8a0b0cb7acdb381bddbc2374aed55",
-    "https://bcr.bazel.build/modules/rules_jvm_external/6.6/source.json": "b1d7ffc3877e5a76e6e48e6bce459cbb1712c90eba14861b112bd299587a534d",
+    "https://bcr.bazel.build/modules/rules_jvm_external/6.7/MODULE.bazel": "e717beabc4d091ecb2c803c2d341b88590e9116b8bf7947915eeb33aab4f96dd",
+    "https://bcr.bazel.build/modules/rules_jvm_external/6.7/source.json": "5426f412d0a7fc6b611643376c7e4a82dec991491b9ce5cb1cfdd25fe2e92be4",
     "https://bcr.bazel.build/modules/rules_kotlin/1.9.5/MODULE.bazel": "043a16a572f610558ec2030db3ff0c9938574e7dd9f58bded1bb07c0192ef025",
     "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3",
     "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5",
@@ -139,42 +166,52 @@
     "https://bcr.bazel.build/modules/rules_proto/6.0.0-rc1/MODULE.bazel": "1e5b502e2e1a9e825eef74476a5a1ee524a92297085015a052510b09a1a09483",
     "https://bcr.bazel.build/modules/rules_proto/6.0.0/MODULE.bazel": "b531d7f09f58dce456cd61b4579ce8c86b38544da75184eadaf0a7cb7966453f",
     "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73",
-    "https://bcr.bazel.build/modules/rules_proto/6.0.2/source.json": "17a2e195f56cb28d6bbf763e49973d13890487c6945311ed141e196fb660426d",
+    "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2",
+    "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1",
     "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f",
     "https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel": "26114f0c0b5e93018c0c066d6673f1a2c3737c7e90af95eff30cfee38d0bbac7",
     "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300",
     "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382",
     "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed",
     "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58",
+    "https://bcr.bazel.build/modules/rules_python/0.33.2/MODULE.bazel": "3e036c4ad8d804a4dad897d333d8dce200d943df4827cb849840055be8d2e937",
     "https://bcr.bazel.build/modules/rules_python/0.37.1/MODULE.bazel": "3faeb2d9fa0a81f8980643ee33f212308f4d93eea4b9ce6f36d0b742e71e9500",
     "https://bcr.bazel.build/modules/rules_python/0.37.2/MODULE.bazel": "b5ffde91410745750b6c13be1c5dc4555ef5bc50562af4a89fd77807fdde626a",
-    "https://bcr.bazel.build/modules/rules_python/0.37.2/source.json": "af5c224d27ec98a612b4dcbdc481e02502cd5a4b49d87f0093200a10a35383e9",
     "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c",
+    "https://bcr.bazel.build/modules/rules_python/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43",
+    "https://bcr.bazel.build/modules/rules_python/1.0.0/source.json": "b0162a65c6312e45e7912e39abd1a7f8856c2c7e41ecc9b6dc688a6f6400a917",
     "https://bcr.bazel.build/modules/rules_robolectric/4.14.1.2/MODULE.bazel": "d44fec647d0aeb67b9f3b980cf68ba634976f3ae7ccd6c07d790b59b87a4f251",
     "https://bcr.bazel.build/modules/rules_robolectric/4.14.1.2/source.json": "37c10335f2361c337c5c1f34ed36d2da70534c23088062b33a8bdaab68aa9dea",
     "https://bcr.bazel.build/modules/rules_shell/0.1.2/MODULE.bazel": "66e4ca3ce084b04af0b9ff05ff14cab4e5df7503973818bb91cbc6cda08d32fc",
     "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c",
     "https://bcr.bazel.build/modules/rules_shell/0.3.0/MODULE.bazel": "de4402cd12f4cc8fda2354fce179fdb068c0b9ca1ec2d2b17b3e21b24c1a937b",
     "https://bcr.bazel.build/modules/rules_shell/0.3.0/source.json": "c55ed591aa5009401ddf80ded9762ac32c358d2517ee7820be981e2de9756cf3",
+    "https://bcr.bazel.build/modules/rules_swift/1.16.0/MODULE.bazel": "4a09f199545a60d09895e8281362b1ff3bb08bbde69c6fc87aff5b92fcc916ca",
+    "https://bcr.bazel.build/modules/rules_swift/2.1.1/MODULE.bazel": "494900a80f944fc7aa61500c2073d9729dff0b764f0e89b824eb746959bc1046",
+    "https://bcr.bazel.build/modules/rules_swift/2.1.1/source.json": "40fc69dfaac64deddbb75bd99cdac55f4427d9ca0afbe408576a65428427a186",
     "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8",
     "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c",
     "https://bcr.bazel.build/modules/stardoc/0.6.2/MODULE.bazel": "7060193196395f5dd668eda046ccbeacebfd98efc77fed418dbe2b82ffaa39fd",
     "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c",
-    "https://bcr.bazel.build/modules/stardoc/0.7.0/source.json": "e3c524bf2ef20992539ce2bc4a2243f4853130209ee831689983e28d05769099",
+    "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5",
+    "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216",
+    "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.1/MODULE.bazel": "5e463fbfba7b1701d957555ed45097d7f984211330106ccd1352c6e0af0dcf91",
+    "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.1/source.json": "32bd87e5f4d7acc57c5b2ff7c325ae3061d5e242c0c4c214ae87e0f1c13e54cb",
     "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43",
     "https://bcr.bazel.build/modules/upb/0.0.0-20230516-61a97ef/MODULE.bazel": "c0df5e35ad55e264160417fd0875932ee3c9dda63d9fccace35ac62f45e1b6f9",
     "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0",
     "https://bcr.bazel.build/modules/zlib/1.2.12/MODULE.bazel": "3b1a8834ada2a883674be8cbd36ede1b6ec481477ada359cd2d3ddc562340b27",
     "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/MODULE.bazel": "af322bc08976524477c79d1e45e241b6efbeb918c497e8840b8ab116802dda79",
-    "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/source.json": "2be409ac3c7601245958cd4fcdff4288be79ed23bd690b4b951f500d54ee6e7d",
+    "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca",
+    "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806",
     "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198"
   },
   "selectedYankedVersions": {},
   "moduleExtensions": {
     "@@apple_support~//crosstool:setup.bzl%apple_cc_configure_extension": {
       "general": {
-        "bzlTransitiveDigest": "PjIds3feoYE8SGbbIq2SFTZy3zmxeO2tQevJZNDo7iY=",
-        "usagesDigest": "+hz7IHWN6A1oVJJWNDB6yZRG+RYhF76wAYItpAeIUIg=",
+        "bzlTransitiveDigest": "ltCGFbl/LQQZXn/LEMXfKX7pGwyqNiOCHcmiQW0tmjM=",
+        "usagesDigest": "0sv83SRsyI6lGvOdlpRn0tc9RjvaEXPpa1yYtUlWLWk=",
         "recordedFileInputs": {},
         "recordedDirentsInputs": {},
         "envVariables": {},
@@ -199,59 +236,6 @@
         ]
       }
     },
-    "@@platforms//host:extension.bzl%host_platform": {
-      "general": {
-        "bzlTransitiveDigest": "xelQcPZH8+tmuOHVjL9vDxMnnQNMlwj0SlvgoqBkm4U=",
-        "usagesDigest": "hgylFkgWSg0ulUwWZzEM1aIftlUnbmw2ynWLdEfHnZc=",
-        "recordedFileInputs": {},
-        "recordedDirentsInputs": {},
-        "envVariables": {},
-        "generatedRepoSpecs": {
-          "host_platform": {
-            "bzlFile": "@@platforms//host:extension.bzl",
-            "ruleClassName": "host_platform_repo",
-            "attributes": {}
-          }
-        },
-        "recordedRepoMappingEntries": []
-      }
-    },
-    "@@pybind11_bazel~//:python_configure.bzl%extension": {
-      "general": {
-        "bzlTransitiveDigest": "whINYge95GgPtysKDbNHQ0ZlWYdtKybHs5y2tLF+x7Q=",
-        "usagesDigest": "gNvOHVcAlwgDsNXD0amkv2CC96mnaCThPQoE44y8K+w=",
-        "recordedFileInputs": {
-          "@@pybind11_bazel~//MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e"
-        },
-        "recordedDirentsInputs": {},
-        "envVariables": {},
-        "generatedRepoSpecs": {
-          "local_config_python": {
-            "bzlFile": "@@pybind11_bazel~//:python_configure.bzl",
-            "ruleClassName": "python_configure",
-            "attributes": {}
-          },
-          "pybind11": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
-            "attributes": {
-              "build_file": "@@pybind11_bazel~//:pybind11.BUILD",
-              "strip_prefix": "pybind11-2.11.1",
-              "urls": [
-                "https://github.com/pybind/pybind11/archive/v2.11.1.zip"
-              ]
-            }
-          }
-        },
-        "recordedRepoMappingEntries": [
-          [
-            "pybind11_bazel~",
-            "bazel_tools",
-            "bazel_tools"
-          ]
-        ]
-      }
-    },
     "@@rules_android_ndk~//:extension.bzl%android_ndk_repository_extension": {
       "general": {
         "bzlTransitiveDigest": "oV/TPZWCXAAcpJG/DBV/lNiWCISUTk5ba0KRjUb7adg=",
@@ -298,10 +282,36 @@
         ]
       }
     },
+    "@@rules_android~//bzlmod_extensions:com_android_dex.bzl%com_android_dex_extension": {
+      "general": {
+        "bzlTransitiveDigest": "/KJvxHLYhvSLJihEHN0e5Uzdd7OOMvpFb0BFUl1RUTs=",
+        "usagesDigest": "fh77SU1OUlWN5ivrGpY93+t0MipuVj89/MMUgfTpSa8=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
+        "envVariables": {},
+        "generatedRepoSpecs": {
+          "com_android_dex": {
+            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+            "ruleClassName": "http_archive",
+            "attributes": {
+              "url": "https://android.googlesource.com/platform/dalvik/+archive/5a81c499a569731e2395f7c8d13c0e0d4e17a2b6.tar.gz",
+              "build_file": "@@rules_android~//bzlmod_extensions:com_android_dex.BUILD"
+            }
+          }
+        },
+        "recordedRepoMappingEntries": [
+          [
+            "rules_android~",
+            "bazel_tools",
+            "bazel_tools"
+          ]
+        ]
+      }
+    },
     "@@rules_android~//rules/android_sdk_repository:rule.bzl%android_sdk_repository_extension": {
       "general": {
         "bzlTransitiveDigest": "NAy+0M15JNVEBb8Tny6t7j3lKqTnsAMjoBB6LJ+C370=",
-        "usagesDigest": "7pEVyOMSuonyQip1hK1dYg+DiOQuU7wFl0PWl479cqM=",
+        "usagesDigest": "c84gCGUdGxjetrKGhpHtv8fq/HCmU9MFWYI5iCUPXuQ=",
         "recordedFileInputs": {},
         "recordedDirentsInputs": {},
         "envVariables": {},
@@ -319,120 +329,6 @@
         "recordedRepoMappingEntries": []
       }
     },
-    "@@rules_fuzzing~//fuzzing/private:extensions.bzl%non_module_dependencies": {
-      "general": {
-        "bzlTransitiveDigest": "hVgJRQ3Er45/UUAgNn1Yp2Khcp/Y8WyafA2kXIYmQ5M=",
-        "usagesDigest": "YnIrdgwnf3iCLfChsltBdZ7yOJh706lpa2vww/i2pDI=",
-        "recordedFileInputs": {},
-        "recordedDirentsInputs": {},
-        "envVariables": {},
-        "generatedRepoSpecs": {
-          "platforms": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
-            "attributes": {
-              "urls": [
-                "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz",
-                "https://github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz"
-              ],
-              "sha256": "8150406605389ececb6da07cbcb509d5637a3ab9a24bc69b1101531367d89d74"
-            }
-          },
-          "rules_python": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
-            "attributes": {
-              "sha256": "d70cd72a7a4880f0000a6346253414825c19cdd40a28289bdf67b8e6480edff8",
-              "strip_prefix": "rules_python-0.28.0",
-              "url": "https://github.com/bazelbuild/rules_python/releases/download/0.28.0/rules_python-0.28.0.tar.gz"
-            }
-          },
-          "bazel_skylib": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
-            "attributes": {
-              "sha256": "cd55a062e763b9349921f0f5db8c3933288dc8ba4f76dd9416aac68acee3cb94",
-              "urls": [
-                "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz",
-                "https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz"
-              ]
-            }
-          },
-          "com_google_absl": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
-            "attributes": {
-              "urls": [
-                "https://github.com/abseil/abseil-cpp/archive/refs/tags/20240116.1.zip"
-              ],
-              "strip_prefix": "abseil-cpp-20240116.1",
-              "integrity": "sha256-7capMWOvWyoYbUaHF/b+I2U6XLMaHmky8KugWvfXYuk="
-            }
-          },
-          "rules_fuzzing_oss_fuzz": {
-            "bzlFile": "@@rules_fuzzing~//fuzzing/private/oss_fuzz:repository.bzl",
-            "ruleClassName": "oss_fuzz_repository",
-            "attributes": {}
-          },
-          "honggfuzz": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
-            "attributes": {
-              "build_file": "@@rules_fuzzing~//:honggfuzz.BUILD",
-              "sha256": "6b18ba13bc1f36b7b950c72d80f19ea67fbadc0ac0bb297ec89ad91f2eaa423e",
-              "url": "https://github.com/google/honggfuzz/archive/2.5.zip",
-              "strip_prefix": "honggfuzz-2.5"
-            }
-          },
-          "rules_fuzzing_jazzer": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_jar",
-            "attributes": {
-              "sha256": "ee6feb569d88962d59cb59e8a31eb9d007c82683f3ebc64955fd5b96f277eec2",
-              "url": "https://repo1.maven.org/maven2/com/code-intelligence/jazzer/0.20.1/jazzer-0.20.1.jar"
-            }
-          },
-          "rules_fuzzing_jazzer_api": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_jar",
-            "attributes": {
-              "sha256": "f5a60242bc408f7fa20fccf10d6c5c5ea1fcb3c6f44642fec5af88373ae7aa1b",
-              "url": "https://repo1.maven.org/maven2/com/code-intelligence/jazzer-api/0.20.1/jazzer-api-0.20.1.jar"
-            }
-          }
-        },
-        "recordedRepoMappingEntries": [
-          [
-            "rules_fuzzing~",
-            "bazel_tools",
-            "bazel_tools"
-          ]
-        ]
-      }
-    },
-    "@@rules_java~//java:rules_java_deps.bzl%compatibility_proxy": {
-      "general": {
-        "bzlTransitiveDigest": "KIX40nDfygEWbU+rq3nYpt3tVgTK/iO8PKh5VMBlN7M=",
-        "usagesDigest": "h/U5WWEJm8HVKcXxbd2GFbiMBQwFzddT4eDd0PUwlIc=",
-        "recordedFileInputs": {},
-        "recordedDirentsInputs": {},
-        "envVariables": {},
-        "generatedRepoSpecs": {
-          "compatibility_proxy": {
-            "bzlFile": "@@rules_java~//java:rules_java_deps.bzl",
-            "ruleClassName": "_compatibility_proxy_repo_rule",
-            "attributes": {}
-          }
-        },
-        "recordedRepoMappingEntries": [
-          [
-            "rules_java~",
-            "bazel_tools",
-            "bazel_tools"
-          ]
-        ]
-      }
-    },
     "@@rules_kotlin~//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": {
       "general": {
         "bzlTransitiveDigest": "fus14IFJ/1LGWWGKPH/U18VnJCoMjfDt1ckahqCnM0A=",
@@ -501,2306 +397,6 @@
           ]
         ]
       }
-    },
-    "@@rules_python~//python/private/pypi:pip.bzl%pip_internal": {
-      "general": {
-        "bzlTransitiveDigest": "51HAWm9EZXuUlGKmk3+UIMYmJns3OZeV+rsSeQHmdJE=",
-        "usagesDigest": "439oxGbekj6KqwCe9qVSTRFGrlIFvFmpkiA3bPw7e2k=",
-        "recordedFileInputs": {
-          "@@rules_python~//tools/publish/requirements.txt": "031e35d03dde03ae6305fe4b3d1f58ad7bdad857379752deede0f93649991b8a",
-          "@@rules_python~//tools/publish/requirements_windows.txt": "27831a1477549ad865043f17a9c1dd9a19566d460ba1f68cd8dfded642accbca",
-          "@@rules_python~//tools/publish/requirements_darwin.txt": "91df49ab0079887f6b7ee4035f9e2a686036c749e7ce82837a4a74b471e4a9aa"
-        },
-        "recordedDirentsInputs": {},
-        "envVariables": {
-          "RULES_PYTHON_REPO_DEBUG": null,
-          "RULES_PYTHON_REPO_DEBUG_VERBOSITY": null
-        },
-        "generatedRepoSpecs": {
-          "rules_python_publish_deps_311_six_py2_none_any_8abb2f1d": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "six-1.16.0-py2.py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "six==1.16.0",
-              "sha256": "8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254",
-              "urls": [
-                "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_six_sdist_1e61c374": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "six-1.16.0.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "six==1.16.0",
-              "sha256": "1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
-              "urls": [
-                "https://files.pythonhosted.org/packages/71/39/171f1c67cd00715f190ba0b100d606d440a28c93c7714febeca8b79af85e/six-1.16.0.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_aarch64_3548db28": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "cffi==1.15.1",
-              "sha256": "3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c",
-              "urls": [
-                "https://files.pythonhosted.org/packages/91/bc/b7723c2fe7a22eee71d7edf2102cd43423d5f95ff3932ebaa2f82c7ec8d0/cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_ppc64le_91fc98ad": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "cffi==1.15.1",
-              "sha256": "91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325",
-              "urls": [
-                "https://files.pythonhosted.org/packages/5d/4e/4e0bb5579b01fdbfd4388bd1eb9394a989e1336203a4b7f700d887b233c1/cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_x86_64_94411f22": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "cffi==1.15.1",
-              "sha256": "94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c",
-              "urls": [
-                "https://files.pythonhosted.org/packages/37/5a/c37631a86be838bdd84cc0259130942bf7e6e32f70f4cab95f479847fb91/cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_cffi_cp311_cp311_musllinux_1_1_x86_64_cc4d65ae": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "cffi==1.15.1",
-              "sha256": "cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8",
-              "urls": [
-                "https://files.pythonhosted.org/packages/d3/56/3e94aa719ae96eeda8b68b3ec6e347e0a23168c6841dc276ccdcdadc9f32/cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_cffi_sdist_d400bfb9": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "cffi-1.15.1.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "cffi==1.15.1",
-              "sha256": "d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9",
-              "urls": [
-                "https://files.pythonhosted.org/packages/2b/a8/050ab4f0c3d4c1b8aaa805f70e26e84d0e27004907c5b8ecc1d31815f92a/cffi-1.15.1.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_idna_py3_none_any_946d195a": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "idna-3.10-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "idna==3.10",
-              "sha256": "946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3",
-              "urls": [
-                "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_idna_sdist_12f65c9b": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "idna-3.10.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "idna==3.10",
-              "sha256": "12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9",
-              "urls": [
-                "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_idna_py3_none_any_90b77e79": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "idna-3.4-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "idna==3.4",
-              "sha256": "90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2",
-              "urls": [
-                "https://files.pythonhosted.org/packages/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_idna_sdist_814f528e": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "idna-3.4.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "idna==3.4",
-              "sha256": "814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4",
-              "urls": [
-                "https://files.pythonhosted.org/packages/8b/e1/43beb3d38dba6cb420cefa297822eac205a277ab43e5ba5d5c46faf96438/idna-3.4.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_rich_py3_none_any_7c963f0d": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "rich-13.2.0-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "rich==13.2.0",
-              "sha256": "7c963f0d03819221e9ac561e1bc866e3f95a02248c1234daa48954e6d381c003",
-              "urls": [
-                "https://files.pythonhosted.org/packages/0e/cf/a6369a2aee266c2d7604230f083d4bd14b8f69bc69eb25b3da63b9f2f853/rich-13.2.0-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_rich_sdist_f1a00cdd": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "rich-13.2.0.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "rich==13.2.0",
-              "sha256": "f1a00cdd3eebf999a15d85ec498bfe0b1a77efe9b34f645768a54132ef444ac5",
-              "urls": [
-                "https://files.pythonhosted.org/packages/9e/5e/c3dc3ea32e2c14bfe46e48de954dd175bff76bcc549dd300acb9689521ae/rich-13.2.0.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_zipp_py3_none_any_83a28fcb": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "zipp-3.11.0-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "zipp==3.11.0",
-              "sha256": "83a28fcb75844b5c0cdaf5aa4003c2d728c77e05f5aeabe8e95e56727005fbaa",
-              "urls": [
-                "https://files.pythonhosted.org/packages/d8/20/256eb3f3f437c575fb1a2efdce5e801a5ce3162ea8117da96c43e6ee97d8/zipp-3.11.0-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_zipp_sdist_a7a22e05": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "zipp-3.11.0.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "zipp==3.11.0",
-              "sha256": "a7a22e05929290a67401440b39690ae6563279bced5f314609d9d03798f56766",
-              "urls": [
-                "https://files.pythonhosted.org/packages/8e/b3/8b16a007184714f71157b1a71bbe632c5d66dd43bc8152b3c799b13881e1/zipp-3.11.0.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_zipp_py3_none_any_f091755f": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "zipp-3.19.2-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "zipp==3.19.2",
-              "sha256": "f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c",
-              "urls": [
-                "https://files.pythonhosted.org/packages/20/38/f5c473fe9b90c8debdd29ea68d5add0289f1936d6f923b6b9cc0b931194c/zipp-3.19.2-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_zipp_sdist_bf1dcf64": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "zipp-3.19.2.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "zipp==3.19.2",
-              "sha256": "bf1dcf6450f873a13e952a29504887c89e6de7506209e5b1bcc3460135d4de19",
-              "urls": [
-                "https://files.pythonhosted.org/packages/d3/20/b48f58857d98dcb78f9e30ed2cfe533025e2e9827bbd36ea0a64cc00cbc1/zipp-3.19.2.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_mdurl_py3_none_any_84008a41": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "mdurl-0.1.2-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "mdurl==0.1.2",
-              "sha256": "84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8",
-              "urls": [
-                "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_mdurl_sdist_bb413d29": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "mdurl-0.1.2.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "mdurl==0.1.2",
-              "sha256": "bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba",
-              "urls": [
-                "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_twine_py3_none_any_929bc3c2": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "twine-4.0.2-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "twine==4.0.2",
-              "sha256": "929bc3c280033347a00f847236564d1c52a3e61b1ac2516c97c48f3ceab756d8",
-              "urls": [
-                "https://files.pythonhosted.org/packages/3a/38/a3f27a9e8ce45523d7d1e28c09e9085b61a98dab15d35ec086f36a44b37c/twine-4.0.2-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_twine_sdist_9e102ef5": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "twine-4.0.2.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "twine==4.0.2",
-              "sha256": "9e102ef5fdd5a20661eb88fad46338806c3bd32cf1db729603fe3697b1bc83c8",
-              "urls": [
-                "https://files.pythonhosted.org/packages/b7/1a/a7884359429d801cd63c2c5512ad0a337a509994b0e42d9696d4778d71f6/twine-4.0.2.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_bleach_py3_none_any_33c16e33": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "bleach-6.0.0-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "bleach==6.0.0",
-              "sha256": "33c16e3353dbd13028ab4799a0f89a83f113405c766e9c122df8a06f5b85b3f4",
-              "urls": [
-                "https://files.pythonhosted.org/packages/ac/e2/dfcab68c9b2e7800c8f06b85c76e5f978d05b195a958daa9b1dda54a1db6/bleach-6.0.0-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_bleach_sdist_1a1a85c1": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "bleach-6.0.0.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "bleach==6.0.0",
-              "sha256": "1a1a85c1595e07d8db14c5f09f09e6433502c51c595970edc090551f0db99414",
-              "urls": [
-                "https://files.pythonhosted.org/packages/7e/e6/d5f220ca638f6a25557a611860482cb6e54b2d97f0332966b1b005742e1f/bleach-6.0.0.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_certifi_py3_none_any_4ad3232f": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "certifi-2022.12.7-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "certifi==2022.12.7",
-              "sha256": "4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18",
-              "urls": [
-                "https://files.pythonhosted.org/packages/71/4c/3db2b8021bd6f2f0ceb0e088d6b2d49147671f25832fb17970e9b583d742/certifi-2022.12.7-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_certifi_sdist_35824b4c": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "certifi-2022.12.7.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "certifi==2022.12.7",
-              "sha256": "35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3",
-              "urls": [
-                "https://files.pythonhosted.org/packages/37/f7/2b1b0ec44fdc30a3d31dfebe52226be9ddc40cd6c0f34ffc8923ba423b69/certifi-2022.12.7.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_certifi_py3_none_any_922820b5": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "certifi-2024.8.30-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "certifi==2024.8.30",
-              "sha256": "922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8",
-              "urls": [
-                "https://files.pythonhosted.org/packages/12/90/3c9ff0512038035f59d279fddeb79f5f1eccd8859f06d6163c58798b9487/certifi-2024.8.30-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_certifi_sdist_bec941d2": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "certifi-2024.8.30.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "certifi==2024.8.30",
-              "sha256": "bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9",
-              "urls": [
-                "https://files.pythonhosted.org/packages/b0/ee/9b19140fe824b367c04c5e1b369942dd754c4c5462d5674002f75c4dedc1/certifi-2024.8.30.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_jeepney_py3_none_any_c0a454ad": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "jeepney-0.8.0-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "jeepney==0.8.0",
-              "sha256": "c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755",
-              "urls": [
-                "https://files.pythonhosted.org/packages/ae/72/2a1e2290f1ab1e06f71f3d0f1646c9e4634e70e1d37491535e19266e8dc9/jeepney-0.8.0-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_jeepney_sdist_5efe48d2": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "jeepney-0.8.0.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "jeepney==0.8.0",
-              "sha256": "5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806",
-              "urls": [
-                "https://files.pythonhosted.org/packages/d6/f4/154cf374c2daf2020e05c3c6a03c91348d59b23c5366e968feb198306fdf/jeepney-0.8.0.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_keyring_py3_none_any_771ed2a9": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "keyring-23.13.1-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "keyring==23.13.1",
-              "sha256": "771ed2a91909389ed6148631de678f82ddc73737d85a927f382a8a1b157898cd",
-              "urls": [
-                "https://files.pythonhosted.org/packages/62/db/0e9a09b2b95986dcd73ac78be6ed2bd73ebe8bac65cba7add5b83eb9d899/keyring-23.13.1-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_keyring_sdist_ba2e15a9": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "keyring-23.13.1.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "keyring==23.13.1",
-              "sha256": "ba2e15a9b35e21908d0aaf4e0a47acc52d6ae33444df0da2b49d41a46ef6d678",
-              "urls": [
-                "https://files.pythonhosted.org/packages/55/fe/282f4c205add8e8bb3a1635cbbac59d6def2e0891b145aa553a0e40dd2d0/keyring-23.13.1.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_pkginfo_py3_none_any_4b7a555a": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "pkginfo-1.9.6-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "pkginfo==1.9.6",
-              "sha256": "4b7a555a6d5a22169fcc9cf7bfd78d296b0361adad412a346c1226849af5e546",
-              "urls": [
-                "https://files.pythonhosted.org/packages/b3/f2/6e95c86a23a30fa205ea6303a524b20cbae27fbee69216377e3d95266406/pkginfo-1.9.6-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_pkginfo_sdist_8fd5896e": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "pkginfo-1.9.6.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "pkginfo==1.9.6",
-              "sha256": "8fd5896e8718a4372f0ea9cc9d96f6417c9b986e23a4d116dda26b62cc29d046",
-              "urls": [
-                "https://files.pythonhosted.org/packages/b4/1c/89b38e431c20d6b2389ed8b3926c2ab72f58944733ba029354c6d9f69129/pkginfo-1.9.6.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_rfc3986_py2_none_any_50b1502b": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "rfc3986-2.0.0-py2.py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "rfc3986==2.0.0",
-              "sha256": "50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd",
-              "urls": [
-                "https://files.pythonhosted.org/packages/ff/9a/9afaade874b2fa6c752c36f1548f718b5b83af81ed9b76628329dab81c1b/rfc3986-2.0.0-py2.py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_rfc3986_sdist_97aacf9d": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "rfc3986-2.0.0.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "rfc3986==2.0.0",
-              "sha256": "97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c",
-              "urls": [
-                "https://files.pythonhosted.org/packages/85/40/1520d68bfa07ab5a6f065a186815fb6610c86fe957bc065754e47f7b0840/rfc3986-2.0.0.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_urllib3_py2_none_any_75edcdc2": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "urllib3-1.26.14-py2.py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "urllib3==1.26.14",
-              "sha256": "75edcdc2f7d85b137124a6c3c9fc3933cdeaa12ecb9a6a959f22797a0feca7e1",
-              "urls": [
-                "https://files.pythonhosted.org/packages/fe/ca/466766e20b767ddb9b951202542310cba37ea5f2d792dae7589f1741af58/urllib3-1.26.14-py2.py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_urllib3_sdist_076907bf": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "urllib3-1.26.14.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "urllib3==1.26.14",
-              "sha256": "076907bf8fd355cde77728471316625a4d2f7e713c125f51953bb5b3eecf4f72",
-              "urls": [
-                "https://files.pythonhosted.org/packages/c5/52/fe421fb7364aa738b3506a2d99e4f3a56e079c0a798e9f4fa5e14c60922f/urllib3-1.26.14.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_urllib3_py2_none_any_37a03444": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "urllib3-1.26.19-py2.py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "urllib3==1.26.19",
-              "sha256": "37a0344459b199fce0e80b0d3569837ec6b6937435c5244e7fd73fa6006830f3",
-              "urls": [
-                "https://files.pythonhosted.org/packages/ae/6a/99eaaeae8becaa17a29aeb334a18e5d582d873b6f084c11f02581b8d7f7f/urllib3-1.26.19-py2.py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_urllib3_sdist_3e3d753a": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "urllib3-1.26.19.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "urllib3==1.26.19",
-              "sha256": "3e3d753a8618b86d7de333b4223005f68720bcd6a7d2bcb9fbd2229ec7c1e429",
-              "urls": [
-                "https://files.pythonhosted.org/packages/c8/93/65e479b023bbc46dab3e092bda6b0005424ea3217d711964ccdede3f9b1b/urllib3-1.26.19.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_docutils_py3_none_any_5e1de4d8": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "docutils-0.19-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "docutils==0.19",
-              "sha256": "5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc",
-              "urls": [
-                "https://files.pythonhosted.org/packages/93/69/e391bd51bc08ed9141ecd899a0ddb61ab6465309f1eb470905c0c8868081/docutils-0.19-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_docutils_sdist_33995a67": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "docutils-0.19.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "docutils==0.19",
-              "sha256": "33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6",
-              "urls": [
-                "https://files.pythonhosted.org/packages/6b/5c/330ea8d383eb2ce973df34d1239b3b21e91cd8c865d21ff82902d952f91f/docutils-0.19.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_docutils_py3_none_any_dafca5b9": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "docutils-0.21.2-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "docutils==0.21.2",
-              "sha256": "dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2",
-              "urls": [
-                "https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_docutils_sdist_3a6b1873": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "docutils-0.21.2.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "docutils==0.21.2",
-              "sha256": "3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f",
-              "urls": [
-                "https://files.pythonhosted.org/packages/ae/ed/aefcc8cd0ba62a0560c3c18c33925362d46c6075480bfa4df87b28e169a9/docutils-0.21.2.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_pygments_py3_none_any_fa7bd7bd": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "Pygments-2.14.0-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "pygments==2.14.0",
-              "sha256": "fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717",
-              "urls": [
-                "https://files.pythonhosted.org/packages/0b/42/d9d95cc461f098f204cd20c85642ae40fbff81f74c300341b8d0e0df14e0/Pygments-2.14.0-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_pygments_sdist_b3ed06a9": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "Pygments-2.14.0.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "pygments==2.14.0",
-              "sha256": "b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297",
-              "urls": [
-                "https://files.pythonhosted.org/packages/da/6a/c427c06913204e24de28de5300d3f0e809933f376e0b7df95194b2bb3f71/Pygments-2.14.0.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_requests_py3_none_any_64299f49": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "requests-2.28.2-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "requests==2.28.2",
-              "sha256": "64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa",
-              "urls": [
-                "https://files.pythonhosted.org/packages/d2/f4/274d1dbe96b41cf4e0efb70cbced278ffd61b5c7bb70338b62af94ccb25b/requests-2.28.2-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_requests_sdist_98b1b278": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "requests-2.28.2.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "requests==2.28.2",
-              "sha256": "98b1b2782e3c6c4904938b84c0eb932721069dfdb9134313beff7c83c2df24bf",
-              "urls": [
-                "https://files.pythonhosted.org/packages/9d/ee/391076f5937f0a8cdf5e53b701ffc91753e87b07d66bae4a09aa671897bf/requests-2.28.2.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_pycparser_py2_none_any_8ee45429": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "pycparser-2.21-py2.py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "pycparser==2.21",
-              "sha256": "8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9",
-              "urls": [
-                "https://files.pythonhosted.org/packages/62/d5/5f610ebe421e85889f2e55e33b7f9a6795bd982198517d912eb1c76e1a53/pycparser-2.21-py2.py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_pycparser_sdist_e644fdec": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "pycparser-2.21.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "pycparser==2.21",
-              "sha256": "e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206",
-              "urls": [
-                "https://files.pythonhosted.org/packages/5e/0b/95d387f5f4433cb0f53ff7ad859bd2c6051051cebbb564f139a999ab46de/pycparser-2.21.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_2_x86_64_ce8613be": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "cryptography-42.0.4-cp39-abi3-musllinux_1_2_x86_64.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "cryptography==42.0.4",
-              "sha256": "ce8613beaffc7c14f091497346ef117c1798c202b01153a8cc7b8e2ebaaf41c0",
-              "urls": [
-                "https://files.pythonhosted.org/packages/a2/8e/dac70232d4231c53448e29aa4b768cf82d891fcfd6e0caa7ace242da8c9b/cryptography-42.0.4-cp39-abi3-musllinux_1_2_x86_64.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_28_aarch64_1df6fcbf": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "cryptography-42.0.4-cp39-abi3-manylinux_2_28_aarch64.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "cryptography==42.0.4",
-              "sha256": "1df6fcbf60560d2113b5ed90f072dc0b108d64750d4cbd46a21ec882c7aefce9",
-              "urls": [
-                "https://files.pythonhosted.org/packages/4c/e1/18056b2c0e4ba031ea6b9d660bc2bdf491f7ef64ab7ef1a803a03a8b8d26/cryptography-42.0.4-cp39-abi3-manylinux_2_28_aarch64.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_1_aarch64_3c6048f2": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "cryptography-42.0.4-cp39-abi3-musllinux_1_1_aarch64.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "cryptography==42.0.4",
-              "sha256": "3c6048f217533d89f2f8f4f0fe3044bf0b2090453b7b73d0b77db47b80af8dff",
-              "urls": [
-                "https://files.pythonhosted.org/packages/ea/a1/04733ecbe1e77a228c738f4ab321ca050e45284997f3e3a1539461cd4bca/cryptography-42.0.4-cp39-abi3-musllinux_1_1_aarch64.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_28_x86_64_44a64043": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "cryptography-42.0.4-cp39-abi3-manylinux_2_28_x86_64.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "cryptography==42.0.4",
-              "sha256": "44a64043f743485925d3bcac548d05df0f9bb445c5fcca6681889c7c3ab12764",
-              "urls": [
-                "https://files.pythonhosted.org/packages/7e/45/81f378eb85aab14b229c1032ba3694eff85a3d75b35092c3e71abd2d34f6/cryptography-42.0.4-cp39-abi3-manylinux_2_28_x86_64.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_17_x86_64_6ffb03d4": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "cryptography-42.0.4-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "cryptography==42.0.4",
-              "sha256": "6ffb03d419edcab93b4b19c22ee80c007fb2d708429cecebf1dd3258956a563a",
-              "urls": [
-                "https://files.pythonhosted.org/packages/32/c2/4ff3cf950504aa6ccd3db3712f515151536eea0cf6125442015b0532a46d/cryptography-42.0.4-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_2_aarch64_887623fe": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "cryptography-42.0.4-cp39-abi3-musllinux_1_2_aarch64.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "cryptography==42.0.4",
-              "sha256": "887623fe0d70f48ab3f5e4dbf234986b1329a64c066d719432d0698522749929",
-              "urls": [
-                "https://files.pythonhosted.org/packages/da/56/1b2c8aa8e62bfb568022b68d77ebd2bd9afddea37898350fbfe008dcefa7/cryptography-42.0.4-cp39-abi3-musllinux_1_2_aarch64.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_1_x86_64_6d0fbe73": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "cryptography-42.0.4-cp39-abi3-musllinux_1_1_x86_64.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "cryptography==42.0.4",
-              "sha256": "6d0fbe73728c44ca3a241eff9aefe6496ab2656d6e7a4ea2459865f2e8613257",
-              "urls": [
-                "https://files.pythonhosted.org/packages/41/5d/33f17e40dbb7441ad51e8a6920e726f68443cdbfb388cb8eff53e4b6ffd4/cryptography-42.0.4-cp39-abi3-musllinux_1_1_x86_64.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_17_aarch64_a1327f28": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "cryptography-42.0.4-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "cryptography==42.0.4",
-              "sha256": "a1327f280c824ff7885bdeef8578f74690e9079267c1c8bd7dc5cc5aa065ae52",
-              "urls": [
-                "https://files.pythonhosted.org/packages/44/61/644e21048102cd72a13325fd6443db741746fbf0157e7c5d5c7628afc336/cryptography-42.0.4-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_cryptography_sdist_831a4b37": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "cryptography-42.0.4.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "cryptography==42.0.4",
-              "sha256": "831a4b37accef30cccd34fcb916a5d7b5be3cbbe27268a02832c3e450aea39cb",
-              "urls": [
-                "https://files.pythonhosted.org/packages/81/d8/214d25515bf6034dce99aba22eeb47443b14c82160114e3d3f33067c6d3b/cryptography-42.0.4.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_webencodings_py2_none_any_a0af1213": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "webencodings-0.5.1-py2.py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "webencodings==0.5.1",
-              "sha256": "a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78",
-              "urls": [
-                "https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_webencodings_sdist_b36a1c24": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "webencodings-0.5.1.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "webencodings==0.5.1",
-              "sha256": "b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923",
-              "urls": [
-                "https://files.pythonhosted.org/packages/0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47/webencodings-0.5.1.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_secretstorage_py3_none_any_f356e662": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "SecretStorage-3.3.3-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "secretstorage==3.3.3",
-              "sha256": "f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99",
-              "urls": [
-                "https://files.pythonhosted.org/packages/54/24/b4293291fa1dd830f353d2cb163295742fa87f179fcc8a20a306a81978b7/SecretStorage-3.3.3-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_secretstorage_sdist_2403533e": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "SecretStorage-3.3.3.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "secretstorage==3.3.3",
-              "sha256": "2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77",
-              "urls": [
-                "https://files.pythonhosted.org/packages/53/a4/f48c9d79cb507ed1373477dbceaba7401fd8a23af63b837fa61f1dcd3691/SecretStorage-3.3.3.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_jaraco_classes_py3_none_any_2353de32": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "jaraco.classes-3.2.3-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "jaraco-classes==3.2.3",
-              "sha256": "2353de3288bc6b82120752201c6b1c1a14b058267fa424ed5ce5984e3b922158",
-              "urls": [
-                "https://files.pythonhosted.org/packages/60/28/220d3ae0829171c11e50dded4355d17824d60895285631d7eb9dee0ab5e5/jaraco.classes-3.2.3-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_jaraco_classes_sdist_89559fa5": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "jaraco.classes-3.2.3.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "jaraco-classes==3.2.3",
-              "sha256": "89559fa5c1d3c34eff6f631ad80bb21f378dbcbb35dd161fd2c6b93f5be2f98a",
-              "urls": [
-                "https://files.pythonhosted.org/packages/bf/02/a956c9bfd2dfe60b30c065ed8e28df7fcf72b292b861dca97e951c145ef6/jaraco.classes-3.2.3.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_markdown_it_py_py3_none_any_93de681e": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "markdown_it_py-2.1.0-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "markdown-it-py==2.1.0",
-              "sha256": "93de681e5c021a432c63147656fe21790bc01231e0cd2da73626f1aa3ac0fe27",
-              "urls": [
-                "https://files.pythonhosted.org/packages/f9/3f/ecd1b708973b9a3e4574b43cffc1ce8eb98696da34f1a1c44a68c3c0d737/markdown_it_py-2.1.0-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_markdown_it_py_sdist_cf7e59fe": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "markdown-it-py-2.1.0.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "markdown-it-py==2.1.0",
-              "sha256": "cf7e59fed14b5ae17c0006eff14a2d9a00ed5f3a846148153899a0224e2c07da",
-              "urls": [
-                "https://files.pythonhosted.org/packages/33/e9/ac8a93e9eda3891ecdfecf5e01c060bbd2c44d4e3e77efc83b9c7ce9db32/markdown-it-py-2.1.0.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_more_itertools_py3_none_any_250e83d7": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "more_itertools-9.0.0-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "more-itertools==9.0.0",
-              "sha256": "250e83d7e81d0c87ca6bd942e6aeab8cc9daa6096d12c5308f3f92fa5e5c1f41",
-              "urls": [
-                "https://files.pythonhosted.org/packages/5d/87/1ec3fcc09d2c04b977eabf8a1083222f82eaa2f46d5a4f85f403bf8e7b30/more_itertools-9.0.0-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_more_itertools_sdist_5a6257e4": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "more-itertools-9.0.0.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "more-itertools==9.0.0",
-              "sha256": "5a6257e40878ef0520b1803990e3e22303a41b5714006c32a3fd8304b26ea1ab",
-              "urls": [
-                "https://files.pythonhosted.org/packages/13/b3/397aa9668da8b1f0c307bc474608653d46122ae0563d1d32f60e24fa0cbd/more-itertools-9.0.0.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_readme_renderer_py3_none_any_f67a16ca": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "readme_renderer-37.3-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "readme-renderer==37.3",
-              "sha256": "f67a16caedfa71eef48a31b39708637a6f4664c4394801a7b0d6432d13907343",
-              "urls": [
-                "https://files.pythonhosted.org/packages/97/52/fd8a77d6f0a9ddeb26ed8fb334e01ac546106bf0c5b8e40dc826c5bd160f/readme_renderer-37.3-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_readme_renderer_sdist_cd653186": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "readme_renderer-37.3.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "readme-renderer==37.3",
-              "sha256": "cd653186dfc73055656f090f227f5cb22a046d7f71a841dfa305f55c9a513273",
-              "urls": [
-                "https://files.pythonhosted.org/packages/81/c3/d20152fcd1986117b898f66928938f329d0c91ddc47f081c58e64e0f51dc/readme_renderer-37.3.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_requests_toolbelt_py2_none_any_18565aa5": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "requests_toolbelt-0.10.1-py2.py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "requests-toolbelt==0.10.1",
-              "sha256": "18565aa58116d9951ac39baa288d3adb5b3ff975c4f25eee78555d89e8f247f7",
-              "urls": [
-                "https://files.pythonhosted.org/packages/05/d3/bf87a36bff1cb88fd30a509fd366c70ec30676517ee791b2f77e0e29817a/requests_toolbelt-0.10.1-py2.py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_requests_toolbelt_sdist_62e09f7f": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "requests-toolbelt-0.10.1.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "requests-toolbelt==0.10.1",
-              "sha256": "62e09f7ff5ccbda92772a29f394a49c3ad6cb181d568b1337626b2abb628a63d",
-              "urls": [
-                "https://files.pythonhosted.org/packages/0c/4c/07f01c6ac44f7784fa399137fbc8d0cdc1b5d35304e8c0f278ad82105b58/requests-toolbelt-0.10.1.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_ppc64le_0c0a5902": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "charset_normalizer-3.0.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "charset-normalizer==3.0.1",
-              "sha256": "0c0a590235ccd933d9892c627dec5bc7511ce6ad6c1011fdf5b11363022746c1",
-              "urls": [
-                "https://files.pythonhosted.org/packages/12/e5/aa09a1c39c3e444dd223d63e2c816c18ed78d035cff954143b2a539bdc9e/charset_normalizer-3.0.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_aarch64_14e76c0f": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "charset_normalizer-3.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "charset-normalizer==3.0.1",
-              "sha256": "14e76c0f23218b8f46c4d87018ca2e441535aed3632ca134b10239dfb6dadd6b",
-              "urls": [
-                "https://files.pythonhosted.org/packages/c0/4d/6b82099e3f25a9ed87431e2f51156c14f3a9ce8fad73880a3856cd95f1d5/charset_normalizer-3.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_1_s390x_4a8fcf28": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "charset_normalizer-3.0.1-cp311-cp311-musllinux_1_1_s390x.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "charset-normalizer==3.0.1",
-              "sha256": "4a8fcf28c05c1f6d7e177a9a46a1c52798bfe2ad80681d275b10dcf317deaf0b",
-              "urls": [
-                "https://files.pythonhosted.org/packages/80/54/183163f9910936e57a60ee618f4f5cc91c2f8333ee2d4ebc6c50f6c8684d/charset_normalizer-3.0.1-cp311-cp311-musllinux_1_1_s390x.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_1_ppc64le_5995f016": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "charset_normalizer-3.0.1-cp311-cp311-musllinux_1_1_ppc64le.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "charset-normalizer==3.0.1",
-              "sha256": "5995f0164fa7df59db4746112fec3f49c461dd6b31b841873443bdb077c13cfc",
-              "urls": [
-                "https://files.pythonhosted.org/packages/86/eb/31c9025b4ed7eddd930c5f2ac269efb953de33140608c7539675d74a2081/charset_normalizer-3.0.1-cp311-cp311-musllinux_1_1_ppc64le.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_1_aarch64_72966d1b": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "charset_normalizer-3.0.1-cp311-cp311-musllinux_1_1_aarch64.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "charset-normalizer==3.0.1",
-              "sha256": "72966d1b297c741541ca8cf1223ff262a6febe52481af742036a0b296e35fa5a",
-              "urls": [
-                "https://files.pythonhosted.org/packages/01/ff/9ee4a44e8c32fe96dfc12daa42f29294608a55eadc88f327939327fb20fb/charset_normalizer-3.0.1-cp311-cp311-musllinux_1_1_aarch64.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_1_x86_64_761e8904": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "charset_normalizer-3.0.1-cp311-cp311-musllinux_1_1_x86_64.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "charset-normalizer==3.0.1",
-              "sha256": "761e8904c07ad053d285670f36dd94e1b6ab7f16ce62b9805c475b7aa1cffde6",
-              "urls": [
-                "https://files.pythonhosted.org/packages/82/49/ab81421d5aa25bc8535896a017c93204cb4051f2a4e72b1ad8f3b594e072/charset_normalizer-3.0.1-cp311-cp311-musllinux_1_1_x86_64.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_x86_64_79909e27": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "charset_normalizer-3.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "charset-normalizer==3.0.1",
-              "sha256": "79909e27e8e4fcc9db4addea88aa63f6423ebb171db091fb4373e3312cb6d603",
-              "urls": [
-                "https://files.pythonhosted.org/packages/d9/7a/60d45c9453212b30eebbf8b5cddbdef330eebddfcf335bce7920c43fb72e/charset_normalizer-3.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_charset_normalizer_py3_none_any_7e189e2e": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "charset_normalizer-3.0.1-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "charset-normalizer==3.0.1",
-              "sha256": "7e189e2e1d3ed2f4aebabd2d5b0f931e883676e51c7624826e0a4e5fe8a0bf24",
-              "urls": [
-                "https://files.pythonhosted.org/packages/68/2b/02e9d6a98ddb73fa238d559a9edcc30b247b8dc4ee848b6184c936e99dc0/charset_normalizer-3.0.1-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_s390x_8c7fe7af": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "charset_normalizer-3.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "charset-normalizer==3.0.1",
-              "sha256": "8c7fe7afa480e3e82eed58e0ca89f751cd14d767638e2550c77a92a9e749c317",
-              "urls": [
-                "https://files.pythonhosted.org/packages/df/c5/dd3a17a615775d0ffc3e12b0e47833d8b7e0a4871431dad87a3f92382a19/charset_normalizer-3.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_charset_normalizer_sdist_ebea339a": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64"
-              ],
-              "filename": "charset-normalizer-3.0.1.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "charset-normalizer==3.0.1",
-              "sha256": "ebea339af930f8ca5d7a699b921106c6e29c617fe9606fa7baa043c1cdae326f",
-              "urls": [
-                "https://files.pythonhosted.org/packages/96/d7/1675d9089a1f4677df5eb29c3f8b064aa1e70c1251a0a8a127803158942d/charset-normalizer-3.0.1.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_charset_normalizer_py3_none_any_3e4d1f65": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "charset_normalizer-3.3.2-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "charset-normalizer==3.3.2",
-              "sha256": "3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc",
-              "urls": [
-                "https://files.pythonhosted.org/packages/28/76/e6222113b83e3622caa4bb41032d0b1bf785250607392e1b778aca0b8a7d/charset_normalizer-3.3.2-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_11_0_arm64_549a3a73": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "charset-normalizer==3.3.2",
-              "sha256": "549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e",
-              "urls": [
-                "https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_10_9_x86_64_573f6eac": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "charset-normalizer==3.3.2",
-              "sha256": "573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96",
-              "urls": [
-                "https://files.pythonhosted.org/packages/3e/33/21a875a61057165e92227466e54ee076b73af1e21fe1b31f1e292251aa1e/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_win_amd64_66394663": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "charset-normalizer==3.3.2",
-              "sha256": "663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77",
-              "urls": [
-                "https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_10_9_universal2_802fe99c": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "charset-normalizer==3.3.2",
-              "sha256": "802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db",
-              "urls": [
-                "https://files.pythonhosted.org/packages/68/77/02839016f6fbbf808e8b38601df6e0e66c17bbab76dff4613f7511413597/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_charset_normalizer_sdist_f30c3cb3": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "charset-normalizer-3.3.2.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "charset-normalizer==3.3.2",
-              "sha256": "f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5",
-              "urls": [
-                "https://files.pythonhosted.org/packages/63/09/c1bc53dab74b1816a00d8d030de5bf98f724c52c1635e07681d312f20be8/charset-normalizer-3.3.2.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_importlib_metadata_py3_none_any_7efb448e": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "importlib_metadata-6.0.0-py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "importlib-metadata==6.0.0",
-              "sha256": "7efb448ec9a5e313a57655d35aa54cd3e01b7e1fbcf72dce1bf06119420f5bad",
-              "urls": [
-                "https://files.pythonhosted.org/packages/26/a7/9da7d5b23fc98ab3d424ac2c65613d63c1f401efb84ad50f2fa27b2caab4/importlib_metadata-6.0.0-py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_importlib_metadata_sdist_e354bede": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_linux_aarch64",
-                "cp311_linux_arm",
-                "cp311_linux_ppc",
-                "cp311_linux_s390x",
-                "cp311_linux_x86_64",
-                "cp311_osx_aarch64",
-                "cp311_osx_x86_64",
-                "cp311_windows_x86_64"
-              ],
-              "filename": "importlib_metadata-6.0.0.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "importlib-metadata==6.0.0",
-              "sha256": "e354bedeb60efa6affdcc8ae121b73544a7aa74156d047311948f6d711cd378d",
-              "urls": [
-                "https://files.pythonhosted.org/packages/90/07/6397ad02d31bddf1841c9ad3ec30a693a3ff208e09c2ef45c9a8a5f85156/importlib_metadata-6.0.0.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_pywin32_ctypes_py2_none_any_9dc2d991": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_windows_x86_64"
-              ],
-              "filename": "pywin32_ctypes-0.2.0-py2.py3-none-any.whl",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "pywin32-ctypes==0.2.0",
-              "sha256": "9dc2d991b3479cc2df15930958b674a48a227d5361d413827a4cfd0b5876fc98",
-              "urls": [
-                "https://files.pythonhosted.org/packages/9e/4b/3ab2720f1fa4b4bc924ef1932b842edf10007e4547ea8157b0b9fc78599a/pywin32_ctypes-0.2.0-py2.py3-none-any.whl"
-              ]
-            }
-          },
-          "rules_python_publish_deps_311_pywin32_ctypes_sdist_24ffc3b3": {
-            "bzlFile": "@@rules_python~//python/private/pypi:whl_library.bzl",
-            "ruleClassName": "whl_library",
-            "attributes": {
-              "dep_template": "@rules_python_publish_deps//{name}:{target}",
-              "experimental_target_platforms": [
-                "cp311_windows_x86_64"
-              ],
-              "filename": "pywin32-ctypes-0.2.0.tar.gz",
-              "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python",
-              "repo": "rules_python_publish_deps_311",
-              "requirement": "pywin32-ctypes==0.2.0",
-              "sha256": "24ffc3b341d457d48e8922352130cf2644024a4ff09762a2261fd34c36ee5942",
-              "urls": [
-                "https://files.pythonhosted.org/packages/7a/7d/0dbc4c99379452a819b0fb075a0ffbb98611df6b6d59f54db67367af5bc0/pywin32-ctypes-0.2.0.tar.gz"
-              ]
-            }
-          },
-          "rules_python_publish_deps": {
-            "bzlFile": "@@rules_python~//python/private/pypi:hub_repository.bzl",
-            "ruleClassName": "hub_repository",
-            "attributes": {
-              "repo_name": "rules_python_publish_deps",
-              "whl_map": {
-                "six": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"six-1.16.0-py2.py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_six_py2_none_any_8abb2f1d\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"six-1.16.0.tar.gz\",\"repo\":\"rules_python_publish_deps_311_six_sdist_1e61c374\",\"target_platforms\":null,\"version\":\"3.11\"}]",
-                "cffi": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\",\"repo\":\"rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_aarch64_3548db28\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\",\"repo\":\"rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_ppc64le_91fc98ad\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\",\"repo\":\"rules_python_publish_deps_311_cffi_cp311_cp311_manylinux_2_17_x86_64_94411f22\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl\",\"repo\":\"rules_python_publish_deps_311_cffi_cp311_cp311_musllinux_1_1_x86_64_cc4d65ae\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"cffi-1.15.1.tar.gz\",\"repo\":\"rules_python_publish_deps_311_cffi_sdist_d400bfb9\",\"target_platforms\":null,\"version\":\"3.11\"}]",
-                "idna": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"idna-3.10-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_idna_py3_none_any_946d195a\",\"target_platforms\":[\"cp311_osx_aarch64\",\"cp311_osx_x86_64\",\"cp311_windows_x86_64\"],\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"idna-3.10.tar.gz\",\"repo\":\"rules_python_publish_deps_311_idna_sdist_12f65c9b\",\"target_platforms\":[\"cp311_osx_aarch64\",\"cp311_osx_x86_64\",\"cp311_windows_x86_64\"],\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"idna-3.4-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_idna_py3_none_any_90b77e79\",\"target_platforms\":[\"cp311_linux_aarch64\",\"cp311_linux_arm\",\"cp311_linux_ppc\",\"cp311_linux_s390x\",\"cp311_linux_x86_64\"],\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"idna-3.4.tar.gz\",\"repo\":\"rules_python_publish_deps_311_idna_sdist_814f528e\",\"target_platforms\":[\"cp311_linux_aarch64\",\"cp311_linux_arm\",\"cp311_linux_ppc\",\"cp311_linux_s390x\",\"cp311_linux_x86_64\"],\"version\":\"3.11\"}]",
-                "rich": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"rich-13.2.0-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_rich_py3_none_any_7c963f0d\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"rich-13.2.0.tar.gz\",\"repo\":\"rules_python_publish_deps_311_rich_sdist_f1a00cdd\",\"target_platforms\":null,\"version\":\"3.11\"}]",
-                "zipp": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"zipp-3.11.0-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_zipp_py3_none_any_83a28fcb\",\"target_platforms\":[\"cp311_linux_aarch64\",\"cp311_linux_arm\",\"cp311_linux_ppc\",\"cp311_linux_s390x\",\"cp311_linux_x86_64\"],\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"zipp-3.11.0.tar.gz\",\"repo\":\"rules_python_publish_deps_311_zipp_sdist_a7a22e05\",\"target_platforms\":[\"cp311_linux_aarch64\",\"cp311_linux_arm\",\"cp311_linux_ppc\",\"cp311_linux_s390x\",\"cp311_linux_x86_64\"],\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"zipp-3.19.2-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_zipp_py3_none_any_f091755f\",\"target_platforms\":[\"cp311_osx_aarch64\",\"cp311_osx_x86_64\",\"cp311_windows_x86_64\"],\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"zipp-3.19.2.tar.gz\",\"repo\":\"rules_python_publish_deps_311_zipp_sdist_bf1dcf64\",\"target_platforms\":[\"cp311_osx_aarch64\",\"cp311_osx_x86_64\",\"cp311_windows_x86_64\"],\"version\":\"3.11\"}]",
-                "mdurl": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"mdurl-0.1.2-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_mdurl_py3_none_any_84008a41\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"mdurl-0.1.2.tar.gz\",\"repo\":\"rules_python_publish_deps_311_mdurl_sdist_bb413d29\",\"target_platforms\":null,\"version\":\"3.11\"}]",
-                "twine": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"twine-4.0.2-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_twine_py3_none_any_929bc3c2\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"twine-4.0.2.tar.gz\",\"repo\":\"rules_python_publish_deps_311_twine_sdist_9e102ef5\",\"target_platforms\":null,\"version\":\"3.11\"}]",
-                "bleach": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"bleach-6.0.0-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_bleach_py3_none_any_33c16e33\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"bleach-6.0.0.tar.gz\",\"repo\":\"rules_python_publish_deps_311_bleach_sdist_1a1a85c1\",\"target_platforms\":null,\"version\":\"3.11\"}]",
-                "certifi": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"certifi-2022.12.7-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_certifi_py3_none_any_4ad3232f\",\"target_platforms\":[\"cp311_linux_aarch64\",\"cp311_linux_arm\",\"cp311_linux_ppc\",\"cp311_linux_s390x\",\"cp311_linux_x86_64\"],\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"certifi-2022.12.7.tar.gz\",\"repo\":\"rules_python_publish_deps_311_certifi_sdist_35824b4c\",\"target_platforms\":[\"cp311_linux_aarch64\",\"cp311_linux_arm\",\"cp311_linux_ppc\",\"cp311_linux_s390x\",\"cp311_linux_x86_64\"],\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"certifi-2024.8.30-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_certifi_py3_none_any_922820b5\",\"target_platforms\":[\"cp311_osx_aarch64\",\"cp311_osx_x86_64\",\"cp311_windows_x86_64\"],\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"certifi-2024.8.30.tar.gz\",\"repo\":\"rules_python_publish_deps_311_certifi_sdist_bec941d2\",\"target_platforms\":[\"cp311_osx_aarch64\",\"cp311_osx_x86_64\",\"cp311_windows_x86_64\"],\"version\":\"3.11\"}]",
-                "jeepney": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"jeepney-0.8.0-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_jeepney_py3_none_any_c0a454ad\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"jeepney-0.8.0.tar.gz\",\"repo\":\"rules_python_publish_deps_311_jeepney_sdist_5efe48d2\",\"target_platforms\":null,\"version\":\"3.11\"}]",
-                "keyring": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"keyring-23.13.1-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_keyring_py3_none_any_771ed2a9\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"keyring-23.13.1.tar.gz\",\"repo\":\"rules_python_publish_deps_311_keyring_sdist_ba2e15a9\",\"target_platforms\":null,\"version\":\"3.11\"}]",
-                "pkginfo": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"pkginfo-1.9.6-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_pkginfo_py3_none_any_4b7a555a\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"pkginfo-1.9.6.tar.gz\",\"repo\":\"rules_python_publish_deps_311_pkginfo_sdist_8fd5896e\",\"target_platforms\":null,\"version\":\"3.11\"}]",
-                "rfc3986": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"rfc3986-2.0.0-py2.py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_rfc3986_py2_none_any_50b1502b\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"rfc3986-2.0.0.tar.gz\",\"repo\":\"rules_python_publish_deps_311_rfc3986_sdist_97aacf9d\",\"target_platforms\":null,\"version\":\"3.11\"}]",
-                "urllib3": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"urllib3-1.26.14-py2.py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_urllib3_py2_none_any_75edcdc2\",\"target_platforms\":[\"cp311_linux_aarch64\",\"cp311_linux_arm\",\"cp311_linux_ppc\",\"cp311_linux_s390x\",\"cp311_linux_x86_64\"],\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"urllib3-1.26.14.tar.gz\",\"repo\":\"rules_python_publish_deps_311_urllib3_sdist_076907bf\",\"target_platforms\":[\"cp311_linux_aarch64\",\"cp311_linux_arm\",\"cp311_linux_ppc\",\"cp311_linux_s390x\",\"cp311_linux_x86_64\"],\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"urllib3-1.26.19-py2.py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_urllib3_py2_none_any_37a03444\",\"target_platforms\":[\"cp311_osx_aarch64\",\"cp311_osx_x86_64\",\"cp311_windows_x86_64\"],\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"urllib3-1.26.19.tar.gz\",\"repo\":\"rules_python_publish_deps_311_urllib3_sdist_3e3d753a\",\"target_platforms\":[\"cp311_osx_aarch64\",\"cp311_osx_x86_64\",\"cp311_windows_x86_64\"],\"version\":\"3.11\"}]",
-                "docutils": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"docutils-0.19-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_docutils_py3_none_any_5e1de4d8\",\"target_platforms\":[\"cp311_linux_aarch64\",\"cp311_linux_arm\",\"cp311_linux_ppc\",\"cp311_linux_s390x\",\"cp311_linux_x86_64\"],\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"docutils-0.19.tar.gz\",\"repo\":\"rules_python_publish_deps_311_docutils_sdist_33995a67\",\"target_platforms\":[\"cp311_linux_aarch64\",\"cp311_linux_arm\",\"cp311_linux_ppc\",\"cp311_linux_s390x\",\"cp311_linux_x86_64\"],\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"docutils-0.21.2-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_docutils_py3_none_any_dafca5b9\",\"target_platforms\":[\"cp311_osx_aarch64\",\"cp311_osx_x86_64\",\"cp311_windows_x86_64\"],\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"docutils-0.21.2.tar.gz\",\"repo\":\"rules_python_publish_deps_311_docutils_sdist_3a6b1873\",\"target_platforms\":[\"cp311_osx_aarch64\",\"cp311_osx_x86_64\",\"cp311_windows_x86_64\"],\"version\":\"3.11\"}]",
-                "pygments": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"Pygments-2.14.0-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_pygments_py3_none_any_fa7bd7bd\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"Pygments-2.14.0.tar.gz\",\"repo\":\"rules_python_publish_deps_311_pygments_sdist_b3ed06a9\",\"target_platforms\":null,\"version\":\"3.11\"}]",
-                "requests": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"requests-2.28.2-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_requests_py3_none_any_64299f49\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"requests-2.28.2.tar.gz\",\"repo\":\"rules_python_publish_deps_311_requests_sdist_98b1b278\",\"target_platforms\":null,\"version\":\"3.11\"}]",
-                "pycparser": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"pycparser-2.21-py2.py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_pycparser_py2_none_any_8ee45429\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"pycparser-2.21.tar.gz\",\"repo\":\"rules_python_publish_deps_311_pycparser_sdist_e644fdec\",\"target_platforms\":null,\"version\":\"3.11\"}]",
-                "cryptography": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"cryptography-42.0.4-cp39-abi3-musllinux_1_2_x86_64.whl\",\"repo\":\"rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_2_x86_64_ce8613be\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"cryptography-42.0.4-cp39-abi3-manylinux_2_28_aarch64.whl\",\"repo\":\"rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_28_aarch64_1df6fcbf\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"cryptography-42.0.4-cp39-abi3-musllinux_1_1_aarch64.whl\",\"repo\":\"rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_1_aarch64_3c6048f2\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"cryptography-42.0.4-cp39-abi3-manylinux_2_28_x86_64.whl\",\"repo\":\"rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_28_x86_64_44a64043\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"cryptography-42.0.4-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\",\"repo\":\"rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_17_x86_64_6ffb03d4\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"cryptography-42.0.4-cp39-abi3-musllinux_1_2_aarch64.whl\",\"repo\":\"rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_2_aarch64_887623fe\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"cryptography-42.0.4-cp39-abi3-musllinux_1_1_x86_64.whl\",\"repo\":\"rules_python_publish_deps_311_cryptography_cp39_abi3_musllinux_1_1_x86_64_6d0fbe73\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"cryptography-42.0.4-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\",\"repo\":\"rules_python_publish_deps_311_cryptography_cp39_abi3_manylinux_2_17_aarch64_a1327f28\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"cryptography-42.0.4.tar.gz\",\"repo\":\"rules_python_publish_deps_311_cryptography_sdist_831a4b37\",\"target_platforms\":null,\"version\":\"3.11\"}]",
-                "webencodings": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"webencodings-0.5.1-py2.py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_webencodings_py2_none_any_a0af1213\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"webencodings-0.5.1.tar.gz\",\"repo\":\"rules_python_publish_deps_311_webencodings_sdist_b36a1c24\",\"target_platforms\":null,\"version\":\"3.11\"}]",
-                "secretstorage": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"SecretStorage-3.3.3-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_secretstorage_py3_none_any_f356e662\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"SecretStorage-3.3.3.tar.gz\",\"repo\":\"rules_python_publish_deps_311_secretstorage_sdist_2403533e\",\"target_platforms\":null,\"version\":\"3.11\"}]",
-                "jaraco_classes": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"jaraco.classes-3.2.3-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_jaraco_classes_py3_none_any_2353de32\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"jaraco.classes-3.2.3.tar.gz\",\"repo\":\"rules_python_publish_deps_311_jaraco_classes_sdist_89559fa5\",\"target_platforms\":null,\"version\":\"3.11\"}]",
-                "markdown_it_py": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"markdown_it_py-2.1.0-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_markdown_it_py_py3_none_any_93de681e\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"markdown-it-py-2.1.0.tar.gz\",\"repo\":\"rules_python_publish_deps_311_markdown_it_py_sdist_cf7e59fe\",\"target_platforms\":null,\"version\":\"3.11\"}]",
-                "more_itertools": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"more_itertools-9.0.0-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_more_itertools_py3_none_any_250e83d7\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"more-itertools-9.0.0.tar.gz\",\"repo\":\"rules_python_publish_deps_311_more_itertools_sdist_5a6257e4\",\"target_platforms\":null,\"version\":\"3.11\"}]",
-                "readme_renderer": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"readme_renderer-37.3-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_readme_renderer_py3_none_any_f67a16ca\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"readme_renderer-37.3.tar.gz\",\"repo\":\"rules_python_publish_deps_311_readme_renderer_sdist_cd653186\",\"target_platforms\":null,\"version\":\"3.11\"}]",
-                "requests_toolbelt": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"requests_toolbelt-0.10.1-py2.py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_requests_toolbelt_py2_none_any_18565aa5\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"requests-toolbelt-0.10.1.tar.gz\",\"repo\":\"rules_python_publish_deps_311_requests_toolbelt_sdist_62e09f7f\",\"target_platforms\":null,\"version\":\"3.11\"}]",
-                "charset_normalizer": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"charset_normalizer-3.0.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\",\"repo\":\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_ppc64le_0c0a5902\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"charset_normalizer-3.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\",\"repo\":\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_aarch64_14e76c0f\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"charset_normalizer-3.0.1-cp311-cp311-musllinux_1_1_s390x.whl\",\"repo\":\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_1_s390x_4a8fcf28\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"charset_normalizer-3.0.1-cp311-cp311-musllinux_1_1_ppc64le.whl\",\"repo\":\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_1_ppc64le_5995f016\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"charset_normalizer-3.0.1-cp311-cp311-musllinux_1_1_aarch64.whl\",\"repo\":\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_1_aarch64_72966d1b\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"charset_normalizer-3.0.1-cp311-cp311-musllinux_1_1_x86_64.whl\",\"repo\":\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_musllinux_1_1_x86_64_761e8904\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"charset_normalizer-3.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\",\"repo\":\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_x86_64_79909e27\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"charset_normalizer-3.0.1-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_charset_normalizer_py3_none_any_7e189e2e\",\"target_platforms\":[\"cp311_linux_aarch64\",\"cp311_linux_arm\",\"cp311_linux_ppc\",\"cp311_linux_s390x\",\"cp311_linux_x86_64\"],\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"charset_normalizer-3.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\",\"repo\":\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_manylinux_2_17_s390x_8c7fe7af\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"charset-normalizer-3.0.1.tar.gz\",\"repo\":\"rules_python_publish_deps_311_charset_normalizer_sdist_ebea339a\",\"target_platforms\":[\"cp311_linux_aarch64\",\"cp311_linux_arm\",\"cp311_linux_ppc\",\"cp311_linux_s390x\",\"cp311_linux_x86_64\"],\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"charset_normalizer-3.3.2-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_charset_normalizer_py3_none_any_3e4d1f65\",\"target_platforms\":[\"cp311_osx_aarch64\",\"cp311_osx_x86_64\",\"cp311_windows_x86_64\"],\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl\",\"repo\":\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_11_0_arm64_549a3a73\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl\",\"repo\":\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_10_9_x86_64_573f6eac\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl\",\"repo\":\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_win_amd64_66394663\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl\",\"repo\":\"rules_python_publish_deps_311_charset_normalizer_cp311_cp311_macosx_10_9_universal2_802fe99c\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"charset-normalizer-3.3.2.tar.gz\",\"repo\":\"rules_python_publish_deps_311_charset_normalizer_sdist_f30c3cb3\",\"target_platforms\":[\"cp311_osx_aarch64\",\"cp311_osx_x86_64\",\"cp311_windows_x86_64\"],\"version\":\"3.11\"}]",
-                "importlib_metadata": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"importlib_metadata-6.0.0-py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_importlib_metadata_py3_none_any_7efb448e\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"importlib_metadata-6.0.0.tar.gz\",\"repo\":\"rules_python_publish_deps_311_importlib_metadata_sdist_e354bede\",\"target_platforms\":null,\"version\":\"3.11\"}]",
-                "pywin32_ctypes": "[{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"pywin32_ctypes-0.2.0-py2.py3-none-any.whl\",\"repo\":\"rules_python_publish_deps_311_pywin32_ctypes_py2_none_any_9dc2d991\",\"target_platforms\":null,\"version\":\"3.11\"},{\"config_setting\":\"//_config:is_python_3.11\",\"filename\":\"pywin32-ctypes-0.2.0.tar.gz\",\"repo\":\"rules_python_publish_deps_311_pywin32_ctypes_sdist_24ffc3b3\",\"target_platforms\":null,\"version\":\"3.11\"}]"
-              },
-              "packages": [
-                "bleach",
-                "certifi",
-                "charset_normalizer",
-                "docutils",
-                "idna",
-                "importlib_metadata",
-                "jaraco_classes",
-                "keyring",
-                "markdown_it_py",
-                "mdurl",
-                "more_itertools",
-                "pkginfo",
-                "pygments",
-                "readme_renderer",
-                "requests",
-                "requests_toolbelt",
-                "rfc3986",
-                "rich",
-                "six",
-                "twine",
-                "urllib3",
-                "webencodings",
-                "zipp"
-              ],
-              "groups": {}
-            }
-          }
-        },
-        "recordedRepoMappingEntries": [
-          [
-            "bazel_features~",
-            "bazel_features_globals",
-            "bazel_features~~version_extension~bazel_features_globals"
-          ],
-          [
-            "bazel_features~",
-            "bazel_features_version",
-            "bazel_features~~version_extension~bazel_features_version"
-          ],
-          [
-            "rules_python~",
-            "bazel_features",
-            "bazel_features~"
-          ],
-          [
-            "rules_python~",
-            "bazel_skylib",
-            "bazel_skylib~"
-          ],
-          [
-            "rules_python~",
-            "bazel_tools",
-            "bazel_tools"
-          ],
-          [
-            "rules_python~",
-            "pypi__build",
-            "rules_python~~internal_deps~pypi__build"
-          ],
-          [
-            "rules_python~",
-            "pypi__click",
-            "rules_python~~internal_deps~pypi__click"
-          ],
-          [
-            "rules_python~",
-            "pypi__colorama",
-            "rules_python~~internal_deps~pypi__colorama"
-          ],
-          [
-            "rules_python~",
-            "pypi__importlib_metadata",
-            "rules_python~~internal_deps~pypi__importlib_metadata"
-          ],
-          [
-            "rules_python~",
-            "pypi__installer",
-            "rules_python~~internal_deps~pypi__installer"
-          ],
-          [
-            "rules_python~",
-            "pypi__more_itertools",
-            "rules_python~~internal_deps~pypi__more_itertools"
-          ],
-          [
-            "rules_python~",
-            "pypi__packaging",
-            "rules_python~~internal_deps~pypi__packaging"
-          ],
-          [
-            "rules_python~",
-            "pypi__pep517",
-            "rules_python~~internal_deps~pypi__pep517"
-          ],
-          [
-            "rules_python~",
-            "pypi__pip",
-            "rules_python~~internal_deps~pypi__pip"
-          ],
-          [
-            "rules_python~",
-            "pypi__pip_tools",
-            "rules_python~~internal_deps~pypi__pip_tools"
-          ],
-          [
-            "rules_python~",
-            "pypi__pyproject_hooks",
-            "rules_python~~internal_deps~pypi__pyproject_hooks"
-          ],
-          [
-            "rules_python~",
-            "pypi__setuptools",
-            "rules_python~~internal_deps~pypi__setuptools"
-          ],
-          [
-            "rules_python~",
-            "pypi__tomli",
-            "rules_python~~internal_deps~pypi__tomli"
-          ],
-          [
-            "rules_python~",
-            "pypi__wheel",
-            "rules_python~~internal_deps~pypi__wheel"
-          ],
-          [
-            "rules_python~",
-            "pypi__zipp",
-            "rules_python~~internal_deps~pypi__zipp"
-          ],
-          [
-            "rules_python~",
-            "pythons_hub",
-            "rules_python~~python~pythons_hub"
-          ],
-          [
-            "rules_python~~python~pythons_hub",
-            "python_3_10_host",
-            "rules_python~~python~python_3_10_host"
-          ],
-          [
-            "rules_python~~python~pythons_hub",
-            "python_3_11_host",
-            "rules_python~~python~python_3_11_host"
-          ],
-          [
-            "rules_python~~python~pythons_hub",
-            "python_3_12_host",
-            "rules_python~~python~python_3_12_host"
-          ],
-          [
-            "rules_python~~python~pythons_hub",
-            "python_3_8_host",
-            "rules_python~~python~python_3_8_host"
-          ],
-          [
-            "rules_python~~python~pythons_hub",
-            "python_3_9_host",
-            "rules_python~~python~python_3_9_host"
-          ]
-        ]
-      }
     }
   }
 }
diff --git a/bazel/deps.bzl b/bazel/deps.bzl
index 8f6e729..50df7d6 100644
--- a/bazel/deps.bzl
+++ b/bazel/deps.bzl
@@ -21,15 +21,14 @@
 #   git show --date=raw COMMIT
 
 def perfetto_deps():
-    # Note: this is more recent than the version of protobuf we use in the
-    # GN and Android builds. This is because older versions of protobuf don't
-    # support Bazel.
+    # For bzlmod users, protobuf is provided via MODULE.bazel.
+    # For non-bzlmod users, this provides protobuf v31.1.
     _add_repo_if_not_existing(
         http_archive,
         name = "com_google_protobuf",
-        strip_prefix = "protobuf-3.10.1",
-        url = "https://github.com/protocolbuffers/protobuf/archive/v3.10.1.tar.gz",
-        sha256 = "6adf73fd7f90409e479d6ac86529ade2d45f50494c5c10f539226693cb8fe4f7",
+        strip_prefix = "protobuf-31.1",
+        url = "https://github.com/protocolbuffers/protobuf/archive/v31.1.tar.gz",
+        sha256 = "c3a0a9ece8932e31c3b736e2db18b1c42e7070cd9b881388b26d01aa71e24ca2",
     )
 
     _add_repo_if_not_existing(
diff --git a/buildtools/.gitignore b/buildtools/.gitignore
index 02f18f8..802e496 100644
--- a/buildtools/.gitignore
+++ b/buildtools/.gitignore
@@ -1,3 +1,4 @@
+/abseil-cpp/
 /android_sdk/
 /android-core/
 /android-libbase/
diff --git a/buildtools/BUILD.gn b/buildtools/BUILD.gn
index f384b7e..1bf9c3a 100644
--- a/buildtools/BUILD.gn
+++ b/buildtools/BUILD.gn
@@ -128,6 +128,688 @@
   deps = [ "//gn:default_deps" ]
 }
 
+# Abseil-cpp configuration and source_set.
+# Required by protobuf v22+.
+config("abseil_config") {
+  visibility = _buildtools_visibility
+  include_dirs = [ "abseil-cpp" ]
+  cflags = []
+  if (is_clang) {
+    cflags += [
+      "-Wno-deprecated-builtins",
+      "-Wno-deprecated-pragma",
+      "-Wno-unknown-warning-option",
+    ]
+  }
+  if (is_gcc) {
+    cflags += [
+      "-Wno-stringop-overflow",
+      "-Wno-ignored-attributes",
+    ]
+  }
+}
+
+source_set("abseil_cpp") {
+  visibility = _buildtools_visibility
+  sources = [
+    # base
+    "abseil-cpp/absl/base/attributes.h",
+    "abseil-cpp/absl/base/call_once.h",
+    "abseil-cpp/absl/base/casts.h",
+    "abseil-cpp/absl/base/config.h",
+    "abseil-cpp/absl/base/const_init.h",
+    "abseil-cpp/absl/base/dynamic_annotations.h",
+    "abseil-cpp/absl/base/internal/cycleclock.cc",
+    "abseil-cpp/absl/base/internal/cycleclock.h",
+    "abseil-cpp/absl/base/internal/low_level_alloc.cc",
+    "abseil-cpp/absl/base/internal/low_level_alloc.h",
+    "abseil-cpp/absl/base/internal/raw_logging.cc",
+    "abseil-cpp/absl/base/internal/raw_logging.h",
+    "abseil-cpp/absl/base/internal/spinlock.cc",
+    "abseil-cpp/absl/base/internal/spinlock.h",
+    "abseil-cpp/absl/base/internal/spinlock_wait.cc",
+    "abseil-cpp/absl/base/internal/spinlock_wait.h",
+    "abseil-cpp/absl/base/internal/strerror.cc",
+    "abseil-cpp/absl/base/internal/sysinfo.cc",
+    "abseil-cpp/absl/base/internal/sysinfo.h",
+    "abseil-cpp/absl/base/internal/thread_identity.cc",
+    "abseil-cpp/absl/base/internal/thread_identity.h",
+    "abseil-cpp/absl/base/internal/throw_delegate.cc",
+    "abseil-cpp/absl/base/internal/throw_delegate.h",
+    "abseil-cpp/absl/base/internal/tracing.cc",
+    "abseil-cpp/absl/base/internal/tracing.h",
+    "abseil-cpp/absl/base/internal/unscaledcycleclock.cc",
+    "abseil-cpp/absl/base/internal/unscaledcycleclock.h",
+    "abseil-cpp/absl/base/log_severity.cc",
+    "abseil-cpp/absl/base/log_severity.h",
+    "abseil-cpp/absl/base/macros.h",
+    "abseil-cpp/absl/base/no_destructor.h",
+    "abseil-cpp/absl/base/nullability.h",
+    "abseil-cpp/absl/base/optimization.h",
+    "abseil-cpp/absl/base/options.h",
+    "abseil-cpp/absl/base/policy_checks.h",
+    "abseil-cpp/absl/base/port.h",
+    "abseil-cpp/absl/base/prefetch.h",
+    "abseil-cpp/absl/base/thread_annotations.h",
+
+    # container
+    "abseil-cpp/absl/container/btree_map.h",
+    "abseil-cpp/absl/container/btree_set.h",
+    "abseil-cpp/absl/container/fixed_array.h",
+    "abseil-cpp/absl/container/flat_hash_map.h",
+    "abseil-cpp/absl/container/flat_hash_set.h",
+    "abseil-cpp/absl/container/inlined_vector.h",
+    "abseil-cpp/absl/container/internal/compressed_tuple.h",
+    "abseil-cpp/absl/container/internal/container_memory.h",
+    "abseil-cpp/absl/container/internal/hash_function_defaults.h",
+    "abseil-cpp/absl/container/internal/hashtablez_sampler.cc",
+    "abseil-cpp/absl/container/internal/hashtablez_sampler.h",
+    "abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc",
+    "abseil-cpp/absl/container/internal/raw_hash_map.h",
+    "abseil-cpp/absl/container/internal/raw_hash_set.cc",
+    "abseil-cpp/absl/container/internal/raw_hash_set.h",
+    "abseil-cpp/absl/container/node_hash_map.h",
+    "abseil-cpp/absl/container/node_hash_set.h",
+
+    # crc (needed by strings/cord)
+    "abseil-cpp/absl/crc/crc32c.cc",
+    "abseil-cpp/absl/crc/crc32c.h",
+    "abseil-cpp/absl/crc/internal/cpu_detect.cc",
+    "abseil-cpp/absl/crc/internal/crc.cc",
+    "abseil-cpp/absl/crc/internal/crc.h",
+    "abseil-cpp/absl/crc/internal/crc_cord_state.cc",
+    "abseil-cpp/absl/crc/internal/crc_cord_state.h",
+    "abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc",
+    "abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc",
+    "abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc",
+    "abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc",
+
+    # debugging (needed by log)
+    "abseil-cpp/absl/debugging/failure_signal_handler.cc",
+    "abseil-cpp/absl/debugging/failure_signal_handler.h",
+    "abseil-cpp/absl/debugging/internal/address_is_readable.cc",
+    "abseil-cpp/absl/debugging/internal/address_is_readable.h",
+    "abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc",
+    "abseil-cpp/absl/debugging/internal/demangle.cc",
+    "abseil-cpp/absl/debugging/internal/demangle.h",
+    "abseil-cpp/absl/debugging/internal/demangle_rust.cc",
+    "abseil-cpp/absl/debugging/internal/elf_mem_image.cc",
+    "abseil-cpp/absl/debugging/internal/elf_mem_image.h",
+    "abseil-cpp/absl/debugging/internal/examine_stack.cc",
+    "abseil-cpp/absl/debugging/internal/examine_stack.h",
+    "abseil-cpp/absl/debugging/internal/stack_consumption.cc",
+    "abseil-cpp/absl/debugging/internal/utf8_for_code_point.cc",
+    "abseil-cpp/absl/debugging/internal/vdso_support.cc",
+    "abseil-cpp/absl/debugging/internal/vdso_support.h",
+    "abseil-cpp/absl/debugging/leak_check.cc",
+    "abseil-cpp/absl/debugging/leak_check.h",
+    "abseil-cpp/absl/debugging/stacktrace.cc",
+    "abseil-cpp/absl/debugging/stacktrace.h",
+    "abseil-cpp/absl/debugging/symbolize.cc",
+    "abseil-cpp/absl/debugging/symbolize.h",
+
+    # flags (needed by log)
+    "abseil-cpp/absl/flags/commandlineflag.cc",
+    "abseil-cpp/absl/flags/commandlineflag.h",
+    "abseil-cpp/absl/flags/config.h",
+    "abseil-cpp/absl/flags/declare.h",
+    "abseil-cpp/absl/flags/flag.h",
+    "abseil-cpp/absl/flags/internal/commandlineflag.cc",
+    "abseil-cpp/absl/flags/internal/commandlineflag.h",
+    "abseil-cpp/absl/flags/internal/flag.cc",
+    "abseil-cpp/absl/flags/internal/flag.h",
+    "abseil-cpp/absl/flags/internal/private_handle_accessor.cc",
+    "abseil-cpp/absl/flags/internal/private_handle_accessor.h",
+    "abseil-cpp/absl/flags/internal/program_name.cc",
+    "abseil-cpp/absl/flags/internal/program_name.h",
+    "abseil-cpp/absl/flags/internal/usage.cc",
+    "abseil-cpp/absl/flags/internal/usage.h",
+    "abseil-cpp/absl/flags/marshalling.cc",
+    "abseil-cpp/absl/flags/marshalling.h",
+    "abseil-cpp/absl/flags/parse.cc",
+    "abseil-cpp/absl/flags/parse.h",
+    "abseil-cpp/absl/flags/reflection.cc",
+    "abseil-cpp/absl/flags/reflection.h",
+    "abseil-cpp/absl/flags/usage.cc",
+    "abseil-cpp/absl/flags/usage.h",
+    "abseil-cpp/absl/flags/usage_config.cc",
+    "abseil-cpp/absl/flags/usage_config.h",
+
+    # hash
+    "abseil-cpp/absl/hash/hash.h",
+    "abseil-cpp/absl/hash/internal/city.cc",
+    "abseil-cpp/absl/hash/internal/city.h",
+    "abseil-cpp/absl/hash/internal/hash.cc",
+    "abseil-cpp/absl/hash/internal/hash.h",
+    "abseil-cpp/absl/hash/internal/low_level_hash.cc",
+    "abseil-cpp/absl/hash/internal/low_level_hash.h",
+
+    # log
+    "abseil-cpp/absl/log/absl_check.h",
+    "abseil-cpp/absl/log/absl_log.h",
+    "abseil-cpp/absl/log/check.h",
+    "abseil-cpp/absl/log/die_if_null.cc",
+    "abseil-cpp/absl/log/die_if_null.h",
+
+    # Note: flags.cc is excluded because it defines FLAGS_v which conflicts
+    # with Google Benchmark's FLAGS_v.
+    # "abseil-cpp/absl/log/flags.cc",
+    "abseil-cpp/absl/log/globals.cc",
+    "abseil-cpp/absl/log/globals.h",
+    "abseil-cpp/absl/log/initialize.cc",
+    "abseil-cpp/absl/log/initialize.h",
+    "abseil-cpp/absl/log/internal/check_op.cc",
+    "abseil-cpp/absl/log/internal/check_op.h",
+    "abseil-cpp/absl/log/internal/conditions.cc",
+    "abseil-cpp/absl/log/internal/conditions.h",
+    "abseil-cpp/absl/log/internal/fnmatch.cc",
+    "abseil-cpp/absl/log/internal/globals.cc",
+    "abseil-cpp/absl/log/internal/globals.h",
+    "abseil-cpp/absl/log/internal/log_format.cc",
+    "abseil-cpp/absl/log/internal/log_format.h",
+    "abseil-cpp/absl/log/internal/log_message.cc",
+    "abseil-cpp/absl/log/internal/log_message.h",
+    "abseil-cpp/absl/log/internal/log_sink_set.cc",
+    "abseil-cpp/absl/log/internal/log_sink_set.h",
+    "abseil-cpp/absl/log/internal/nullguard.cc",
+    "abseil-cpp/absl/log/internal/nullguard.h",
+    "abseil-cpp/absl/log/internal/proto.cc",
+    "abseil-cpp/absl/log/internal/proto.h",
+    "abseil-cpp/absl/log/internal/structured.h",
+    "abseil-cpp/absl/log/internal/structured_proto.cc",
+    "abseil-cpp/absl/log/internal/structured_proto.h",
+    "abseil-cpp/absl/log/internal/vlog_config.cc",
+    "abseil-cpp/absl/log/internal/vlog_config.h",
+    "abseil-cpp/absl/log/log.h",
+    "abseil-cpp/absl/log/log_entry.h",
+    "abseil-cpp/absl/log/log_sink.cc",
+    "abseil-cpp/absl/log/log_sink.h",
+    "abseil-cpp/absl/log/log_sink_registry.h",
+
+    # numeric
+    "abseil-cpp/absl/numeric/bits.h",
+    "abseil-cpp/absl/numeric/int128.cc",
+    "abseil-cpp/absl/numeric/int128.h",
+
+    # profiling (needed by container)
+    "abseil-cpp/absl/profiling/internal/exponential_biased.cc",
+    "abseil-cpp/absl/profiling/internal/exponential_biased.h",
+    "abseil-cpp/absl/profiling/internal/periodic_sampler.cc",
+    "abseil-cpp/absl/profiling/internal/periodic_sampler.h",
+
+    # random (needed by various components)
+    "abseil-cpp/absl/random/bernoulli_distribution.h",
+    "abseil-cpp/absl/random/discrete_distribution.cc",
+    "abseil-cpp/absl/random/discrete_distribution.h",
+    "abseil-cpp/absl/random/distributions.h",
+    "abseil-cpp/absl/random/gaussian_distribution.cc",
+    "abseil-cpp/absl/random/gaussian_distribution.h",
+    "abseil-cpp/absl/random/internal/entropy_pool.cc",
+    "abseil-cpp/absl/random/internal/entropy_pool.h",
+    "abseil-cpp/absl/random/internal/randen.cc",
+    "abseil-cpp/absl/random/internal/randen.h",
+    "abseil-cpp/absl/random/internal/randen_detect.cc",
+    "abseil-cpp/absl/random/internal/randen_detect.h",
+    "abseil-cpp/absl/random/internal/randen_hwaes.cc",
+    "abseil-cpp/absl/random/internal/randen_hwaes.h",
+    "abseil-cpp/absl/random/internal/randen_round_keys.cc",
+    "abseil-cpp/absl/random/internal/randen_slow.cc",
+    "abseil-cpp/absl/random/internal/randen_slow.h",
+    "abseil-cpp/absl/random/internal/seed_material.cc",
+    "abseil-cpp/absl/random/internal/seed_material.h",
+    "abseil-cpp/absl/random/random.h",
+    "abseil-cpp/absl/random/seed_gen_exception.cc",
+    "abseil-cpp/absl/random/seed_sequences.cc",
+    "abseil-cpp/absl/random/seed_sequences.h",
+
+    # status
+    "abseil-cpp/absl/status/internal/status_internal.cc",
+    "abseil-cpp/absl/status/internal/status_internal.h",
+    "abseil-cpp/absl/status/status.cc",
+    "abseil-cpp/absl/status/status.h",
+    "abseil-cpp/absl/status/status_payload_printer.cc",
+    "abseil-cpp/absl/status/statusor.cc",
+    "abseil-cpp/absl/status/statusor.h",
+
+    # strings
+    "abseil-cpp/absl/strings/ascii.cc",
+    "abseil-cpp/absl/strings/ascii.h",
+    "abseil-cpp/absl/strings/charconv.cc",
+    "abseil-cpp/absl/strings/charconv.h",
+    "abseil-cpp/absl/strings/cord.cc",
+    "abseil-cpp/absl/strings/cord.h",
+    "abseil-cpp/absl/strings/cord_analysis.cc",
+    "abseil-cpp/absl/strings/cord_buffer.h",
+    "abseil-cpp/absl/strings/escaping.cc",
+    "abseil-cpp/absl/strings/escaping.h",
+    "abseil-cpp/absl/strings/internal/charconv_bigint.cc",
+    "abseil-cpp/absl/strings/internal/charconv_bigint.h",
+    "abseil-cpp/absl/strings/internal/charconv_parse.cc",
+    "abseil-cpp/absl/strings/internal/charconv_parse.h",
+    "abseil-cpp/absl/strings/internal/cord_internal.cc",
+    "abseil-cpp/absl/strings/internal/cord_internal.h",
+    "abseil-cpp/absl/strings/internal/cord_rep_btree.cc",
+    "abseil-cpp/absl/strings/internal/cord_rep_btree.h",
+    "abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc",
+    "abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h",
+    "abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc",
+    "abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h",
+    "abseil-cpp/absl/strings/internal/cord_rep_consume.cc",
+    "abseil-cpp/absl/strings/internal/cord_rep_crc.cc",
+    "abseil-cpp/absl/strings/internal/cord_rep_crc.h",
+    "abseil-cpp/absl/strings/internal/cord_rep_flat.h",
+    "abseil-cpp/absl/strings/internal/cordz_functions.cc",
+    "abseil-cpp/absl/strings/internal/cordz_functions.h",
+    "abseil-cpp/absl/strings/internal/cordz_handle.cc",
+    "abseil-cpp/absl/strings/internal/cordz_handle.h",
+    "abseil-cpp/absl/strings/internal/cordz_info.cc",
+    "abseil-cpp/absl/strings/internal/cordz_info.h",
+    "abseil-cpp/absl/strings/internal/cordz_sample_token.cc",
+    "abseil-cpp/absl/strings/internal/cordz_sample_token.h",
+    "abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc",
+    "abseil-cpp/absl/strings/internal/escaping.cc",
+    "abseil-cpp/absl/strings/internal/escaping.h",
+    "abseil-cpp/absl/strings/internal/memutil.cc",
+    "abseil-cpp/absl/strings/internal/memutil.h",
+    "abseil-cpp/absl/strings/internal/ostringstream.cc",
+    "abseil-cpp/absl/strings/internal/ostringstream.h",
+    "abseil-cpp/absl/strings/internal/resize_uninitialized.h",
+    "abseil-cpp/absl/strings/internal/stl_type_traits.h",
+    "abseil-cpp/absl/strings/internal/str_format/arg.cc",
+    "abseil-cpp/absl/strings/internal/str_format/arg.h",
+    "abseil-cpp/absl/strings/internal/str_format/bind.cc",
+    "abseil-cpp/absl/strings/internal/str_format/bind.h",
+    "abseil-cpp/absl/strings/internal/str_format/checker.h",
+    "abseil-cpp/absl/strings/internal/str_format/constexpr_parser.h",
+    "abseil-cpp/absl/strings/internal/str_format/extension.cc",
+    "abseil-cpp/absl/strings/internal/str_format/extension.h",
+    "abseil-cpp/absl/strings/internal/str_format/float_conversion.cc",
+    "abseil-cpp/absl/strings/internal/str_format/float_conversion.h",
+    "abseil-cpp/absl/strings/internal/str_format/output.cc",
+    "abseil-cpp/absl/strings/internal/str_format/output.h",
+    "abseil-cpp/absl/strings/internal/str_format/parser.cc",
+    "abseil-cpp/absl/strings/internal/str_format/parser.h",
+    "abseil-cpp/absl/strings/internal/str_join_internal.h",
+    "abseil-cpp/absl/strings/internal/str_split_internal.h",
+    "abseil-cpp/absl/strings/internal/stringify_sink.cc",
+    "abseil-cpp/absl/strings/internal/stringify_sink.h",
+    "abseil-cpp/absl/strings/internal/utf8.cc",
+    "abseil-cpp/absl/strings/internal/utf8.h",
+    "abseil-cpp/absl/strings/match.cc",
+    "abseil-cpp/absl/strings/match.h",
+    "abseil-cpp/absl/strings/numbers.cc",
+    "abseil-cpp/absl/strings/numbers.h",
+    "abseil-cpp/absl/strings/str_cat.cc",
+    "abseil-cpp/absl/strings/str_cat.h",
+    "abseil-cpp/absl/strings/str_format.h",
+    "abseil-cpp/absl/strings/str_join.h",
+    "abseil-cpp/absl/strings/str_replace.cc",
+    "abseil-cpp/absl/strings/str_replace.h",
+    "abseil-cpp/absl/strings/str_split.cc",
+    "abseil-cpp/absl/strings/str_split.h",
+    "abseil-cpp/absl/strings/string_view.cc",
+    "abseil-cpp/absl/strings/string_view.h",
+    "abseil-cpp/absl/strings/strip.h",
+    "abseil-cpp/absl/strings/substitute.cc",
+    "abseil-cpp/absl/strings/substitute.h",
+
+    # synchronization
+    "abseil-cpp/absl/synchronization/barrier.cc",
+    "abseil-cpp/absl/synchronization/barrier.h",
+    "abseil-cpp/absl/synchronization/blocking_counter.cc",
+    "abseil-cpp/absl/synchronization/blocking_counter.h",
+    "abseil-cpp/absl/synchronization/internal/create_thread_identity.cc",
+    "abseil-cpp/absl/synchronization/internal/create_thread_identity.h",
+    "abseil-cpp/absl/synchronization/internal/futex.h",
+    "abseil-cpp/absl/synchronization/internal/futex_waiter.cc",
+    "abseil-cpp/absl/synchronization/internal/graphcycles.cc",
+    "abseil-cpp/absl/synchronization/internal/graphcycles.h",
+    "abseil-cpp/absl/synchronization/internal/kernel_timeout.cc",
+    "abseil-cpp/absl/synchronization/internal/kernel_timeout.h",
+    "abseil-cpp/absl/synchronization/internal/per_thread_sem.cc",
+    "abseil-cpp/absl/synchronization/internal/per_thread_sem.h",
+    "abseil-cpp/absl/synchronization/internal/pthread_waiter.cc",
+    "abseil-cpp/absl/synchronization/internal/sem_waiter.cc",
+    "abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc",
+    "abseil-cpp/absl/synchronization/internal/waiter.h",
+    "abseil-cpp/absl/synchronization/internal/waiter_base.cc",
+    "abseil-cpp/absl/synchronization/internal/win32_waiter.cc",
+    "abseil-cpp/absl/synchronization/mutex.cc",
+    "abseil-cpp/absl/synchronization/mutex.h",
+    "abseil-cpp/absl/synchronization/notification.cc",
+    "abseil-cpp/absl/synchronization/notification.h",
+
+    # time
+    "abseil-cpp/absl/time/civil_time.cc",
+    "abseil-cpp/absl/time/civil_time.h",
+    "abseil-cpp/absl/time/clock.cc",
+    "abseil-cpp/absl/time/clock.h",
+    "abseil-cpp/absl/time/duration.cc",
+    "abseil-cpp/absl/time/format.cc",
+    "abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h",
+    "abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h",
+    "abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h",
+    "abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h",
+    "abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc",
+    "abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc",
+    "abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc",
+    "abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc",
+    "abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc",
+    "abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc",
+    "abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc",
+    "abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc",
+    "abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc",
+    "abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc",
+    "abseil-cpp/absl/time/time.cc",
+    "abseil-cpp/absl/time/time.h",
+
+    # types
+    "abseil-cpp/absl/types/compare.h",
+    "abseil-cpp/absl/types/optional.h",
+    "abseil-cpp/absl/types/span.h",
+    "abseil-cpp/absl/types/variant.h",
+
+    # utility
+    "abseil-cpp/absl/utility/utility.h",
+
+    # functional
+    "abseil-cpp/absl/functional/any_invocable.h",
+    "abseil-cpp/absl/functional/bind_front.h",
+    "abseil-cpp/absl/functional/function_ref.h",
+
+    # memory
+    "abseil-cpp/absl/memory/memory.h",
+
+    # meta
+    "abseil-cpp/absl/meta/type_traits.h",
+
+    # cleanup
+    "abseil-cpp/absl/cleanup/cleanup.h",
+
+    # algorithm
+    "abseil-cpp/absl/algorithm/algorithm.h",
+    "abseil-cpp/absl/algorithm/container.h",
+  ]
+
+  if (is_win) {
+    sources += [ "abseil-cpp/absl/base/internal/spinlock_win32.inc" ]
+  } else if (is_linux || is_android) {
+    sources += [ "abseil-cpp/absl/base/internal/spinlock_linux.inc" ]
+  } else {
+    sources += [ "abseil-cpp/absl/base/internal/spinlock_posix.inc" ]
+  }
+
+  configs -= [ "//gn/standalone:extra_warnings" ]
+  configs += [ ":abseil_config" ]
+  public_configs = [ ":abseil_config" ]
+  deps = [ "//gn:default_deps" ]
+}
+
+# Configuration for utf8_range (required by protobuf v22+).
+config("utf8_range_config") {
+  visibility = _buildtools_visibility
+  include_dirs = [ "protobuf/third_party/utf8_range" ]
+}
+
+# UTF-8 validation library required by protobuf v22+.
+source_set("utf8_range") {
+  visibility = _buildtools_visibility
+  sources = [ "protobuf/third_party/utf8_range/utf8_range.c" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+  configs += [ ":abseil_config" ]
+  public_configs = [ ":utf8_range_config" ]
+  public_deps = [ ":abseil_cpp" ]
+  deps = [ "//gn:default_deps" ]
+}
+
+# Configuration for upb (micro protobuf, required by protobuf v31+).
+config("upb_config") {
+  visibility = _buildtools_visibility
+  include_dirs = [
+    "protobuf",
+    "protobuf/upb/reflection/stage0",  # For pre-generated descriptor.upb.h
+    "protobuf/third_party/utf8_range",  # For utf8_range.h
+  ]
+  defines = [ "UPB_BOOTSTRAP_STAGE=0" ]  # Use stage0 minitable functions
+}
+
+# upb (micro protobuf) library required by protobuf v31+.
+source_set("upb") {
+  visibility = _buildtools_visibility
+  sources = [
+    # base
+    "protobuf/upb/base/descriptor_constants.h",
+    "protobuf/upb/base/internal/endian.h",
+    "protobuf/upb/base/internal/log2.h",
+    "protobuf/upb/base/status.c",
+    "protobuf/upb/base/status.h",
+    "protobuf/upb/base/string_view.h",
+    "protobuf/upb/base/upcast.h",
+
+    # generated_code_support
+    "protobuf/upb/generated_code_support.h",
+
+    # hash
+    "protobuf/upb/hash/common.c",
+    "protobuf/upb/hash/common.h",
+    "protobuf/upb/hash/int_table.h",
+    "protobuf/upb/hash/str_table.h",
+
+    # lex
+    "protobuf/upb/lex/atoi.c",
+    "protobuf/upb/lex/atoi.h",
+    "protobuf/upb/lex/round_trip.c",
+    "protobuf/upb/lex/round_trip.h",
+    "protobuf/upb/lex/strtod.c",
+    "protobuf/upb/lex/strtod.h",
+    "protobuf/upb/lex/unicode.c",
+    "protobuf/upb/lex/unicode.h",
+
+    # mem
+    "protobuf/upb/mem/alloc.c",
+    "protobuf/upb/mem/alloc.h",
+    "protobuf/upb/mem/arena.c",
+    "protobuf/upb/mem/arena.h",
+    "protobuf/upb/mem/internal/arena.h",
+
+    # message
+    "protobuf/upb/message/accessors.c",
+    "protobuf/upb/message/accessors.h",
+    "protobuf/upb/message/accessors_split64.h",
+    "protobuf/upb/message/array.c",
+    "protobuf/upb/message/array.h",
+    "protobuf/upb/message/compare.c",
+    "protobuf/upb/message/compare.h",
+    "protobuf/upb/message/compat.c",
+    "protobuf/upb/message/compat.h",
+    "protobuf/upb/message/copy.c",
+    "protobuf/upb/message/copy.h",
+    "protobuf/upb/message/internal/accessors.h",
+    "protobuf/upb/message/internal/array.h",
+    "protobuf/upb/message/internal/compare_unknown.c",
+    "protobuf/upb/message/internal/compare_unknown.h",
+    "protobuf/upb/message/internal/extension.c",
+    "protobuf/upb/message/internal/extension.h",
+    "protobuf/upb/message/internal/iterator.c",
+    "protobuf/upb/message/internal/iterator.h",
+    "protobuf/upb/message/internal/map.h",
+    "protobuf/upb/message/internal/map_entry.h",
+    "protobuf/upb/message/internal/map_sorter.h",
+    "protobuf/upb/message/internal/message.c",
+    "protobuf/upb/message/internal/message.h",
+    "protobuf/upb/message/internal/tagged_ptr.h",
+    "protobuf/upb/message/internal/types.h",
+    "protobuf/upb/message/map.c",
+    "protobuf/upb/message/map.h",
+    "protobuf/upb/message/map_gencode_util.h",
+    "protobuf/upb/message/map_sorter.c",
+    "protobuf/upb/message/merge.c",
+    "protobuf/upb/message/merge.h",
+    "protobuf/upb/message/message.c",
+    "protobuf/upb/message/message.h",
+    "protobuf/upb/message/promote.c",
+    "protobuf/upb/message/promote.h",
+    "protobuf/upb/message/tagged_ptr.h",
+    "protobuf/upb/message/value.h",
+
+    # mini_descriptor
+    "protobuf/upb/mini_descriptor/build_enum.c",
+    "protobuf/upb/mini_descriptor/build_enum.h",
+    "protobuf/upb/mini_descriptor/decode.c",
+    "protobuf/upb/mini_descriptor/decode.h",
+    "protobuf/upb/mini_descriptor/internal/base92.c",
+    "protobuf/upb/mini_descriptor/internal/base92.h",
+    "protobuf/upb/mini_descriptor/internal/decoder.h",
+    "protobuf/upb/mini_descriptor/internal/encode.c",
+    "protobuf/upb/mini_descriptor/internal/encode.h",
+    "protobuf/upb/mini_descriptor/internal/modifiers.h",
+    "protobuf/upb/mini_descriptor/internal/wire_constants.h",
+    "protobuf/upb/mini_descriptor/link.c",
+    "protobuf/upb/mini_descriptor/link.h",
+
+    # mini_table
+    "protobuf/upb/mini_table/compat.c",
+    "protobuf/upb/mini_table/compat.h",
+    "protobuf/upb/mini_table/enum.h",
+    "protobuf/upb/mini_table/extension.h",
+    "protobuf/upb/mini_table/extension_registry.c",
+    "protobuf/upb/mini_table/extension_registry.h",
+    "protobuf/upb/mini_table/field.h",
+    "protobuf/upb/mini_table/file.h",
+    "protobuf/upb/mini_table/internal/enum.h",
+    "protobuf/upb/mini_table/internal/extension.h",
+    "protobuf/upb/mini_table/internal/field.h",
+    "protobuf/upb/mini_table/internal/file.h",
+    "protobuf/upb/mini_table/internal/message.c",
+    "protobuf/upb/mini_table/internal/message.h",
+    "protobuf/upb/mini_table/internal/size_log2.h",
+    "protobuf/upb/mini_table/internal/sub.h",
+    "protobuf/upb/mini_table/message.c",
+    "protobuf/upb/mini_table/message.h",
+    "protobuf/upb/mini_table/sub.h",
+
+    # port
+    "protobuf/upb/port/atomic.h",
+    "protobuf/upb/port/vsnprintf_compat.h",
+
+    # reflection
+    "protobuf/upb/reflection/common.h",
+    "protobuf/upb/reflection/def.h",
+    "protobuf/upb/reflection/def_pool.c",
+    "protobuf/upb/reflection/def_pool.h",
+    "protobuf/upb/reflection/def_type.c",
+    "protobuf/upb/reflection/def_type.h",
+    "protobuf/upb/reflection/desc_state.c",
+    "protobuf/upb/reflection/descriptor_bootstrap.h",
+    "protobuf/upb/reflection/enum_def.c",
+    "protobuf/upb/reflection/enum_def.h",
+    "protobuf/upb/reflection/enum_reserved_range.c",
+    "protobuf/upb/reflection/enum_reserved_range.h",
+    "protobuf/upb/reflection/enum_value_def.c",
+    "protobuf/upb/reflection/enum_value_def.h",
+    "protobuf/upb/reflection/extension_range.c",
+    "protobuf/upb/reflection/extension_range.h",
+    "protobuf/upb/reflection/field_def.c",
+    "protobuf/upb/reflection/field_def.h",
+    "protobuf/upb/reflection/file_def.c",
+    "protobuf/upb/reflection/file_def.h",
+    "protobuf/upb/reflection/internal/def_builder.c",
+    "protobuf/upb/reflection/internal/def_builder.h",
+    "protobuf/upb/reflection/internal/def_pool.h",
+    "protobuf/upb/reflection/internal/desc_state.h",
+    "protobuf/upb/reflection/internal/enum_def.h",
+    "protobuf/upb/reflection/internal/enum_reserved_range.h",
+    "protobuf/upb/reflection/internal/enum_value_def.h",
+    "protobuf/upb/reflection/internal/extension_range.h",
+    "protobuf/upb/reflection/internal/field_def.h",
+    "protobuf/upb/reflection/internal/file_def.h",
+    "protobuf/upb/reflection/internal/message_def.h",
+    "protobuf/upb/reflection/internal/message_reserved_range.h",
+    "protobuf/upb/reflection/internal/method_def.h",
+    "protobuf/upb/reflection/internal/oneof_def.h",
+    "protobuf/upb/reflection/internal/service_def.h",
+    "protobuf/upb/reflection/internal/strdup2.c",
+    "protobuf/upb/reflection/message.c",
+    "protobuf/upb/reflection/message_def.c",
+    "protobuf/upb/reflection/message_def.h",
+    "protobuf/upb/reflection/message_reserved_range.c",
+    "protobuf/upb/reflection/message_reserved_range.h",
+    "protobuf/upb/reflection/method_def.c",
+    "protobuf/upb/reflection/method_def.h",
+    "protobuf/upb/reflection/oneof_def.c",
+    "protobuf/upb/reflection/oneof_def.h",
+    "protobuf/upb/reflection/service_def.c",
+    "protobuf/upb/reflection/service_def.h",
+    "protobuf/upb/reflection/stage0/google/protobuf/descriptor.upb.c",
+    "protobuf/upb/reflection/stage0/google/protobuf/descriptor.upb.h",
+
+    # text
+    "protobuf/upb/text/encode.c",
+    "protobuf/upb/text/encode.h",
+    "protobuf/upb/text/internal/encode.c",
+
+    # wire
+    "protobuf/upb/wire/byte_size.c",
+    "protobuf/upb/wire/decode.c",
+    "protobuf/upb/wire/decode.h",
+    "protobuf/upb/wire/encode.c",
+    "protobuf/upb/wire/encode.h",
+    "protobuf/upb/wire/eps_copy_input_stream.c",
+    "protobuf/upb/wire/eps_copy_input_stream.h",
+    "protobuf/upb/wire/internal/decode_fast.c",
+    "protobuf/upb/wire/reader.c",
+    "protobuf/upb/wire/reader.h",
+  ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+  public_configs = [ ":upb_config" ]
+  deps = [ "//gn:default_deps" ]
+
+  if (is_gcc) {
+    cflags = [ "-Wno-attributes" ]
+  }
+  if (is_clang) {
+    cflags = [ "-Wno-unknown-attributes" ]
+  }
+}
+
+# upb_generator library (code generators for upb, used by protoc).
+# This depends on protobuf_full for compiler APIs and abseil for containers.
+source_set("upb_generator") {
+  visibility = _buildtools_visibility
+  sources = [
+    "protobuf/upb_generator/common.cc",
+    "protobuf/upb_generator/common.h",
+    "protobuf/upb_generator/common/names.cc",
+    "protobuf/upb_generator/common/names.h",
+    "protobuf/upb_generator/file_layout.cc",
+    "protobuf/upb_generator/file_layout.h",
+    "protobuf/upb_generator/minitable/fasttable.cc",
+    "protobuf/upb_generator/minitable/fasttable.h",
+    "protobuf/upb_generator/minitable/generator.cc",
+    "protobuf/upb_generator/minitable/generator.h",
+    "protobuf/upb_generator/minitable/names.cc",
+    "protobuf/upb_generator/minitable/names.h",
+    "protobuf/upb_generator/minitable/names_internal.cc",
+    "protobuf/upb_generator/minitable/names_internal.h",
+    "protobuf/upb_generator/plugin.cc",
+    "protobuf/upb_generator/plugin.h",
+  ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+  configs += [
+    ":protobuf_config",
+    ":upb_config",
+  ]
+
+  # Export upb_config so dependents can include upb_generator headers.
+  public_configs = [ ":upb_config" ]
+  deps = [
+    ":abseil_cpp",
+    ":protobuf_full",
+    ":upb",
+    "//gn:default_deps",
+  ]
+}
+
 # Configuration used to build libprotobuf_* and the protoc compiler.
 config("protobuf_config") {
   visibility = _buildtools_visibility
@@ -145,7 +827,11 @@
     cflags += [ "-Wno-deprecated-declarations" ]
   }
   if (is_gcc) {
-    cflags += [ "-Wno-stringop-overread" ]
+    cflags += [
+      "-Wno-stringop-overread",
+      "-Wno-attributes",
+      "-Wno-nonnull",
+    ]
   }
   if (is_win) {
     cflags += [ "/W0" ]
@@ -168,22 +854,24 @@
   "protobuf/src/google/protobuf/any.h",
   "protobuf/src/google/protobuf/any.pb.h",
   "protobuf/src/google/protobuf/api.pb.h",
-  "protobuf/src/google/protobuf/arena_impl.h",
   "protobuf/src/google/protobuf/arena.h",
+  "protobuf/src/google/protobuf/arena_align.h",
+  "protobuf/src/google/protobuf/arena_allocation_policy.h",
+  "protobuf/src/google/protobuf/arena_cleanup.h",
   "protobuf/src/google/protobuf/arenastring.h",
   "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_database.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/endian.h",
   "protobuf/src/google/protobuf/explicitly_constructed.h",
-  "protobuf/src/google/protobuf/extension_set_inl.h",
   "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",
@@ -191,60 +879,51 @@
   "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_gen.h",
   "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.h",
   "protobuf/src/google/protobuf/io/io_win32.h",
   "protobuf/src/google/protobuf/io/printer.h",
   "protobuf/src/google/protobuf/io/strtod.h",
   "protobuf/src/google/protobuf/io/tokenizer.h",
-  "protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h",
-  "protobuf/src/google/protobuf/io/zero_copy_stream_impl.h",
+  "protobuf/src/google/protobuf/io/zero_copy_sink.h",
   "protobuf/src/google/protobuf/io/zero_copy_stream.h",
-  "protobuf/src/google/protobuf/map_entry_lite.h",
-  "protobuf/src/google/protobuf/map_entry.h",
-  "protobuf/src/google/protobuf/map_field_inl.h",
-  "protobuf/src/google/protobuf/map_field_lite.h",
-  "protobuf/src/google/protobuf/map_field.h",
-  "protobuf/src/google/protobuf/map_type_handler.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/json/json.h",
   "protobuf/src/google/protobuf/map.h",
-  "protobuf/src/google/protobuf/message_lite.h",
+  "protobuf/src/google/protobuf/map_entry.h",
+  "protobuf/src/google/protobuf/map_field.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/metadata_lite.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_def.inc",
-  "protobuf/src/google/protobuf/port_undef.inc",
   "protobuf/src/google/protobuf/port.h",
+  "protobuf/src/google/protobuf/reflection.h",
   "protobuf/src/google/protobuf/reflection_internal.h",
   "protobuf/src/google/protobuf/reflection_ops.h",
-  "protobuf/src/google/protobuf/reflection.h",
   "protobuf/src/google/protobuf/repeated_field.h",
   "protobuf/src/google/protobuf/repeated_ptr_field.h",
+  "protobuf/src/google/protobuf/serial_arena.h",
   "protobuf/src/google/protobuf/service.h",
   "protobuf/src/google/protobuf/source_context.pb.h",
+  "protobuf/src/google/protobuf/string_block.h",
   "protobuf/src/google/protobuf/struct.pb.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/template_util.h",
+  "protobuf/src/google/protobuf/stubs/status_macros.h",
   "protobuf/src/google/protobuf/text_format.h",
+  "protobuf/src/google/protobuf/thread_safe_arena.h",
   "protobuf/src/google/protobuf/timestamp.pb.h",
   "protobuf/src/google/protobuf/type.pb.h",
   "protobuf/src/google/protobuf/unknown_field_set.h",
@@ -254,10 +933,10 @@
   "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_util.h",
   "protobuf/src/google/protobuf/util/type_resolver.h",
-  "protobuf/src/google/protobuf/wire_format_lite.h",
+  "protobuf/src/google/protobuf/util/type_resolver_util.h",
   "protobuf/src/google/protobuf/wire_format.h",
+  "protobuf/src/google/protobuf/wire_format_lite.h",
   "protobuf/src/google/protobuf/wrappers.pb.h",
 ]
 
@@ -266,6 +945,7 @@
   sources = [
     "protobuf/src/google/protobuf/any_lite.cc",
     "protobuf/src/google/protobuf/arena.cc",
+    "protobuf/src/google/protobuf/arena_align.cc",
     "protobuf/src/google/protobuf/arenastring.cc",
     "protobuf/src/google/protobuf/arenaz_sampler.cc",
     "protobuf/src/google/protobuf/extension_set.cc",
@@ -277,31 +957,19 @@
     "protobuf/src/google/protobuf/io/coded_stream.cc",
     "protobuf/src/google/protobuf/io/io_win32.cc",
     "protobuf/src/google/protobuf/io/strtod.cc",
+    "protobuf/src/google/protobuf/io/zero_copy_sink.cc",
     "protobuf/src/google/protobuf/io/zero_copy_stream.cc",
     "protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc",
     "protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc",
     "protobuf/src/google/protobuf/map.cc",
     "protobuf/src/google/protobuf/message_lite.cc",
+    "protobuf/src/google/protobuf/micro_string.cc",
     "protobuf/src/google/protobuf/parse_context.cc",
+    "protobuf/src/google/protobuf/port.cc",
+    "protobuf/src/google/protobuf/raw_ptr.cc",
     "protobuf/src/google/protobuf/repeated_field.cc",
     "protobuf/src/google/protobuf/repeated_ptr_field.cc",
-    "protobuf/src/google/protobuf/string_member_robber.h",
-    "protobuf/src/google/protobuf/stubs/bytestream.cc",
     "protobuf/src/google/protobuf/stubs/common.cc",
-    "protobuf/src/google/protobuf/stubs/int128.cc",
-    "protobuf/src/google/protobuf/stubs/int128.h",
-    "protobuf/src/google/protobuf/stubs/mathutil.h",
-    "protobuf/src/google/protobuf/stubs/status.cc",
-    "protobuf/src/google/protobuf/stubs/status_macros.h",
-    "protobuf/src/google/protobuf/stubs/statusor.cc",
-    "protobuf/src/google/protobuf/stubs/statusor.h",
-    "protobuf/src/google/protobuf/stubs/stringpiece.cc",
-    "protobuf/src/google/protobuf/stubs/stringprintf.cc",
-    "protobuf/src/google/protobuf/stubs/stringprintf.h",
-    "protobuf/src/google/protobuf/stubs/structurally_valid.cc",
-    "protobuf/src/google/protobuf/stubs/strutil.cc",
-    "protobuf/src/google/protobuf/stubs/time.cc",
-    "protobuf/src/google/protobuf/stubs/time.h",
     "protobuf/src/google/protobuf/wire_format_lite.cc",
   ]
   sources += _protobuf_headers
@@ -312,21 +980,24 @@
   }
   configs += [ ":protobuf_config" ]
   public_configs = [ "//gn:protobuf_gen_config" ]
+  public_deps = [
+    ":abseil_cpp",
+    ":utf8_range",
+  ]
   deps = [ "//gn:default_deps" ]
 }
 
 source_set("protobuf_full") {
   visibility = _buildtools_visibility
-  deps = [
-    ":protobuf_lite",
-    "//gn:default_deps",
-  ]
+  public_deps = [ ":protobuf_lite" ]
+  deps = [ "//gn:default_deps" ]
   sources = [
     "protobuf/src/google/protobuf/any.cc",
     "protobuf/src/google/protobuf/any.pb.cc",
     "protobuf/src/google/protobuf/api.pb.cc",
     "protobuf/src/google/protobuf/compiler/importer.cc",
     "protobuf/src/google/protobuf/compiler/parser.cc",
+    "protobuf/src/google/protobuf/cpp_features.pb.cc",
     "protobuf/src/google/protobuf/descriptor.cc",
     "protobuf/src/google/protobuf/descriptor.pb.cc",
     "protobuf/src/google/protobuf/descriptor_database.cc",
@@ -334,21 +1005,31 @@
     "protobuf/src/google/protobuf/dynamic_message.cc",
     "protobuf/src/google/protobuf/empty.pb.cc",
     "protobuf/src/google/protobuf/extension_set_heavy.cc",
+    "protobuf/src/google/protobuf/feature_resolver.cc",
     "protobuf/src/google/protobuf/field_mask.pb.cc",
     "protobuf/src/google/protobuf/generated_message_bases.cc",
     "protobuf/src/google/protobuf/generated_message_reflection.cc",
     "protobuf/src/google/protobuf/generated_message_tctable_full.cc",
+    "protobuf/src/google/protobuf/generated_message_tctable_gen.cc",
+    "protobuf/src/google/protobuf/internal_feature_helper.cc",
     "protobuf/src/google/protobuf/io/gzip_stream.cc",
     "protobuf/src/google/protobuf/io/printer.cc",
     "protobuf/src/google/protobuf/io/tokenizer.cc",
+    "protobuf/src/google/protobuf/json/internal/lexer.cc",
+    "protobuf/src/google/protobuf/json/internal/message_path.cc",
+    "protobuf/src/google/protobuf/json/internal/parser.cc",
+    "protobuf/src/google/protobuf/json/internal/unparser.cc",
+    "protobuf/src/google/protobuf/json/internal/untyped_message.cc",
+    "protobuf/src/google/protobuf/json/internal/writer.cc",
+    "protobuf/src/google/protobuf/json/internal/zero_copy_buffered_stream.cc",
+    "protobuf/src/google/protobuf/json/json.cc",
     "protobuf/src/google/protobuf/map_field.cc",
     "protobuf/src/google/protobuf/message.cc",
+    "protobuf/src/google/protobuf/reflection_mode.cc",
     "protobuf/src/google/protobuf/reflection_ops.cc",
     "protobuf/src/google/protobuf/service.cc",
     "protobuf/src/google/protobuf/source_context.pb.cc",
     "protobuf/src/google/protobuf/struct.pb.cc",
-    "protobuf/src/google/protobuf/stubs/substitute.cc",
-    "protobuf/src/google/protobuf/stubs/substitute.h",
     "protobuf/src/google/protobuf/text_format.cc",
     "protobuf/src/google/protobuf/timestamp.pb.cc",
     "protobuf/src/google/protobuf/type.pb.cc",
@@ -356,41 +1037,6 @@
     "protobuf/src/google/protobuf/util/delimited_message_util.cc",
     "protobuf/src/google/protobuf/util/field_comparator.cc",
     "protobuf/src/google/protobuf/util/field_mask_util.cc",
-    "protobuf/src/google/protobuf/util/internal/constants.h",
-    "protobuf/src/google/protobuf/util/internal/datapiece.cc",
-    "protobuf/src/google/protobuf/util/internal/datapiece.h",
-    "protobuf/src/google/protobuf/util/internal/default_value_objectwriter.cc",
-    "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",
-    "protobuf/src/google/protobuf/util/internal/json_escaping.h",
-    "protobuf/src/google/protobuf/util/internal/json_objectwriter.cc",
-    "protobuf/src/google/protobuf/util/internal/json_objectwriter.h",
-    "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",
-    "protobuf/src/google/protobuf/util/internal/object_writer.h",
-    "protobuf/src/google/protobuf/util/internal/proto_writer.cc",
-    "protobuf/src/google/protobuf/util/internal/proto_writer.h",
-    "protobuf/src/google/protobuf/util/internal/protostream_objectsource.cc",
-    "protobuf/src/google/protobuf/util/internal/protostream_objectsource.h",
-    "protobuf/src/google/protobuf/util/internal/protostream_objectwriter.cc",
-    "protobuf/src/google/protobuf/util/internal/protostream_objectwriter.h",
-    "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.h",
-    "protobuf/src/google/protobuf/util/internal/utility.cc",
-    "protobuf/src/google/protobuf/util/internal/utility.h",
-    "protobuf/src/google/protobuf/util/json_util.cc",
     "protobuf/src/google/protobuf/util/message_differencer.cc",
     "protobuf/src/google/protobuf/util/time_util.cc",
     "protobuf/src/google/protobuf/util/type_resolver_util.cc",
@@ -412,189 +1058,143 @@
 
 source_set("protoc_lib") {
   visibility = _buildtools_visibility
-  deps = [
+  public_deps = [
     ":protobuf_full",
-    "//gn:default_deps",
+    ":upb_generator",
   ]
+  deps = [ "//gn:default_deps" ]
   sources = [
     "protobuf/src/google/protobuf/compiler/code_generator.cc",
-    "protobuf/src/google/protobuf/compiler/code_generator.h",
+    "protobuf/src/google/protobuf/compiler/code_generator_lite.cc",
     "protobuf/src/google/protobuf/compiler/command_line_interface.cc",
-    "protobuf/src/google/protobuf/compiler/command_line_interface.h",
-    "protobuf/src/google/protobuf/compiler/cpp/cpp_generator.h",
     "protobuf/src/google/protobuf/compiler/cpp/enum.cc",
-    "protobuf/src/google/protobuf/compiler/cpp/enum.h",
-    "protobuf/src/google/protobuf/compiler/cpp/enum_field.cc",
-    "protobuf/src/google/protobuf/compiler/cpp/enum_field.h",
     "protobuf/src/google/protobuf/compiler/cpp/extension.cc",
-    "protobuf/src/google/protobuf/compiler/cpp/extension.h",
     "protobuf/src/google/protobuf/compiler/cpp/field.cc",
-    "protobuf/src/google/protobuf/compiler/cpp/field.h",
+    "protobuf/src/google/protobuf/compiler/cpp/field_chunk.cc",
+    "protobuf/src/google/protobuf/compiler/cpp/field_generators/cord_field.cc",
+    "protobuf/src/google/protobuf/compiler/cpp/field_generators/enum_field.cc",
+    "protobuf/src/google/protobuf/compiler/cpp/field_generators/map_field.cc",
+    "protobuf/src/google/protobuf/compiler/cpp/field_generators/message_field.cc",
+    "protobuf/src/google/protobuf/compiler/cpp/field_generators/primitive_field.cc",
+    "protobuf/src/google/protobuf/compiler/cpp/field_generators/string_field.cc",
+    "protobuf/src/google/protobuf/compiler/cpp/field_generators/string_view_field.cc",
     "protobuf/src/google/protobuf/compiler/cpp/file.cc",
-    "protobuf/src/google/protobuf/compiler/cpp/file.h",
     "protobuf/src/google/protobuf/compiler/cpp/generator.cc",
-    "protobuf/src/google/protobuf/compiler/cpp/generator.h",
     "protobuf/src/google/protobuf/compiler/cpp/helpers.cc",
-    "protobuf/src/google/protobuf/compiler/cpp/helpers.h",
-    "protobuf/src/google/protobuf/compiler/cpp/map_field.cc",
-    "protobuf/src/google/protobuf/compiler/cpp/map_field.h",
+    "protobuf/src/google/protobuf/compiler/cpp/ifndef_guard.cc",
     "protobuf/src/google/protobuf/compiler/cpp/message.cc",
-    "protobuf/src/google/protobuf/compiler/cpp/message.h",
-    "protobuf/src/google/protobuf/compiler/cpp/message_field.cc",
-    "protobuf/src/google/protobuf/compiler/cpp/message_field.h",
-    "protobuf/src/google/protobuf/compiler/cpp/message_layout_helper.h",
-    "protobuf/src/google/protobuf/compiler/cpp/names.h",
-    "protobuf/src/google/protobuf/compiler/cpp/options.h",
-    "protobuf/src/google/protobuf/compiler/cpp/padding_optimizer.cc",
-    "protobuf/src/google/protobuf/compiler/cpp/padding_optimizer.h",
+    "protobuf/src/google/protobuf/compiler/cpp/message_layout_helper.cc",
+    "protobuf/src/google/protobuf/compiler/cpp/namespace_printer.cc",
     "protobuf/src/google/protobuf/compiler/cpp/parse_function_generator.cc",
-    "protobuf/src/google/protobuf/compiler/cpp/parse_function_generator.h",
-    "protobuf/src/google/protobuf/compiler/cpp/primitive_field.cc",
-    "protobuf/src/google/protobuf/compiler/cpp/primitive_field.h",
     "protobuf/src/google/protobuf/compiler/cpp/service.cc",
-    "protobuf/src/google/protobuf/compiler/cpp/service.h",
-    "protobuf/src/google/protobuf/compiler/cpp/string_field.cc",
-    "protobuf/src/google/protobuf/compiler/cpp/string_field.h",
+    "protobuf/src/google/protobuf/compiler/cpp/tracker.cc",
     "protobuf/src/google/protobuf/compiler/csharp/csharp_doc_comment.cc",
-    "protobuf/src/google/protobuf/compiler/csharp/csharp_doc_comment.h",
     "protobuf/src/google/protobuf/compiler/csharp/csharp_enum.cc",
-    "protobuf/src/google/protobuf/compiler/csharp/csharp_enum.h",
     "protobuf/src/google/protobuf/compiler/csharp/csharp_enum_field.cc",
-    "protobuf/src/google/protobuf/compiler/csharp/csharp_enum_field.h",
     "protobuf/src/google/protobuf/compiler/csharp/csharp_field_base.cc",
-    "protobuf/src/google/protobuf/compiler/csharp/csharp_field_base.h",
     "protobuf/src/google/protobuf/compiler/csharp/csharp_generator.cc",
-    "protobuf/src/google/protobuf/compiler/csharp/csharp_generator.h",
     "protobuf/src/google/protobuf/compiler/csharp/csharp_helpers.cc",
-    "protobuf/src/google/protobuf/compiler/csharp/csharp_helpers.h",
     "protobuf/src/google/protobuf/compiler/csharp/csharp_map_field.cc",
-    "protobuf/src/google/protobuf/compiler/csharp/csharp_map_field.h",
     "protobuf/src/google/protobuf/compiler/csharp/csharp_message.cc",
-    "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",
     "protobuf/src/google/protobuf/compiler/csharp/csharp_reflection_class.cc",
-    "protobuf/src/google/protobuf/compiler/csharp/csharp_reflection_class.h",
     "protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc",
-    "protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.h",
     "protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc",
-    "protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.h",
     "protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc",
-    "protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.h",
     "protobuf/src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc",
-    "protobuf/src/google/protobuf/compiler/csharp/csharp_source_generator_base.h",
     "protobuf/src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc",
-    "protobuf/src/google/protobuf/compiler/csharp/csharp_wrapper_field.h",
+    "protobuf/src/google/protobuf/compiler/csharp/names.cc",
     "protobuf/src/google/protobuf/compiler/java/context.cc",
-    "protobuf/src/google/protobuf/compiler/java/context.h",
     "protobuf/src/google/protobuf/compiler/java/doc_comment.cc",
-    "protobuf/src/google/protobuf/compiler/java/doc_comment.h",
-    "protobuf/src/google/protobuf/compiler/java/enum.cc",
-    "protobuf/src/google/protobuf/compiler/java/enum.h",
-    "protobuf/src/google/protobuf/compiler/java/enum_field.cc",
-    "protobuf/src/google/protobuf/compiler/java/enum_field.h",
-    "protobuf/src/google/protobuf/compiler/java/enum_field_lite.cc",
-    "protobuf/src/google/protobuf/compiler/java/enum_field_lite.h",
-    "protobuf/src/google/protobuf/compiler/java/enum_lite.cc",
-    "protobuf/src/google/protobuf/compiler/java/enum_lite.h",
-    "protobuf/src/google/protobuf/compiler/java/extension.cc",
-    "protobuf/src/google/protobuf/compiler/java/extension.h",
-    "protobuf/src/google/protobuf/compiler/java/extension_lite.cc",
-    "protobuf/src/google/protobuf/compiler/java/extension_lite.h",
-    "protobuf/src/google/protobuf/compiler/java/field.cc",
-    "protobuf/src/google/protobuf/compiler/java/field.h",
+    "protobuf/src/google/protobuf/compiler/java/field_common.cc",
     "protobuf/src/google/protobuf/compiler/java/file.cc",
-    "protobuf/src/google/protobuf/compiler/java/file.h",
+    "protobuf/src/google/protobuf/compiler/java/full/enum.cc",
+    "protobuf/src/google/protobuf/compiler/java/full/enum_field.cc",
+    "protobuf/src/google/protobuf/compiler/java/full/extension.cc",
+    "protobuf/src/google/protobuf/compiler/java/full/generator_factory.cc",
+    "protobuf/src/google/protobuf/compiler/java/full/make_field_gens.cc",
+    "protobuf/src/google/protobuf/compiler/java/full/map_field.cc",
+    "protobuf/src/google/protobuf/compiler/java/full/message.cc",
+    "protobuf/src/google/protobuf/compiler/java/full/message_builder.cc",
+    "protobuf/src/google/protobuf/compiler/java/full/message_field.cc",
+    "protobuf/src/google/protobuf/compiler/java/full/primitive_field.cc",
+    "protobuf/src/google/protobuf/compiler/java/full/service.cc",
+    "protobuf/src/google/protobuf/compiler/java/full/string_field.cc",
     "protobuf/src/google/protobuf/compiler/java/generator.cc",
-    "protobuf/src/google/protobuf/compiler/java/generator.h",
-    "protobuf/src/google/protobuf/compiler/java/generator_factory.cc",
-    "protobuf/src/google/protobuf/compiler/java/generator_factory.h",
     "protobuf/src/google/protobuf/compiler/java/helpers.cc",
-    "protobuf/src/google/protobuf/compiler/java/helpers.h",
-    "protobuf/src/google/protobuf/compiler/java/java_generator.h",
-    "protobuf/src/google/protobuf/compiler/java/kotlin_generator.cc",
-    "protobuf/src/google/protobuf/compiler/java/kotlin_generator.h",
-    "protobuf/src/google/protobuf/compiler/java/map_field.cc",
-    "protobuf/src/google/protobuf/compiler/java/map_field.h",
-    "protobuf/src/google/protobuf/compiler/java/map_field_lite.cc",
-    "protobuf/src/google/protobuf/compiler/java/map_field_lite.h",
-    "protobuf/src/google/protobuf/compiler/java/message.cc",
-    "protobuf/src/google/protobuf/compiler/java/message.h",
-    "protobuf/src/google/protobuf/compiler/java/message_builder.cc",
-    "protobuf/src/google/protobuf/compiler/java/message_builder.h",
-    "protobuf/src/google/protobuf/compiler/java/message_builder_lite.cc",
-    "protobuf/src/google/protobuf/compiler/java/message_builder_lite.h",
-    "protobuf/src/google/protobuf/compiler/java/message_field.cc",
-    "protobuf/src/google/protobuf/compiler/java/message_field.h",
-    "protobuf/src/google/protobuf/compiler/java/message_field_lite.cc",
-    "protobuf/src/google/protobuf/compiler/java/message_field_lite.h",
-    "protobuf/src/google/protobuf/compiler/java/message_lite.cc",
-    "protobuf/src/google/protobuf/compiler/java/message_lite.h",
+    "protobuf/src/google/protobuf/compiler/java/internal_helpers.cc",
+    "protobuf/src/google/protobuf/compiler/java/java_features.pb.cc",
+    "protobuf/src/google/protobuf/compiler/java/lite/enum.cc",
+    "protobuf/src/google/protobuf/compiler/java/lite/enum_field.cc",
+    "protobuf/src/google/protobuf/compiler/java/lite/extension.cc",
+    "protobuf/src/google/protobuf/compiler/java/lite/generator_factory.cc",
+    "protobuf/src/google/protobuf/compiler/java/lite/make_field_gens.cc",
+    "protobuf/src/google/protobuf/compiler/java/lite/map_field.cc",
+    "protobuf/src/google/protobuf/compiler/java/lite/message.cc",
+    "protobuf/src/google/protobuf/compiler/java/lite/message_builder.cc",
+    "protobuf/src/google/protobuf/compiler/java/lite/message_field.cc",
+    "protobuf/src/google/protobuf/compiler/java/lite/primitive_field.cc",
+    "protobuf/src/google/protobuf/compiler/java/lite/string_field.cc",
+    "protobuf/src/google/protobuf/compiler/java/message_serialization.cc",
     "protobuf/src/google/protobuf/compiler/java/name_resolver.cc",
-    "protobuf/src/google/protobuf/compiler/java/name_resolver.h",
-    "protobuf/src/google/protobuf/compiler/java/names.h",
-    "protobuf/src/google/protobuf/compiler/java/options.h",
-    "protobuf/src/google/protobuf/compiler/java/primitive_field.cc",
-    "protobuf/src/google/protobuf/compiler/java/primitive_field.h",
-    "protobuf/src/google/protobuf/compiler/java/primitive_field_lite.cc",
-    "protobuf/src/google/protobuf/compiler/java/primitive_field_lite.h",
-    "protobuf/src/google/protobuf/compiler/java/service.cc",
-    "protobuf/src/google/protobuf/compiler/java/service.h",
+    "protobuf/src/google/protobuf/compiler/java/names.cc",
     "protobuf/src/google/protobuf/compiler/java/shared_code_generator.cc",
-    "protobuf/src/google/protobuf/compiler/java/shared_code_generator.h",
-    "protobuf/src/google/protobuf/compiler/java/string_field.cc",
-    "protobuf/src/google/protobuf/compiler/java/string_field.h",
-    "protobuf/src/google/protobuf/compiler/java/string_field_lite.cc",
-    "protobuf/src/google/protobuf/compiler/java/string_field_lite.h",
-    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_enum.cc",
-    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_enum.h",
-    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc",
-    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_enum_field.h",
-    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_extension.cc",
-    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_extension.h",
-    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_field.cc",
-    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_field.h",
-    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_file.cc",
-    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_file.h",
-    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_generator.cc",
-    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_generator.h",
-    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc",
-    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_helpers.h",
-    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_map_field.cc",
-    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_map_field.h",
-    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_message.cc",
-    "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",
-    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.h",
+    "protobuf/src/google/protobuf/compiler/kotlin/field.cc",
+    "protobuf/src/google/protobuf/compiler/kotlin/file.cc",
+    "protobuf/src/google/protobuf/compiler/kotlin/generator.cc",
+    "protobuf/src/google/protobuf/compiler/kotlin/message.cc",
+    "protobuf/src/google/protobuf/compiler/objectivec/enum.cc",
+    "protobuf/src/google/protobuf/compiler/objectivec/enum_field.cc",
+    "protobuf/src/google/protobuf/compiler/objectivec/extension.cc",
+    "protobuf/src/google/protobuf/compiler/objectivec/field.cc",
+    "protobuf/src/google/protobuf/compiler/objectivec/file.cc",
+    "protobuf/src/google/protobuf/compiler/objectivec/generator.cc",
+    "protobuf/src/google/protobuf/compiler/objectivec/helpers.cc",
+    "protobuf/src/google/protobuf/compiler/objectivec/import_writer.cc",
+    "protobuf/src/google/protobuf/compiler/objectivec/line_consumer.cc",
+    "protobuf/src/google/protobuf/compiler/objectivec/map_field.cc",
+    "protobuf/src/google/protobuf/compiler/objectivec/message.cc",
+    "protobuf/src/google/protobuf/compiler/objectivec/message_field.cc",
+    "protobuf/src/google/protobuf/compiler/objectivec/names.cc",
+    "protobuf/src/google/protobuf/compiler/objectivec/oneof.cc",
+    "protobuf/src/google/protobuf/compiler/objectivec/primitive_field.cc",
+    "protobuf/src/google/protobuf/compiler/objectivec/tf_decode_data.cc",
+    "protobuf/src/google/protobuf/compiler/php/names.cc",
     "protobuf/src/google/protobuf/compiler/php/php_generator.cc",
-    "protobuf/src/google/protobuf/compiler/php/php_generator.h",
     "protobuf/src/google/protobuf/compiler/plugin.cc",
-    "protobuf/src/google/protobuf/compiler/plugin.h",
     "protobuf/src/google/protobuf/compiler/plugin.pb.cc",
-    "protobuf/src/google/protobuf/compiler/plugin.pb.h",
     "protobuf/src/google/protobuf/compiler/python/generator.cc",
-    "protobuf/src/google/protobuf/compiler/python/generator.h",
     "protobuf/src/google/protobuf/compiler/python/helpers.cc",
-    "protobuf/src/google/protobuf/compiler/python/helpers.h",
     "protobuf/src/google/protobuf/compiler/python/pyi_generator.cc",
-    "protobuf/src/google/protobuf/compiler/python/pyi_generator.h",
-    "protobuf/src/google/protobuf/compiler/python/python_generator.h",
+    "protobuf/src/google/protobuf/compiler/retention.cc",
     "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/rust/accessors/accessor_case.cc",
+    "protobuf/src/google/protobuf/compiler/rust/accessors/accessors.cc",
+    "protobuf/src/google/protobuf/compiler/rust/accessors/default_value.cc",
+    "protobuf/src/google/protobuf/compiler/rust/accessors/map.cc",
+    "protobuf/src/google/protobuf/compiler/rust/accessors/repeated_field.cc",
+    "protobuf/src/google/protobuf/compiler/rust/accessors/singular_cord.cc",
+    "protobuf/src/google/protobuf/compiler/rust/accessors/singular_message.cc",
+    "protobuf/src/google/protobuf/compiler/rust/accessors/singular_scalar.cc",
+    "protobuf/src/google/protobuf/compiler/rust/accessors/singular_string.cc",
+    "protobuf/src/google/protobuf/compiler/rust/accessors/unsupported_field.cc",
+    "protobuf/src/google/protobuf/compiler/rust/accessors/with_presence.cc",
+    "protobuf/src/google/protobuf/compiler/rust/context.cc",
+    "protobuf/src/google/protobuf/compiler/rust/crate_mapping.cc",
+    "protobuf/src/google/protobuf/compiler/rust/enum.cc",
+    "protobuf/src/google/protobuf/compiler/rust/generator.cc",
+    "protobuf/src/google/protobuf/compiler/rust/message.cc",
+    "protobuf/src/google/protobuf/compiler/rust/naming.cc",
+    "protobuf/src/google/protobuf/compiler/rust/oneof.cc",
+    "protobuf/src/google/protobuf/compiler/rust/relative_path.cc",
+    "protobuf/src/google/protobuf/compiler/rust/rust_field_type.cc",
+    "protobuf/src/google/protobuf/compiler/rust/rust_keywords.cc",
+    "protobuf/src/google/protobuf/compiler/rust/upb_helpers.cc",
     "protobuf/src/google/protobuf/compiler/subprocess.cc",
-    "protobuf/src/google/protobuf/compiler/subprocess.h",
+    "protobuf/src/google/protobuf/compiler/versions.cc",
     "protobuf/src/google/protobuf/compiler/zip_writer.cc",
-    "protobuf/src/google/protobuf/compiler/zip_writer.h",
+    "protobuf/src/google/protobuf/testing/file.cc",
   ]
   configs -= [ "//gn/standalone:extra_warnings" ]
   if (is_win) {
@@ -621,6 +1221,12 @@
       # Protobuf does has its own #define WIN32_LEAN_AND_MEAN.
       configs -= [ "//gn/standalone:win32_lean_and_mean" ]
     }
+    if (is_mac) {
+      ldflags = [
+        "-framework",
+        "CoreFoundation",
+      ]
+    }
   }
 }  # host_toolchain
 
@@ -1530,15 +2136,6 @@
 }
 
 if (enable_perfetto_grpc) {
-  config("grpc_absl_config") {
-    visibility = _buildtools_visibility
-    include_dirs = [ "grpc/src/third_party/abseil-cpp" ]
-    cflags = [
-      "-Wno-deprecated-builtins",
-      "-Wno-deprecated-pragma",
-    ]
-  }
-
   config("grpc_boringssl_config") {
     visibility = _buildtools_visibility
     include_dirs = [ "grpc/src/third_party/boringssl-with-bazel/src/include" ]
@@ -1564,12 +2161,10 @@
   config("grpc_internal_config") {
     visibility = _buildtools_visibility
     include_dirs = [
-      "grpc/protobuf_include",
       "grpc/src",
       "grpc/src/include",
       "grpc/src/src/core/ext/upb-gen",
       "grpc/src/src/core/ext/upbdefs-gen",
-      "grpc/src/third_party/abseil-cpp",
       "grpc/src/third_party/address_sorting/include",
       "grpc/src/third_party/re2",
       "grpc/src/third_party/upb",
@@ -1581,6 +2176,7 @@
       cflags += [
         "-Wno-attributes",
         "-Wno-return-type",
+        "-Wno-trigraphs",
       ]
     }
   }
diff --git a/buildtools/grpc/BUILD.gn b/buildtools/grpc/BUILD.gn
index fa2a1c8..97087bd 100644
--- a/buildtools/grpc/BUILD.gn
+++ b/buildtools/grpc/BUILD.gn
@@ -14,3397 +14,401 @@
 # 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" ]
-  check_includes = true
-}
-
-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_base_nullability",
-    ":absl_meta_type_traits",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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_nullability",
-    ":absl_base_raw_logging_internal",
-    ":absl_base_spinlock_wait",
-    ":absl_meta_type_traits",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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/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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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",
-    ":absl_base_nullability",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-source_set("absl_base_no_destructor") {
-  sources = [ "src/third_party/abseil-cpp/absl/base/no_destructor.h" ]
-  public_deps = [ ":absl_base_config" ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-source_set("absl_base_nullability") {
-  sources = [
-    "src/third_party/abseil-cpp/absl/base/internal/nullability_impl.h",
-    "src/third_party/abseil-cpp/absl/base/nullability.h",
-  ]
-  public_deps = [
-    ":absl_base_core_headers",
-    ":absl_meta_type_traits",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-source_set("absl_base_prefetch") {
-  sources = [ "src/third_party/abseil-cpp/absl/base/prefetch.h" ]
-  public_deps = [
-    ":absl_base_config",
-    ":absl_base_core_headers",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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_base_raw_logging_internal",
-    ":absl_debugging_stacktrace",
-    ":absl_memory_memory",
-    ":absl_profiling_exponential_biased",
-    ":absl_profiling_sample_recorder",
-    ":absl_synchronization_synchronization",
-    ":absl_time_time",
-    ":absl_utility_utility",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-source_set("absl_container_inlined_vector_internal") {
-  sources =
-      [ "src/third_party/abseil-cpp/absl/container/internal/inlined_vector.h" ]
-  public_deps = [
-    ":absl_base_config",
-    ":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" ]
-  check_includes = true
-}
-
-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_debugging_demangle_internal",
-    ":absl_meta_type_traits",
-    ":absl_strings_strings",
-    ":absl_types_span",
-    ":absl_utility_utility",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-source_set("absl_container_raw_hash_map") {
-  sources =
-      [ "src/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h" ]
-  public_deps = [
-    ":absl_base_config",
-    ":absl_base_core_headers",
-    ":absl_base_throw_delegate",
-    ":absl_container_container_memory",
-    ":absl_container_raw_hash_set",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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_dynamic_annotations",
-    ":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_hash_hash",
-    ":absl_memory_memory",
-    ":absl_meta_type_traits",
-    ":absl_numeric_bits",
-    ":absl_utility_utility",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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_arm_combined.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_endian",
-    ":absl_base_prefetch",
-    ":absl_crc_cpu_detect",
-    ":absl_crc_crc_internal",
-    ":absl_crc_non_temporal_memcpy",
-    ":absl_strings_str_format",
-    ":absl_strings_strings",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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_config",
-    ":absl_base_core_headers",
-    ":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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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_dynamic_annotations",
-    ":absl_base_raw_logging_internal",
-    ":absl_debugging_debugging_internal",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-source_set("absl_flags_flag") {
-  sources = [
-    "src/third_party/abseil-cpp/absl/flags/declare.h",
-    "src/third_party/abseil-cpp/absl/flags/flag.h",
-  ]
-  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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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_numeric_int128",
-    ":absl_strings_str_format",
-    ":absl_strings_strings",
-    ":absl_types_optional",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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_base_no_destructor",
-    ":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" ]
-  check_includes = true
-}
-
-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_base_raw_logging_internal",
-    ":absl_flags_usage_internal",
-    ":absl_strings_strings",
-    ":absl_synchronization_synchronization",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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_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",
-    ":absl_synchronization_synchronization",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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_functional_any_invocable",
-    ":absl_meta_type_traits",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-source_set("absl_functional_overload") {
-  sources = [ "src/third_party/abseil-cpp/absl/functional/overload.h" ]
-  public_deps = [
-    ":absl_base_config",
-    ":absl_meta_type_traits",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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_base_prefetch",
-    ":absl_numeric_int128",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-source_set("absl_log_internal_fnmatch") {
-  sources = [
-    "src/third_party/abseil-cpp/absl/log/internal/fnmatch.cc",
-    "src/third_party/abseil-cpp/absl/log/internal/fnmatch.h",
-  ]
-  public_deps = [
-    ":absl_base_config",
-    ":absl_strings_strings",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-source_set("absl_log_internal_log_impl") {
-  sources = [ "src/third_party/abseil-cpp/absl/log/internal/log_impl.h" ]
-  public_deps = [
-    ":absl_log_absl_vlog_is_on",
-    ":absl_log_internal_conditions",
-    ":absl_log_internal_log_message",
-    ":absl_log_internal_strip",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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_no_destructor",
-    ":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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-source_set("absl_log_internal_vlog_config") {
-  sources = [
-    "src/third_party/abseil-cpp/absl/log/internal/vlog_config.cc",
-    "src/third_party/abseil-cpp/absl/log/internal/vlog_config.h",
-  ]
-  public_deps = [
-    ":absl_base_base",
-    ":absl_base_config",
-    ":absl_base_core_headers",
-    ":absl_base_no_destructor",
-    ":absl_log_internal_fnmatch",
-    ":absl_memory_memory",
-    ":absl_strings_strings",
-    ":absl_synchronization_synchronization",
-    ":absl_types_optional",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-source_set("absl_log_absl_vlog_is_on") {
-  sources = [ "src/third_party/abseil-cpp/absl/log/absl_vlog_is_on.h" ]
-  public_deps = [
-    ":absl_base_config",
-    ":absl_base_core_headers",
-    ":absl_log_internal_vlog_config",
-    ":absl_strings_strings",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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_log_internal_vlog_config",
-    ":absl_strings_strings",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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_base_raw_logging_internal",
-    ":absl_hash_hash",
-    ":absl_log_internal_vlog_config",
-    ":absl_strings_strings",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-source_set("absl_log_log") {
-  sources = [ "src/third_party/abseil-cpp/absl/log/log.h" ]
-  public_deps = [
-    ":absl_log_internal_log_impl",
-    ":absl_log_vlog_is_on",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-source_set("absl_log_vlog_is_on") {
-  sources = [ "src/third_party/abseil-cpp/absl/log/vlog_is_on.h" ]
-  public_deps = [ ":absl_log_absl_vlog_is_on" ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-source_set("absl_meta_type_traits") {
-  sources = [ "src/third_party/abseil-cpp/absl/meta/type_traits.h" ]
-  public_deps = [
-    ":absl_base_config",
-    ":absl_base_core_headers",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-source_set("absl_status_status") {
-  sources = [
-    "src/third_party/abseil-cpp/absl/status/internal/status_internal.cc",
-    "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_config",
-    ":absl_base_core_headers",
-    ":absl_base_no_destructor",
-    ":absl_base_nullability",
-    ":absl_base_raw_logging_internal",
-    ":absl_base_strerror",
-    ":absl_container_inlined_vector",
-    ":absl_debugging_stacktrace",
-    ":absl_debugging_symbolize",
-    ":absl_functional_function_ref",
-    ":absl_memory_memory",
-    ":absl_strings_cord",
-    ":absl_strings_str_format",
-    ":absl_strings_strings",
-    ":absl_types_optional",
-    ":absl_types_span",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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_config",
-    ":absl_base_core_headers",
-    ":absl_base_nullability",
-    ":absl_base_raw_logging_internal",
-    ":absl_meta_type_traits",
-    ":absl_status_status",
-    ":absl_strings_has_ostream_operator",
-    ":absl_strings_str_format",
-    ":absl_strings_strings",
-    ":absl_types_variant",
-    ":absl_utility_utility",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-source_set("absl_strings_charset") {
-  sources = [ "src/third_party/abseil-cpp/absl/strings/charset.h" ]
-  public_deps = [
-    ":absl_base_core_headers",
-    ":absl_strings_string_view",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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_nullability",
-    ":absl_base_raw_logging_internal",
-    ":absl_container_inlined_vector",
-    ":absl_crc_crc32c",
-    ":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_strings",
-    ":absl_types_optional",
-    ":absl_types_span",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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",
-  ]
-  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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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_time_time",
-    ":absl_types_span",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-source_set("absl_strings_has_ostream_operator") {
-  sources = [ "src/third_party/abseil-cpp/absl/strings/has_ostream_operator.h" ]
-  public_deps = [ ":absl_base_config" ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-source_set("absl_strings_internal") {
-  sources = [
-    "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" ]
-  check_includes = true
-}
-
-source_set("absl_strings_str_format") {
-  sources = [ "src/third_party/abseil-cpp/absl/strings/str_format.h" ]
-  public_deps = [
-    ":absl_base_config",
-    ":absl_base_core_headers",
-    ":absl_base_nullability",
-    ":absl_strings_str_format_internal",
-    ":absl_strings_string_view",
-    ":absl_types_span",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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_container_fixed_array",
-    ":absl_container_inlined_vector",
-    ":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" ]
-  check_includes = true
-}
-
-source_set("absl_strings_string_view") {
-  sources = [
-    "src/third_party/abseil-cpp/absl/strings/string_view.cc",
-    "src/third_party/abseil-cpp/absl/strings/string_view.h",
-  ]
-  public_deps = [
-    ":absl_base_base",
-    ":absl_base_config",
-    ":absl_base_core_headers",
-    ":absl_base_nullability",
-    ":absl_base_throw_delegate",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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/has_absl_stringify.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.h",
-    "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_nullability",
-    ":absl_base_raw_logging_internal",
-    ":absl_base_throw_delegate",
-    ":absl_memory_memory",
-    ":absl_meta_type_traits",
-    ":absl_numeric_bits",
-    ":absl_numeric_int128",
-    ":absl_strings_charset",
-    ":absl_strings_internal",
-    ":absl_strings_string_view",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-source_set("absl_synchronization_kernel_timeout_internal") {
-  sources = [
-    "src/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc",
-    "src/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h",
-  ]
-  public_deps = [
-    ":absl_base_base",
-    ":absl_base_config",
-    ":absl_base_core_headers",
-    ":absl_base_raw_logging_internal",
-    ":absl_time_time",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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/futex_waiter.cc",
-    "src/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.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/pthread_waiter.cc",
-    "src/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.h",
-    "src/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.cc",
-    "src/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.h",
-    "src/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc",
-    "src/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.h",
-    "src/third_party/abseil-cpp/absl/synchronization/internal/waiter.h",
-    "src/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.cc",
-    "src/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.h",
-    "src/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.cc",
-    "src/third_party/abseil-cpp/absl/synchronization/internal/win32_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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-source_set("absl_types_compare") {
-  sources = [ "src/third_party/abseil-cpp/absl/types/compare.h" ]
-  public_deps = [
-    ":absl_base_config",
-    ":absl_base_core_headers",
-    ":absl_meta_type_traits",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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_base_nullability",
-    ":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" ]
-  check_includes = true
-}
-
-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_nullability",
-    ":absl_base_throw_delegate",
-    ":absl_meta_type_traits",
-  ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
-source_set("absl_utility_if_constexpr") {
-  sources =
-      [ "src/third_party/abseil-cpp/absl/utility/internal/if_constexpr.h" ]
-  public_deps = [ ":absl_base_config" ]
-  public_configs = [ "..:grpc_absl_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
-}
-
-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" ]
-  check_includes = true
-}
-
 static_library("boringssl") {
   sources = [
-    "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_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_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/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/f_int.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/aes/aes.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.cc",
     "src/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h",
-    "src/third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.c",
-    "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/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/errno.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/asn1/posix_time.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/base64/base64.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/bcm_support.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/bio/bio.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/bio/connect.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/bio/errno.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/bio/fd.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/bio/file.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/bio/hexdump.cc",
     "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/bio/pair.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/bio/printf.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/bio/socket.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/bn/bn_asn1.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/bn/convert.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/bn/div.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/bn/exponentiation.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/bn/sqrt.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/buf/buf.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.cc",
     "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/bytestring/unicode.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.cc",
     "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_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_des.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/conf/conf.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher/derive_key.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher/e_aesctrhmac.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher/e_aeseax.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher/e_aesgcmsiv.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher/e_chacha20poly1305.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher/e_des.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher/e_null.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher/e_rc2.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher/e_rc4.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher/e_tls.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher/get_cipher.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/cipher/tls_cbc.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/cms/cms.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/conf/conf.cc",
     "src/third_party/boringssl-with-bazel/src/crypto/conf/internal.h",
-    "src/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c",
-    "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_openbsd.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.cc",
     "src/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.h",
-    "src/third_party/boringssl-with-bazel/src/crypto/cpu_intel.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/crypto.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/cpu_intel.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/crypto.cc",
     "src/third_party/boringssl-with-bazel/src/crypto/curve25519/asm/x25519-asm-arm.S",
-    "src/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_64_adx.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_64_adx.cc",
     "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/des/des.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/des/des.cc",
     "src/third_party/boringssl-with-bazel/src/crypto/des/internal.h",
-    "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/dh/dh_asn1.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/dh/params.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/digest/digest_extra.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.cc",
     "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/ec/ec_asn1.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/ec/ec_derive.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/ec/hash_to_curve.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/ec/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/ecdh/ecdh.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/ecdsa/ecdsa_asn1.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/engine/engine.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/err/err.cc",
     "src/third_party/boringssl-with-bazel/src/crypto/err/internal.h",
-    "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/evp.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.cc",
     "src/third_party/boringssl-with-bazel/src/crypto/evp/internal.h",
-    "src/third_party/boringssl-with-bazel/src/crypto/evp/p_dh.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/evp/p_dh_asn1.c",
-    "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_hkdf.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/evp/p_dh.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/p_dh_asn1.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/pbkdf.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/print.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/evp/sign.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/ex_data.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/cbc.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/cfb.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/ctr.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/gcm.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/gcm_nohw.cc.inc",
     "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/aes/key_wrap.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/ofb.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm_interface.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/add.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.cc.inc",
     "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/jacobi.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.cc.inc",
     "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_aesccm.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aesccm.cc.inc",
     "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h",
-    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cmac/cmac.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cmac/cmac.cc.inc",
     "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.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/dh/check.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.cc.inc",
     "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h",
-    "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/digest.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.cc.inc",
     "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/digestsign/digestsign.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digestsign/digestsign.cc.inc",
     "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/builtin_curves.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/ec.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.cc.inc",
     "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/oct.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.cc.inc",
     "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz-table.h",
-    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.cc.inc",
     "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.h",
-    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.cc.inc",
     "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/ec/scalar.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.cc.inc",
     "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/hkdf/hkdf.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/fips_shared_support.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/hkdf.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/keccak/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/keccak/keccak.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mldsa/fips_known_values.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mldsa/mldsa.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mlkem/fips_known_values.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mlkem/mlkem.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.cc.inc",
     "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/rand/rand.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.cc.inc",
     "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/rsa/padding.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.cc.inc",
     "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h",
-    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.cc.inc",
     "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h",
-    "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/sha/sha1.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/address.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/fips_known_values.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/fors.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/fors.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/merkle.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/merkle.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/params.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/slhdsa.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/thash.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/thash.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/wots.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/wots.h",
     "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/hpke/hpke.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.cc.inc",
+    "src/third_party/boringssl-with-bazel/src/crypto/fuzzer_mode.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.cc",
     "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/hrss.cc",
     "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/keccak/internal.h",
-    "src/third_party/boringssl-with-bazel/src/crypto/keccak/keccak.c",
     "src/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h",
-    "src/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.cc",
     "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/lhash/lhash.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/md4/md4.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/md5/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/md5/md5.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/mem.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/mldsa/mldsa.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/mlkem/mlkem.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/obj/obj.cc",
     "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/obj/obj_xref.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/pem/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.cc",
     "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/pkcs7/pkcs7.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.cc",
     "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/pkcs8/p5_pbev2.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.cc",
     "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.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.cc",
     "src/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm_asm.S",
-    "src/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.cc",
     "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/getentropy.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/rand_extra/ios.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/trusty.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.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/rsa_extra/internal.h",
-    "src/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_crypt.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/spx/address.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/spx/address.h",
-    "src/third_party/boringssl-with-bazel/src/crypto/spx/fors.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/spx/fors.h",
-    "src/third_party/boringssl-with-bazel/src/crypto/spx/merkle.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/spx/merkle.h",
-    "src/third_party/boringssl-with-bazel/src/crypto/spx/params.h",
-    "src/third_party/boringssl-with-bazel/src/crypto/spx/spx.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/spx/spx_util.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/spx/spx_util.h",
-    "src/third_party/boringssl-with-bazel/src/crypto/spx/thash.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/spx/thash.h",
-    "src/third_party/boringssl-with-bazel/src/crypto/spx/wots.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/spx/wots.h",
-    "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/pool/pool.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/rand/deterministic.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/rand/fork_detect.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/rand/forkunsafe.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/rand/getentropy.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/rand/getrandom_fillin.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/rand/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/rand/ios.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/rand/passive.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/rand/rand.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/rand/trusty.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/rand/urandom.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/rand/windows.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/rc4/rc4.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/refcount.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/rsa/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_asn1.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_crypt.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_extra.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_print.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/sha/sha1.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/sha/sha256.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/sha/sha512.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/slhdsa/slhdsa.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/spake2plus/internal.h",
+    "src/third_party/boringssl-with-bazel/src/crypto/spake2plus/spake2plus.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/stack/stack.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/thread.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/thread_none.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/thread_pthread.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/thread_win.cc",
     "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/trust_token/pmbtoken.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/by_file.cc",
     "src/third_party/boringssl-with-bazel/src/crypto/x509/ext_dat.h",
-    "src/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.cc",
     "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/policy.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/v3_akey.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_akeya.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_alt.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_bcons.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_bitst.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_conf.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_cpols.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_crld.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_enum.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_extku.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_genn.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_ia5.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_info.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_int.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_lib.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_ncons.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_ocsp.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_pcons.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_pmaps.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_prn.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_purp.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_skey.c",
-    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.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_name.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/x509/name_print.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/policy.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/t_req.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_akey.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_akeya.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_alt.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_bcons.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_bitst.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_conf.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_cpols.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_crld.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_enum.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_extku.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_genn.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_ia5.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_info.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_int.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_lib.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_ncons.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_ocsp.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_pcons.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_pmaps.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_prn.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_purp.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_skey.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509name.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_all.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_name.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_req.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_val.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.cc",
+    "src/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.cc",
+    "src/third_party/boringssl-with-bazel/src/gen/bcm/aes-gcm-avx2-x86_64-apple.S",
+    "src/third_party/boringssl-with-bazel/src/gen/bcm/aes-gcm-avx2-x86_64-linux.S",
+    "src/third_party/boringssl-with-bazel/src/gen/bcm/aes-gcm-avx512-x86_64-apple.S",
+    "src/third_party/boringssl-with-bazel/src/gen/bcm/aes-gcm-avx512-x86_64-linux.S",
     "src/third_party/boringssl-with-bazel/src/gen/bcm/aesni-gcm-x86_64-apple.S",
     "src/third_party/boringssl-with-bazel/src/gen/bcm/aesni-gcm-x86_64-linux.S",
     "src/third_party/boringssl-with-bazel/src/gen/bcm/aesni-x86-apple.S",
@@ -3446,10 +450,6 @@
     "src/third_party/boringssl-with-bazel/src/gen/bcm/ghashv8-armv8-apple.S",
     "src/third_party/boringssl-with-bazel/src/gen/bcm/ghashv8-armv8-linux.S",
     "src/third_party/boringssl-with-bazel/src/gen/bcm/ghashv8-armv8-win.S",
-    "src/third_party/boringssl-with-bazel/src/gen/bcm/md5-586-apple.S",
-    "src/third_party/boringssl-with-bazel/src/gen/bcm/md5-586-linux.S",
-    "src/third_party/boringssl-with-bazel/src/gen/bcm/md5-x86_64-apple.S",
-    "src/third_party/boringssl-with-bazel/src/gen/bcm/md5-x86_64-linux.S",
     "src/third_party/boringssl-with-bazel/src/gen/bcm/p256-armv8-asm-apple.S",
     "src/third_party/boringssl-with-bazel/src/gen/bcm/p256-armv8-asm-linux.S",
     "src/third_party/boringssl-with-bazel/src/gen/bcm/p256-armv8-asm-win.S",
@@ -3517,7 +517,11 @@
     "src/third_party/boringssl-with-bazel/src/gen/crypto/chacha20_poly1305_armv8-win.S",
     "src/third_party/boringssl-with-bazel/src/gen/crypto/chacha20_poly1305_x86_64-apple.S",
     "src/third_party/boringssl-with-bazel/src/gen/crypto/chacha20_poly1305_x86_64-linux.S",
-    "src/third_party/boringssl-with-bazel/src/gen/crypto/err_data.c",
+    "src/third_party/boringssl-with-bazel/src/gen/crypto/err_data.cc",
+    "src/third_party/boringssl-with-bazel/src/gen/crypto/md5-586-apple.S",
+    "src/third_party/boringssl-with-bazel/src/gen/crypto/md5-586-linux.S",
+    "src/third_party/boringssl-with-bazel/src/gen/crypto/md5-x86_64-apple.S",
+    "src/third_party/boringssl-with-bazel/src/gen/crypto/md5-x86_64-linux.S",
     "src/third_party/boringssl-with-bazel/src/gen/test_support/trampoline-armv4-linux.S",
     "src/third_party/boringssl-with-bazel/src/gen/test_support/trampoline-armv8-apple.S",
     "src/third_party/boringssl-with-bazel/src/gen/test_support/trampoline-armv8-linux.S",
@@ -3535,6 +539,7 @@
     "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/bcm_public.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",
@@ -3546,6 +551,7 @@
     "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/cms.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",
@@ -3567,7 +573,6 @@
     "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/experimental/kyber.h",
-    "src/third_party/boringssl-with-bazel/src/include/openssl/experimental/spx.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",
@@ -3578,6 +583,8 @@
     "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/mldsa.h",
+    "src/third_party/boringssl-with-bazel/src/include/openssl/mlkem.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",
@@ -3600,6 +607,7 @@
     "src/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.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/slhdsa.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",
@@ -3688,112 +696,137 @@
 
 source_set("gpr") {
   sources = [
-    "src/src/core/lib/config/config_vars.cc",
-    "src/src/core/lib/config/config_vars.h",
-    "src/src/core/lib/config/config_vars_non_generated.cc",
-    "src/src/core/lib/config/load_config.cc",
-    "src/src/core/lib/config/load_config.h",
+    "src/src/core/config/config_vars.cc",
+    "src/src/core/config/config_vars.h",
+    "src/src/core/config/config_vars_non_generated.cc",
+    "src/src/core/config/load_config.cc",
+    "src/src/core/config/load_config.h",
     "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/android/log.cc",
-    "src/src/core/lib/gpr/atm.cc",
-    "src/src/core/lib/gpr/iphone/cpu.cc",
-    "src/src/core/lib/gpr/linux/cpu.cc",
-    "src/src/core/lib/gpr/linux/log.cc",
-    "src/src/core/lib/gpr/log.cc",
-    "src/src/core/lib/gpr/msys/tmpfile.cc",
-    "src/src/core/lib/gpr/posix/cpu.cc",
-    "src/src/core/lib/gpr/posix/log.cc",
-    "src/src/core/lib/gpr/posix/string.cc",
-    "src/src/core/lib/gpr/posix/sync.cc",
-    "src/src/core/lib/gpr/posix/time.cc",
-    "src/src/core/lib/gpr/posix/tmpfile.cc",
-    "src/src/core/lib/gpr/string.cc",
-    "src/src/core/lib/gpr/string.h",
-    "src/src/core/lib/gpr/sync.cc",
-    "src/src/core/lib/gpr/sync_abseil.cc",
-    "src/src/core/lib/gpr/time.cc",
-    "src/src/core/lib/gpr/time_precise.cc",
-    "src/src/core/lib/gpr/time_precise.h",
-    "src/src/core/lib/gpr/tmpfile.h",
-    "src/src/core/lib/gpr/useful.h",
-    "src/src/core/lib/gpr/windows/cpu.cc",
-    "src/src/core/lib/gpr/windows/log.cc",
-    "src/src/core/lib/gpr/windows/string.cc",
-    "src/src/core/lib/gpr/windows/string_util.cc",
-    "src/src/core/lib/gpr/windows/sync.cc",
-    "src/src/core/lib/gpr/windows/time.cc",
-    "src/src/core/lib/gpr/windows/tmpfile.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/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/host_port.cc",
-    "src/src/core/lib/gprpp/host_port.h",
-    "src/src/core/lib/gprpp/linux/env.cc",
-    "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/posix/env.cc",
-    "src/src/core/lib/gprpp/posix/stat.cc",
-    "src/src/core/lib/gprpp/posix/thd.cc",
-    "src/src/core/lib/gprpp/stat.h",
-    "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/time_util.cc",
-    "src/src/core/lib/gprpp/time_util.h",
-    "src/src/core/lib/gprpp/windows/env.cc",
-    "src/src/core/lib/gprpp/windows/stat.cc",
-    "src/src/core/lib/gprpp/windows/thd.cc",
+    "src/src/core/util/alloc.cc",
+    "src/src/core/util/alloc.h",
+    "src/src/core/util/construct_destruct.h",
+    "src/src/core/util/crash.cc",
+    "src/src/core/util/crash.h",
+    "src/src/core/util/debug_location.h",
+    "src/src/core/util/env.h",
+    "src/src/core/util/examine_stack.cc",
+    "src/src/core/util/examine_stack.h",
+    "src/src/core/util/fork.cc",
+    "src/src/core/util/fork.h",
+    "src/src/core/util/gpr_time.cc",
+    "src/src/core/util/host_port.cc",
+    "src/src/core/util/host_port.h",
+    "src/src/core/util/iphone/cpu.cc",
+    "src/src/core/util/linux/cpu.cc",
+    "src/src/core/util/linux/env.cc",
+    "src/src/core/util/log.cc",
+    "src/src/core/util/memory.h",
+    "src/src/core/util/mpscq.cc",
+    "src/src/core/util/mpscq.h",
+    "src/src/core/util/msys/tmpfile.cc",
+    "src/src/core/util/no_destruct.h",
+    "src/src/core/util/posix/cpu.cc",
+    "src/src/core/util/posix/env.cc",
+    "src/src/core/util/posix/stat.cc",
+    "src/src/core/util/posix/string.cc",
+    "src/src/core/util/posix/sync.cc",
+    "src/src/core/util/posix/thd.cc",
+    "src/src/core/util/posix/time.cc",
+    "src/src/core/util/posix/tmpfile.cc",
+    "src/src/core/util/stat.h",
+    "src/src/core/util/strerror.cc",
+    "src/src/core/util/strerror.h",
+    "src/src/core/util/string.cc",
+    "src/src/core/util/string.h",
+    "src/src/core/util/sync.cc",
+    "src/src/core/util/sync.h",
+    "src/src/core/util/sync_abseil.cc",
+    "src/src/core/util/tchar.cc",
+    "src/src/core/util/tchar.h",
+    "src/src/core/util/thd.h",
+    "src/src/core/util/time_precise.cc",
+    "src/src/core/util/time_precise.h",
+    "src/src/core/util/time_util.cc",
+    "src/src/core/util/time_util.h",
+    "src/src/core/util/tmpfile.h",
+    "src/src/core/util/useful.h",
+    "src/src/core/util/windows/cpu.cc",
+    "src/src/core/util/windows/env.cc",
+    "src/src/core/util/windows/stat.cc",
+    "src/src/core/util/windows/string.cc",
+    "src/src/core/util/windows/string_util.cc",
+    "src/src/core/util/windows/sync.cc",
+    "src/src/core/util/windows/thd.cc",
+    "src/src/core/util/windows/time.cc",
+    "src/src/core/util/windows/tmpfile.cc",
   ]
-  public_deps = [
-    ":absl_base_base",
-    ":absl_base_core_headers",
-    ":absl_base_log_severity",
-    ":absl_flags_flag",
-    ":absl_flags_marshalling",
-    ":absl_functional_any_invocable",
-    ":absl_log_check",
-    ":absl_log_globals",
-    ":absl_log_log",
-    ":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_deps = [ "..:abseil_cpp" ]
   public_configs = [ "..:grpc_internal_config" ]
   configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = true
+  check_includes = false
 }
 
 source_set("grpc") {
   sources = [
+    "src/src/core/call/call_arena_allocator.cc",
+    "src/src/core/call/call_arena_allocator.h",
+    "src/src/core/call/call_destination.h",
+    "src/src/core/call/call_filters.cc",
+    "src/src/core/call/call_filters.h",
+    "src/src/core/call/call_finalization.h",
+    "src/src/core/call/call_spine.cc",
+    "src/src/core/call/call_spine.h",
+    "src/src/core/call/call_state.cc",
+    "src/src/core/call/call_state.h",
+    "src/src/core/call/client_call.cc",
+    "src/src/core/call/client_call.h",
+    "src/src/core/call/custom_metadata.h",
+    "src/src/core/call/filter_fusion.h",
+    "src/src/core/call/interception_chain.cc",
+    "src/src/core/call/interception_chain.h",
+    "src/src/core/call/message.cc",
+    "src/src/core/call/message.h",
+    "src/src/core/call/metadata.cc",
+    "src/src/core/call/metadata.h",
+    "src/src/core/call/metadata_batch.cc",
+    "src/src/core/call/metadata_batch.h",
+    "src/src/core/call/metadata_compression_traits.h",
+    "src/src/core/call/metadata_info.cc",
+    "src/src/core/call/metadata_info.h",
+    "src/src/core/call/parsed_metadata.cc",
+    "src/src/core/call/parsed_metadata.h",
+    "src/src/core/call/request_buffer.cc",
+    "src/src/core/call/request_buffer.h",
+    "src/src/core/call/security_context.cc",
+    "src/src/core/call/security_context.h",
+    "src/src/core/call/server_call.cc",
+    "src/src/core/call/server_call.h",
+    "src/src/core/call/simple_slice_based_metadata.h",
+    "src/src/core/call/status_util.cc",
+    "src/src/core/call/status_util.h",
     "src/src/core/channelz/channel_trace.cc",
     "src/src/core/channelz/channel_trace.h",
     "src/src/core/channelz/channelz.cc",
     "src/src/core/channelz/channelz.h",
     "src/src/core/channelz/channelz_registry.cc",
     "src/src/core/channelz/channelz_registry.h",
+    "src/src/core/channelz/property_list.cc",
+    "src/src/core/channelz/property_list.h",
+    "src/src/core/channelz/text_encode.cc",
+    "src/src/core/channelz/text_encode.h",
+    "src/src/core/channelz/v2tov1/convert.cc",
+    "src/src/core/channelz/v2tov1/convert.h",
+    "src/src/core/channelz/v2tov1/legacy_api.cc",
+    "src/src/core/channelz/v2tov1/legacy_api.h",
+    "src/src/core/channelz/v2tov1/property_list.cc",
+    "src/src/core/channelz/v2tov1/property_list.h",
+    "src/src/core/channelz/ztrace_collector.h",
     "src/src/core/client_channel/backup_poller.cc",
     "src/src/core/client_channel/backup_poller.h",
+    "src/src/core/client_channel/client_channel.cc",
+    "src/src/core/client_channel/client_channel.h",
+    "src/src/core/client_channel/client_channel_args.h",
     "src/src/core/client_channel/client_channel_factory.cc",
     "src/src/core/client_channel/client_channel_factory.h",
     "src/src/core/client_channel/client_channel_filter.cc",
@@ -3802,19 +835,26 @@
     "src/src/core/client_channel/client_channel_plugin.cc",
     "src/src/core/client_channel/client_channel_service_config.cc",
     "src/src/core/client_channel/client_channel_service_config.h",
-    "src/src/core/client_channel/config_selector.cc",
     "src/src/core/client_channel/config_selector.h",
     "src/src/core/client_channel/connector.h",
+    "src/src/core/client_channel/direct_channel.cc",
+    "src/src/core/client_channel/direct_channel.h",
     "src/src/core/client_channel/dynamic_filters.cc",
     "src/src/core/client_channel/dynamic_filters.h",
     "src/src/core/client_channel/global_subchannel_pool.cc",
     "src/src/core/client_channel/global_subchannel_pool.h",
+    "src/src/core/client_channel/lb_metadata.cc",
+    "src/src/core/client_channel/lb_metadata.h",
+    "src/src/core/client_channel/load_balanced_call_destination.cc",
+    "src/src/core/client_channel/load_balanced_call_destination.h",
     "src/src/core/client_channel/local_subchannel_pool.cc",
     "src/src/core/client_channel/local_subchannel_pool.h",
     "src/src/core/client_channel/retry_filter.cc",
     "src/src/core/client_channel/retry_filter.h",
     "src/src/core/client_channel/retry_filter_legacy_call_data.cc",
     "src/src/core/client_channel/retry_filter_legacy_call_data.h",
+    "src/src/core/client_channel/retry_interceptor.cc",
+    "src/src/core/client_channel/retry_interceptor.h",
     "src/src/core/client_channel/retry_service_config.cc",
     "src/src/core/client_channel/retry_service_config.h",
     "src/src/core/client_channel/retry_throttle.cc",
@@ -3826,6 +866,118 @@
     "src/src/core/client_channel/subchannel_pool_interface.h",
     "src/src/core/client_channel/subchannel_stream_client.cc",
     "src/src/core/client_channel/subchannel_stream_client.h",
+    "src/src/core/config/core_configuration.cc",
+    "src/src/core/config/core_configuration.h",
+    "src/src/core/credentials/call/call_credentials.h",
+    "src/src/core/credentials/call/call_creds_registry.h",
+    "src/src/core/credentials/call/call_creds_registry_init.cc",
+    "src/src/core/credentials/call/call_creds_util.cc",
+    "src/src/core/credentials/call/call_creds_util.h",
+    "src/src/core/credentials/call/composite/composite_call_credentials.cc",
+    "src/src/core/credentials/call/composite/composite_call_credentials.h",
+    "src/src/core/credentials/call/external/aws_external_account_credentials.cc",
+    "src/src/core/credentials/call/external/aws_external_account_credentials.h",
+    "src/src/core/credentials/call/external/aws_request_signer.cc",
+    "src/src/core/credentials/call/external/aws_request_signer.h",
+    "src/src/core/credentials/call/external/external_account_credentials.cc",
+    "src/src/core/credentials/call/external/external_account_credentials.h",
+    "src/src/core/credentials/call/external/file_external_account_credentials.cc",
+    "src/src/core/credentials/call/external/file_external_account_credentials.h",
+    "src/src/core/credentials/call/external/url_external_account_credentials.cc",
+    "src/src/core/credentials/call/external/url_external_account_credentials.h",
+    "src/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc",
+    "src/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.h",
+    "src/src/core/credentials/call/iam/iam_credentials.cc",
+    "src/src/core/credentials/call/iam/iam_credentials.h",
+    "src/src/core/credentials/call/json_util.cc",
+    "src/src/core/credentials/call/json_util.h",
+    "src/src/core/credentials/call/jwt/json_token.cc",
+    "src/src/core/credentials/call/jwt/json_token.h",
+    "src/src/core/credentials/call/jwt/jwt_credentials.cc",
+    "src/src/core/credentials/call/jwt/jwt_credentials.h",
+    "src/src/core/credentials/call/jwt/jwt_verifier.cc",
+    "src/src/core/credentials/call/jwt/jwt_verifier.h",
+    "src/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.cc",
+    "src/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.h",
+    "src/src/core/credentials/call/jwt_util.cc",
+    "src/src/core/credentials/call/jwt_util.h",
+    "src/src/core/credentials/call/oauth2/oauth2_credentials.cc",
+    "src/src/core/credentials/call/oauth2/oauth2_credentials.h",
+    "src/src/core/credentials/call/plugin/plugin_credentials.cc",
+    "src/src/core/credentials/call/plugin/plugin_credentials.h",
+    "src/src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc",
+    "src/src/core/credentials/call/token_fetcher/token_fetcher_credentials.h",
+    "src/src/core/credentials/transport/alts/alts_credentials.cc",
+    "src/src/core/credentials/transport/alts/alts_credentials.h",
+    "src/src/core/credentials/transport/alts/alts_security_connector.cc",
+    "src/src/core/credentials/transport/alts/alts_security_connector.h",
+    "src/src/core/credentials/transport/alts/check_gcp_environment.cc",
+    "src/src/core/credentials/transport/alts/check_gcp_environment.h",
+    "src/src/core/credentials/transport/alts/check_gcp_environment_linux.cc",
+    "src/src/core/credentials/transport/alts/check_gcp_environment_no_op.cc",
+    "src/src/core/credentials/transport/alts/check_gcp_environment_windows.cc",
+    "src/src/core/credentials/transport/alts/grpc_alts_credentials_client_options.cc",
+    "src/src/core/credentials/transport/alts/grpc_alts_credentials_options.cc",
+    "src/src/core/credentials/transport/alts/grpc_alts_credentials_options.h",
+    "src/src/core/credentials/transport/alts/grpc_alts_credentials_server_options.cc",
+    "src/src/core/credentials/transport/channel_creds_registry.h",
+    "src/src/core/credentials/transport/channel_creds_registry_init.cc",
+    "src/src/core/credentials/transport/composite/composite_channel_credentials.cc",
+    "src/src/core/credentials/transport/composite/composite_channel_credentials.h",
+    "src/src/core/credentials/transport/fake/fake_credentials.cc",
+    "src/src/core/credentials/transport/fake/fake_credentials.h",
+    "src/src/core/credentials/transport/fake/fake_security_connector.cc",
+    "src/src/core/credentials/transport/fake/fake_security_connector.h",
+    "src/src/core/credentials/transport/google_default/credentials_generic.cc",
+    "src/src/core/credentials/transport/google_default/google_default_credentials.cc",
+    "src/src/core/credentials/transport/google_default/google_default_credentials.h",
+    "src/src/core/credentials/transport/insecure/insecure_credentials.cc",
+    "src/src/core/credentials/transport/insecure/insecure_credentials.h",
+    "src/src/core/credentials/transport/insecure/insecure_security_connector.cc",
+    "src/src/core/credentials/transport/insecure/insecure_security_connector.h",
+    "src/src/core/credentials/transport/local/local_credentials.cc",
+    "src/src/core/credentials/transport/local/local_credentials.h",
+    "src/src/core/credentials/transport/local/local_security_connector.cc",
+    "src/src/core/credentials/transport/local/local_security_connector.h",
+    "src/src/core/credentials/transport/security_connector.cc",
+    "src/src/core/credentials/transport/security_connector.h",
+    "src/src/core/credentials/transport/ssl/ssl_credentials.cc",
+    "src/src/core/credentials/transport/ssl/ssl_credentials.h",
+    "src/src/core/credentials/transport/ssl/ssl_security_connector.cc",
+    "src/src/core/credentials/transport/ssl/ssl_security_connector.h",
+    "src/src/core/credentials/transport/tls/certificate_provider_factory.h",
+    "src/src/core/credentials/transport/tls/certificate_provider_registry.cc",
+    "src/src/core/credentials/transport/tls/certificate_provider_registry.h",
+    "src/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc",
+    "src/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h",
+    "src/src/core/credentials/transport/tls/grpc_tls_certificate_match.cc",
+    "src/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc",
+    "src/src/core/credentials/transport/tls/grpc_tls_certificate_provider.h",
+    "src/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.cc",
+    "src/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.h",
+    "src/src/core/credentials/transport/tls/grpc_tls_credentials_options.cc",
+    "src/src/core/credentials/transport/tls/grpc_tls_credentials_options.h",
+    "src/src/core/credentials/transport/tls/grpc_tls_crl_provider.cc",
+    "src/src/core/credentials/transport/tls/grpc_tls_crl_provider.h",
+    "src/src/core/credentials/transport/tls/load_system_roots.h",
+    "src/src/core/credentials/transport/tls/load_system_roots_fallback.cc",
+    "src/src/core/credentials/transport/tls/load_system_roots_supported.cc",
+    "src/src/core/credentials/transport/tls/load_system_roots_supported.h",
+    "src/src/core/credentials/transport/tls/load_system_roots_windows.cc",
+    "src/src/core/credentials/transport/tls/spiffe_utils.cc",
+    "src/src/core/credentials/transport/tls/spiffe_utils.h",
+    "src/src/core/credentials/transport/tls/ssl_utils.cc",
+    "src/src/core/credentials/transport/tls/ssl_utils.h",
+    "src/src/core/credentials/transport/tls/tls_credentials.cc",
+    "src/src/core/credentials/transport/tls/tls_credentials.h",
+    "src/src/core/credentials/transport/tls/tls_security_connector.cc",
+    "src/src/core/credentials/transport/tls/tls_security_connector.h",
+    "src/src/core/credentials/transport/tls/tls_utils.cc",
+    "src/src/core/credentials/transport/tls/tls_utils.h",
+    "src/src/core/credentials/transport/transport_credentials.cc",
+    "src/src/core/credentials/transport/transport_credentials.h",
+    "src/src/core/credentials/transport/xds/xds_credentials.cc",
+    "src/src/core/credentials/transport/xds/xds_credentials.h",
     "src/src/core/ext/filters/backend_metrics/backend_metric_filter.cc",
     "src/src/core/ext/filters/backend_metrics/backend_metric_filter.h",
     "src/src/core/ext/filters/backend_metrics/backend_metric_provider.h",
@@ -3838,6 +990,10 @@
     "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/gcp_authentication/gcp_authentication_filter.cc",
+    "src/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h",
+    "src/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.cc",
+    "src/src/core/ext/filters/gcp_authentication/gcp_authentication_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",
@@ -3857,10 +1013,9 @@
     "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/gcp/metadata_query.cc",
-    "src/src/core/ext/gcp/metadata_query.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/chttp2_plugin.cc",
     "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",
@@ -3869,13 +1024,15 @@
     "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/call_tracer_wrapper.cc",
+    "src/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.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_entry.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/flow_control_manager.h",
     "src/src/core/ext/transport/chttp2/transport/frame.cc",
     "src/src/core/ext/transport/chttp2/transport/frame.h",
     "src/src/core/ext/transport/chttp2/transport/frame_data.cc",
@@ -3886,10 +1043,13 @@
     "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_security.cc",
+    "src/src/core/ext/transport/chttp2/transport/frame_security.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/header_assembler.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",
@@ -3901,30 +1061,48 @@
     "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_client_transport.cc",
+    "src/src/core/ext/transport/chttp2/transport/http2_client_transport.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/http2_settings_manager.cc",
+    "src/src/core/ext/transport/chttp2/transport/http2_settings_manager.h",
+    "src/src/core/ext/transport/chttp2/transport/http2_settings_promises.h",
+    "src/src/core/ext/transport/chttp2/transport/http2_stats_collector.cc",
+    "src/src/core/ext/transport/chttp2/transport/http2_stats_collector.h",
+    "src/src/core/ext/transport/chttp2/transport/http2_status.h",
+    "src/src/core/ext/transport/chttp2/transport/http2_transport.cc",
+    "src/src/core/ext/transport/chttp2/transport/http2_transport.h",
+    "src/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.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/internal_channel_arg_names.h",
+    "src/src/core/ext/transport/chttp2/transport/keepalive.cc",
+    "src/src/core/ext/transport/chttp2/transport/keepalive.h",
     "src/src/core/ext/transport/chttp2/transport/legacy_frame.h",
-    "src/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.cc",
-    "src/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.h",
+    "src/src/core/ext/transport/chttp2/transport/message_assembler.h",
     "src/src/core/ext/transport/chttp2/transport/parsing.cc",
     "src/src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc",
     "src/src/core/ext/transport/chttp2/transport/ping_abuse_policy.h",
     "src/src/core/ext/transport/chttp2/transport/ping_callbacks.cc",
     "src/src/core/ext/transport/chttp2/transport/ping_callbacks.h",
+    "src/src/core/ext/transport/chttp2/transport/ping_promise.cc",
+    "src/src/core/ext/transport/chttp2/transport/ping_promise.h",
     "src/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc",
     "src/src/core/ext/transport/chttp2/transport/ping_rate_policy.h",
+    "src/src/core/ext/transport/chttp2/transport/stream.h",
+    "src/src/core/ext/transport/chttp2/transport/stream_data_queue.h",
     "src/src/core/ext/transport/chttp2/transport/stream_lists.cc",
+    "src/src/core/ext/transport/chttp2/transport/stream_lists.h",
+    "src/src/core/ext/transport/chttp2/transport/transport_common.cc",
+    "src/src/core/ext/transport/chttp2/transport/transport_common.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/writable_streams.h",
     "src/src/core/ext/transport/chttp2/transport/write_size_policy.cc",
     "src/src/core/ext/transport/chttp2/transport/write_size_policy.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/transport/inproc/legacy_inproc_transport.cc",
@@ -4031,6 +1209,9 @@
     "src/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb.h",
     "src/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c",
     "src/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.h",
+    "src/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb.h",
+    "src/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.c",
+    "src/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.h",
     "src/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h",
     "src/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c",
     "src/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.h",
@@ -4100,9 +1281,6 @@
     "src/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb.h",
     "src/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.c",
     "src/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.h",
-    "src/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb.h",
-    "src/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.c",
-    "src/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.h",
     "src/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h",
     "src/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c",
     "src/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.h",
@@ -4133,6 +1311,9 @@
     "src/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h",
     "src/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c",
     "src/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.h",
+    "src/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h",
+    "src/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c",
+    "src/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.h",
     "src/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h",
     "src/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c",
     "src/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.h",
@@ -4163,6 +1344,9 @@
     "src/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h",
     "src/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.c",
     "src/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.h",
+    "src/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb.h",
+    "src/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.c",
+    "src/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.h",
     "src/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb.h",
     "src/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.c",
     "src/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.h",
@@ -4199,6 +1383,9 @@
     "src/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb.h",
     "src/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.c",
     "src/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.h",
+    "src/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb.h",
+    "src/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.c",
+    "src/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.h",
     "src/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb.h",
     "src/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c",
     "src/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.h",
@@ -4304,9 +1491,21 @@
     "src/src/core/ext/upb-gen/google/rpc/status.upb.h",
     "src/src/core/ext/upb-gen/google/rpc/status.upb_minitable.c",
     "src/src/core/ext/upb-gen/google/rpc/status.upb_minitable.h",
-    "src/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb.h",
-    "src/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.c",
-    "src/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.c",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.c",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.h",
     "src/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h",
     "src/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c",
     "src/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.h",
@@ -4492,6 +1691,8 @@
     "src/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.h",
     "src/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.c",
     "src/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.h",
+    "src/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_cmsg_headers.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_cmsg_headers.upbdefs.h",
     "src/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.c",
     "src/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.h",
     "src/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.c",
@@ -4538,8 +1739,6 @@
     "src/src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.h",
     "src/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.c",
     "src/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.h",
-    "src/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.c",
-    "src/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.h",
     "src/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.c",
     "src/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.h",
     "src/src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.c",
@@ -4560,6 +1759,8 @@
     "src/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h",
     "src/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c",
     "src/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h",
+    "src/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.h",
     "src/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c",
     "src/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h",
     "src/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.c",
@@ -4570,6 +1771,8 @@
     "src/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h",
     "src/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c",
     "src/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h",
+    "src/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.h",
     "src/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c",
     "src/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h",
     "src/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c",
@@ -4594,6 +1797,8 @@
     "src/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.h",
     "src/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.c",
     "src/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.h",
+    "src/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/address.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/address.upbdefs.h",
     "src/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.c",
     "src/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.h",
     "src/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.c",
@@ -4664,8 +1869,16 @@
     "src/src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.h",
     "src/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.c",
     "src/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.h",
-    "src/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.c",
-    "src/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.h",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/channelz.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/channelz.upbdefs.h",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/channelz.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/channelz.upbdefs.h",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.h",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.h",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/service.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/service.upbdefs.h",
     "src/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c",
     "src/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.h",
     "src/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.c",
@@ -4728,6 +1941,13 @@
     "src/src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.h",
     "src/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.c",
     "src/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.h",
+    "src/src/core/filter/auth/auth_filters.h",
+    "src/src/core/filter/auth/client_auth_filter.cc",
+    "src/src/core/filter/auth/server_auth_filter.cc",
+    "src/src/core/filter/blackboard.cc",
+    "src/src/core/filter/blackboard.h",
+    "src/src/core/filter/filter_args.h",
+    "src/src/core/filter/fused_filters.cc",
     "src/src/core/handshaker/endpoint_info/endpoint_info_handshaker.cc",
     "src/src/core/handshaker/endpoint_info/endpoint_info_handshaker.h",
     "src/src/core/handshaker/handshaker.cc",
@@ -4739,29 +1959,23 @@
     "src/src/core/handshaker/http_connect/http_connect_handshaker.h",
     "src/src/core/handshaker/http_connect/http_proxy_mapper.cc",
     "src/src/core/handshaker/http_connect/http_proxy_mapper.h",
+    "src/src/core/handshaker/http_connect/xds_http_proxy_mapper.cc",
+    "src/src/core/handshaker/http_connect/xds_http_proxy_mapper.h",
     "src/src/core/handshaker/proxy_mapper.h",
     "src/src/core/handshaker/proxy_mapper_registry.cc",
     "src/src/core/handshaker/proxy_mapper_registry.h",
+    "src/src/core/handshaker/security/legacy_secure_endpoint.cc",
+    "src/src/core/handshaker/security/pipelined_secure_endpoint.cc",
     "src/src/core/handshaker/security/secure_endpoint.cc",
     "src/src/core/handshaker/security/secure_endpoint.h",
     "src/src/core/handshaker/security/security_handshaker.cc",
     "src/src/core/handshaker/security/security_handshaker.h",
-    "src/src/core/handshaker/security/tsi_error.cc",
-    "src/src/core/handshaker/security/tsi_error.h",
     "src/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc",
     "src/src/core/handshaker/tcp_connect/tcp_connect_handshaker.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/backoff/random_early_detection.cc",
-    "src/src/core/lib/backoff/random_early_detection.h",
-    "src/src/core/lib/channel/call_finalization.h",
-    "src/src/core/lib/channel/call_tracer.cc",
-    "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",
@@ -4773,39 +1987,26 @@
     "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_stack_trace.cc",
-    "src/src/core/lib/channel/channel_stack_trace.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/metrics.cc",
-    "src/src/core/lib/channel/metrics.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/channel/tcp_tracer.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/debug/trace_flags.cc",
+    "src/src/core/lib/debug/trace_flags.h",
+    "src/src/core/lib/debug/trace_impl.h",
     "src/src/core/lib/event_engine/ares_resolver.cc",
     "src/src/core/lib/event_engine/ares_resolver.h",
     "src/src/core/lib/event_engine/cf_engine/cf_engine.cc",
     "src/src/core/lib/event_engine/cf_engine/cf_engine.h",
+    "src/src/core/lib/event_engine/cf_engine/cfsocket_listener.cc",
+    "src/src/core/lib/event_engine/cf_engine/cfsocket_listener.h",
     "src/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc",
     "src/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h",
     "src/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h",
@@ -4818,13 +2019,18 @@
     "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/endpoint_channel_arg_wrapper.cc",
+    "src/src/core/lib/event_engine/endpoint_channel_arg_wrapper.h",
     "src/src/core/lib/event_engine/event_engine.cc",
     "src/src/core/lib/event_engine/event_engine_context.h",
+    "src/src/core/lib/event_engine/extensions/blocking_dns.h",
     "src/src/core/lib/event_engine/extensions/can_track_errors.h",
+    "src/src/core/lib/event_engine/extensions/channelz.h",
     "src/src/core/lib/event_engine/extensions/chaotic_good_extension.h",
+    "src/src/core/lib/event_engine/extensions/iomgr_compatible.h",
     "src/src/core/lib/event_engine/extensions/supports_fd.h",
-    "src/src/core/lib/event_engine/forkable.cc",
-    "src/src/core/lib/event_engine/forkable.h",
+    "src/src/core/lib/event_engine/extensions/supports_win_sockets.h",
+    "src/src/core/lib/event_engine/extensions/tcp_trace.h",
     "src/src/core/lib/event_engine/grpc_polled_fd.h",
     "src/src/core/lib/event_engine/handle_containers.h",
     "src/src/core/lib/event_engine/memory_allocator_factory.h",
@@ -4838,6 +2044,8 @@
     "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/file_descriptor_collection.cc",
+    "src/src/core/lib/event_engine/posix_engine/file_descriptor_collection.h",
     "src/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h",
     "src/src/core/lib/event_engine/posix_engine/internal_errqueue.cc",
     "src/src/core/lib/event_engine/posix_engine/internal_errqueue.h",
@@ -4854,6 +2062,12 @@
     "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/posix_interface.h",
+    "src/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc",
+    "src/src/core/lib/event_engine/posix_engine/posix_interface_windows.cc",
+    "src/src/core/lib/event_engine/posix_engine/posix_write_event_sink.cc",
+    "src/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h",
+    "src/src/core/lib/event_engine/posix_engine/set_socket_dualstack.cc",
     "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",
@@ -4891,8 +2105,6 @@
     "src/src/core/lib/event_engine/thready_event_engine/thready_event_engine.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/grpc_polled_fd_windows.cc",
@@ -4916,57 +2128,6 @@
     "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/directory_reader.h",
-    "src/src/core/lib/gprpp/down_cast.h",
-    "src/src/core/lib/gprpp/dual_ref_counted.h",
-    "src/src/core/lib/gprpp/if_list.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.cc",
-    "src/src/core/lib/gprpp/per_cpu.h",
-    "src/src/core/lib/gprpp/posix/directory_reader.cc",
-    "src/src/core/lib/gprpp/ref_counted.h",
-    "src/src/core/lib/gprpp/ref_counted_ptr.h",
-    "src/src/core/lib/gprpp/ref_counted_string.cc",
-    "src/src/core/lib/gprpp/ref_counted_string.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/type_list.h",
-    "src/src/core/lib/gprpp/unique_type_name.h",
-    "src/src/core/lib/gprpp/uuid_v4.cc",
-    "src/src/core/lib/gprpp/uuid_v4.h",
-    "src/src/core/lib/gprpp/validation_errors.cc",
-    "src/src/core/lib/gprpp/validation_errors.h",
-    "src/src/core/lib/gprpp/windows/directory_reader.cc",
-    "src/src/core/lib/gprpp/work_serializer.cc",
-    "src/src/core/lib/gprpp/work_serializer.h",
-    "src/src/core/lib/gprpp/xxhash_inline.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",
@@ -4999,7 +2160,6 @@
     "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",
@@ -5008,17 +2168,8 @@
     "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",
@@ -5045,7 +2196,6 @@
     "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",
@@ -5109,19 +2259,6 @@
     "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_reader.h",
-    "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/json/json_writer.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/all_ok.h",
@@ -5132,15 +2269,22 @@
     "src/src/core/lib/promise/detail/join_state.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/promise_variant.h",
     "src/src/core/lib/promise/detail/seq_state.h",
     "src/src/core/lib/promise/detail/status.h",
     "src/src/core/lib/promise/exec_ctx_wakeup_scheduler.h",
     "src/src/core/lib/promise/for_each.h",
     "src/src/core/lib/promise/if.h",
+    "src/src/core/lib/promise/inter_activity_latch.h",
+    "src/src/core/lib/promise/inter_activity_mutex.h",
     "src/src/core/lib/promise/interceptor_list.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/match_promise.h",
+    "src/src/core/lib/promise/mpsc.cc",
+    "src/src/core/lib/promise/mpsc.h",
+    "src/src/core/lib/promise/observable.h",
     "src/src/core/lib/promise/party.cc",
     "src/src/core/lib/promise/party.h",
     "src/src/core/lib/promise/pipe.h",
@@ -5152,10 +2296,10 @@
     "src/src/core/lib/promise/sleep.cc",
     "src/src/core/lib/promise/sleep.h",
     "src/src/core/lib/promise/status_flag.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/promise/wait_set.cc",
+    "src/src/core/lib/promise/wait_set.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",
@@ -5168,10 +2312,11 @@
     "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/telemetry.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/resource_tracker/resource_tracker.cc",
+    "src/src/core/lib/resource_tracker/resource_tracker.h",
     "src/src/core/lib/security/authorization/audit_logging.cc",
     "src/src/core/lib/security/authorization/audit_logging.h",
     "src/src/core/lib/security/authorization/authorization_engine.h",
@@ -5189,106 +2334,6 @@
     "src/src/core/lib/security/authorization/rbac_policy.h",
     "src/src/core/lib/security/authorization/stdout_logger.cc",
     "src/src/core/lib/security/authorization/stdout_logger.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_match.cc",
-    "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/grpc_tls_crl_provider.cc",
-    "src/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.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/load_system_roots_windows.cc",
-    "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/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/server_auth_filter.cc",
-    "src/src/core/lib/security/util/json_util.cc",
-    "src/src/core/lib/security/util/json_util.h",
     "src/src/core/lib/slice/percent_encoding.cc",
     "src/src/core/lib/slice/percent_encoding.h",
     "src/src/core/lib/slice/slice.cc",
@@ -5296,12 +2341,9 @@
     "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/byte_buffer.cc",
     "src/src/core/lib/surface/byte_buffer_reader.cc",
     "src/src/core/lib/surface/call.cc",
@@ -5309,7 +2351,8 @@
     "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.h",
+    "src/src/core/lib/surface/call_utils.cc",
+    "src/src/core/lib/surface/call_utils.h",
     "src/src/core/lib/surface/channel.cc",
     "src/src/core/lib/surface/channel.h",
     "src/src/core/lib/surface/channel_create.cc",
@@ -5322,8 +2365,12 @@
     "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/connection_context.cc",
+    "src/src/core/lib/surface/connection_context.h",
     "src/src/core/lib/surface/event_string.cc",
     "src/src/core/lib/surface/event_string.h",
+    "src/src/core/lib/surface/filter_stack_call.cc",
+    "src/src/core/lib/surface/filter_stack_call.h",
     "src/src/core/lib/surface/init.cc",
     "src/src/core/lib/surface/init.h",
     "src/src/core/lib/surface/init_internally.cc",
@@ -5336,48 +2383,25 @@
     "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/surface/wait_for_cq_end_op.cc",
-    "src/src/core/lib/surface/wait_for_cq_end_op.h",
-    "src/src/core/lib/transport/batch_builder.cc",
-    "src/src/core/lib/transport/batch_builder.h",
     "src/src/core/lib/transport/bdp_estimator.cc",
     "src/src/core/lib/transport/bdp_estimator.h",
-    "src/src/core/lib/transport/call_arena_allocator.cc",
-    "src/src/core/lib/transport/call_arena_allocator.h",
-    "src/src/core/lib/transport/call_filters.cc",
-    "src/src/core/lib/transport/call_filters.h",
     "src/src/core/lib/transport/call_final_info.cc",
     "src/src/core/lib/transport/call_final_info.h",
-    "src/src/core/lib/transport/call_spine.cc",
-    "src/src/core/lib/transport/call_spine.h",
     "src/src/core/lib/transport/connectivity_state.cc",
     "src/src/core/lib/transport/connectivity_state.h",
-    "src/src/core/lib/transport/custom_metadata.h",
     "src/src/core/lib/transport/error_utils.cc",
     "src/src/core/lib/transport/error_utils.h",
-    "src/src/core/lib/transport/http2_errors.h",
-    "src/src/core/lib/transport/message.cc",
-    "src/src/core/lib/transport/message.h",
-    "src/src/core/lib/transport/metadata.cc",
-    "src/src/core/lib/transport/metadata.h",
-    "src/src/core/lib/transport/metadata_batch.cc",
-    "src/src/core/lib/transport/metadata_batch.h",
-    "src/src/core/lib/transport/metadata_compression_traits.h",
-    "src/src/core/lib/transport/metadata_info.cc",
-    "src/src/core/lib/transport/metadata_info.h",
-    "src/src/core/lib/transport/parsed_metadata.cc",
-    "src/src/core/lib/transport/parsed_metadata.h",
-    "src/src/core/lib/transport/simple_slice_based_metadata.h",
+    "src/src/core/lib/transport/promise_endpoint.cc",
+    "src/src/core/lib/transport/promise_endpoint.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_framing_endpoint_extension.h",
     "src/src/core/lib/transport/transport_fwd.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/load_balancing/address_filtering.cc",
     "src/src/core/load_balancing/address_filtering.h",
     "src/src/core/load_balancing/backend_metric_data.h",
@@ -5432,9 +2456,10 @@
     "src/src/core/load_balancing/xds/xds_override_host.cc",
     "src/src/core/load_balancing/xds/xds_override_host.h",
     "src/src/core/load_balancing/xds/xds_wrr_locality.cc",
+    "src/src/core/net/socket_mutator.cc",
+    "src/src/core/net/socket_mutator.h",
     "src/src/core/plugin_registry/grpc_plugin_registry.cc",
     "src/src/core/plugin_registry/grpc_plugin_registry_extra.cc",
-    "src/src/core/resolver/binder/binder_resolver.cc",
     "src/src/core/resolver/dns/c_ares/dns_resolver_ares.cc",
     "src/src/core/resolver/dns/c_ares/dns_resolver_ares.h",
     "src/src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h",
@@ -5466,12 +2491,13 @@
     "src/src/core/resolver/resolver_registry.h",
     "src/src/core/resolver/server_address.h",
     "src/src/core/resolver/sockaddr/sockaddr_resolver.cc",
+    "src/src/core/resolver/xds/xds_config.cc",
+    "src/src/core/resolver/xds/xds_config.h",
     "src/src/core/resolver/xds/xds_dependency_manager.cc",
     "src/src/core/resolver/xds/xds_dependency_manager.h",
     "src/src/core/resolver/xds/xds_resolver.cc",
     "src/src/core/resolver/xds/xds_resolver_attributes.h",
-    "src/src/core/resolver/xds/xds_resolver_trace.cc",
-    "src/src/core/resolver/xds/xds_resolver_trace.h",
+    "src/src/core/server/add_port.cc",
     "src/src/core/server/server.cc",
     "src/src/core/server/server.h",
     "src/src/core/server/server_call_tracer_filter.cc",
@@ -5486,10 +2512,36 @@
     "src/src/core/service_config/service_config.h",
     "src/src/core/service_config/service_config_call_data.h",
     "src/src/core/service_config/service_config_channel_arg_filter.cc",
+    "src/src/core/service_config/service_config_channel_arg_filter.h",
     "src/src/core/service_config/service_config_impl.cc",
     "src/src/core/service_config/service_config_impl.h",
     "src/src/core/service_config/service_config_parser.cc",
     "src/src/core/service_config/service_config_parser.h",
+    "src/src/core/telemetry/call_tracer.cc",
+    "src/src/core/telemetry/call_tracer.h",
+    "src/src/core/telemetry/context_list_entry.cc",
+    "src/src/core/telemetry/context_list_entry.h",
+    "src/src/core/telemetry/default_tcp_tracer.cc",
+    "src/src/core/telemetry/default_tcp_tracer.h",
+    "src/src/core/telemetry/histogram.h",
+    "src/src/core/telemetry/histogram_view.cc",
+    "src/src/core/telemetry/histogram_view.h",
+    "src/src/core/telemetry/instrument.cc",
+    "src/src/core/telemetry/instrument.h",
+    "src/src/core/telemetry/metrics.cc",
+    "src/src/core/telemetry/metrics.h",
+    "src/src/core/telemetry/stats.cc",
+    "src/src/core/telemetry/stats.h",
+    "src/src/core/telemetry/stats_data.cc",
+    "src/src/core/telemetry/stats_data.h",
+    "src/src/core/telemetry/tcp_tracer.cc",
+    "src/src/core/telemetry/tcp_tracer.h",
+    "src/src/core/transport/auth_context.cc",
+    "src/src/core/transport/auth_context.h",
+    "src/src/core/transport/auth_context_comparator_registry.h",
+    "src/src/core/transport/endpoint_transport.h",
+    "src/src/core/transport/endpoint_transport_client_channel_factory.cc",
+    "src/src/core/transport/endpoint_transport_client_channel_factory.h",
     "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",
@@ -5548,11 +2600,113 @@
     "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/src/core/util/atomic_utils.h",
+    "src/src/core/util/avl.h",
+    "src/src/core/util/backoff.cc",
+    "src/src/core/util/backoff.h",
+    "src/src/core/util/bitset.h",
+    "src/src/core/util/check_class_size.h",
+    "src/src/core/util/chunked_vector.h",
+    "src/src/core/util/cpp_impl_of.h",
+    "src/src/core/util/directory_reader.h",
+    "src/src/core/util/down_cast.h",
+    "src/src/core/util/dual_ref_counted.h",
+    "src/src/core/util/dump_args.cc",
+    "src/src/core/util/dump_args.h",
+    "src/src/core/util/event_log.cc",
+    "src/src/core/util/event_log.h",
+    "src/src/core/util/function_signature.h",
+    "src/src/core/util/gcp_metadata_query.cc",
+    "src/src/core/util/gcp_metadata_query.h",
+    "src/src/core/util/gethostname.h",
+    "src/src/core/util/gethostname_fallback.cc",
+    "src/src/core/util/gethostname_host_name_max.cc",
+    "src/src/core/util/gethostname_sysconf.cc",
+    "src/src/core/util/glob.cc",
+    "src/src/core/util/glob.h",
+    "src/src/core/util/grpc_check.cc",
+    "src/src/core/util/grpc_check.h",
+    "src/src/core/util/grpc_if_nametoindex.h",
+    "src/src/core/util/grpc_if_nametoindex_posix.cc",
+    "src/src/core/util/grpc_if_nametoindex_unsupported.cc",
+    "src/src/core/util/http_client/format_request.cc",
+    "src/src/core/util/http_client/format_request.h",
+    "src/src/core/util/http_client/httpcli.cc",
+    "src/src/core/util/http_client/httpcli.h",
+    "src/src/core/util/http_client/httpcli_security_connector.cc",
+    "src/src/core/util/http_client/httpcli_ssl_credentials.h",
+    "src/src/core/util/http_client/parser.cc",
+    "src/src/core/util/http_client/parser.h",
+    "src/src/core/util/if_list.h",
+    "src/src/core/util/json/json.h",
+    "src/src/core/util/json/json_args.h",
+    "src/src/core/util/json/json_channel_args.h",
+    "src/src/core/util/json/json_object_loader.cc",
+    "src/src/core/util/json/json_object_loader.h",
+    "src/src/core/util/json/json_reader.cc",
+    "src/src/core/util/json/json_reader.h",
+    "src/src/core/util/json/json_util.cc",
+    "src/src/core/util/json/json_util.h",
+    "src/src/core/util/json/json_writer.cc",
+    "src/src/core/util/json/json_writer.h",
+    "src/src/core/util/latent_see.cc",
+    "src/src/core/util/latent_see.h",
+    "src/src/core/util/load_file.cc",
+    "src/src/core/util/load_file.h",
+    "src/src/core/util/lru_cache.h",
+    "src/src/core/util/manual_constructor.h",
+    "src/src/core/util/match.h",
+    "src/src/core/util/matchers.cc",
+    "src/src/core/util/matchers.h",
+    "src/src/core/util/memory_usage.h",
+    "src/src/core/util/notification.h",
+    "src/src/core/util/orphanable.h",
+    "src/src/core/util/overload.h",
+    "src/src/core/util/packed_table.h",
+    "src/src/core/util/per_cpu.cc",
+    "src/src/core/util/per_cpu.h",
+    "src/src/core/util/posix/directory_reader.cc",
+    "src/src/core/util/postmortem_emit.cc",
+    "src/src/core/util/postmortem_emit.h",
+    "src/src/core/util/random_early_detection.cc",
+    "src/src/core/util/random_early_detection.h",
+    "src/src/core/util/ref_counted.h",
+    "src/src/core/util/ref_counted_ptr.h",
+    "src/src/core/util/ref_counted_string.cc",
+    "src/src/core/util/ref_counted_string.h",
+    "src/src/core/util/shared_bit_gen.cc",
+    "src/src/core/util/shared_bit_gen.h",
+    "src/src/core/util/single_set_ptr.h",
+    "src/src/core/util/sorted_pack.h",
+    "src/src/core/util/spinlock.h",
+    "src/src/core/util/status_helper.cc",
+    "src/src/core/util/status_helper.h",
+    "src/src/core/util/table.h",
+    "src/src/core/util/time.cc",
+    "src/src/core/util/time.h",
+    "src/src/core/util/time_averaged_stats.cc",
+    "src/src/core/util/time_averaged_stats.h",
+    "src/src/core/util/trie_lookup.h",
+    "src/src/core/util/type_list.h",
+    "src/src/core/util/unique_ptr_with_bitset.h",
+    "src/src/core/util/unique_type_name.h",
+    "src/src/core/util/upb_utils.h",
+    "src/src/core/util/uri.cc",
+    "src/src/core/util/uri.h",
+    "src/src/core/util/uuid_v4.cc",
+    "src/src/core/util/uuid_v4.h",
+    "src/src/core/util/validation_errors.cc",
+    "src/src/core/util/validation_errors.h",
+    "src/src/core/util/wait_for_single_owner.cc",
+    "src/src/core/util/wait_for_single_owner.h",
+    "src/src/core/util/windows/directory_reader.cc",
+    "src/src/core/util/work_serializer.cc",
+    "src/src/core/util/work_serializer.h",
+    "src/src/core/util/xxhash_inline.h",
     "src/src/core/xds/grpc/certificate_provider_store.cc",
     "src/src/core/xds/grpc/certificate_provider_store.h",
     "src/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc",
     "src/src/core/xds/grpc/file_watcher_certificate_provider_factory.h",
-    "src/src/core/xds/grpc/upb_utils.h",
     "src/src/core/xds/grpc/xds_audit_logger_registry.cc",
     "src/src/core/xds/grpc/xds_audit_logger_registry.h",
     "src/src/core/xds/grpc/xds_bootstrap_grpc.cc",
@@ -5563,18 +2717,27 @@
     "src/src/core/xds/grpc/xds_client_grpc.h",
     "src/src/core/xds/grpc/xds_cluster.cc",
     "src/src/core/xds/grpc/xds_cluster.h",
+    "src/src/core/xds/grpc/xds_cluster_parser.cc",
+    "src/src/core/xds/grpc/xds_cluster_parser.h",
     "src/src/core/xds/grpc/xds_cluster_specifier_plugin.cc",
     "src/src/core/xds/grpc/xds_cluster_specifier_plugin.h",
     "src/src/core/xds/grpc/xds_common_types.cc",
     "src/src/core/xds/grpc/xds_common_types.h",
+    "src/src/core/xds/grpc/xds_common_types_parser.cc",
+    "src/src/core/xds/grpc/xds_common_types_parser.h",
     "src/src/core/xds/grpc/xds_endpoint.cc",
     "src/src/core/xds/grpc/xds_endpoint.h",
+    "src/src/core/xds/grpc/xds_endpoint_parser.cc",
+    "src/src/core/xds/grpc/xds_endpoint_parser.h",
     "src/src/core/xds/grpc/xds_health_status.cc",
     "src/src/core/xds/grpc/xds_health_status.h",
     "src/src/core/xds/grpc/xds_http_fault_filter.cc",
     "src/src/core/xds/grpc/xds_http_fault_filter.h",
-    "src/src/core/xds/grpc/xds_http_filters.cc",
-    "src/src/core/xds/grpc/xds_http_filters.h",
+    "src/src/core/xds/grpc/xds_http_filter.h",
+    "src/src/core/xds/grpc/xds_http_filter_registry.cc",
+    "src/src/core/xds/grpc/xds_http_filter_registry.h",
+    "src/src/core/xds/grpc/xds_http_gcp_authn_filter.cc",
+    "src/src/core/xds/grpc/xds_http_gcp_authn_filter.h",
     "src/src/core/xds/grpc/xds_http_rbac_filter.cc",
     "src/src/core/xds/grpc/xds_http_rbac_filter.h",
     "src/src/core/xds/grpc/xds_http_stateful_session_filter.cc",
@@ -5583,21 +2746,45 @@
     "src/src/core/xds/grpc/xds_lb_policy_registry.h",
     "src/src/core/xds/grpc/xds_listener.cc",
     "src/src/core/xds/grpc/xds_listener.h",
+    "src/src/core/xds/grpc/xds_listener_parser.cc",
+    "src/src/core/xds/grpc/xds_listener_parser.h",
+    "src/src/core/xds/grpc/xds_matcher.cc",
+    "src/src/core/xds/grpc/xds_matcher.h",
+    "src/src/core/xds/grpc/xds_matcher_action.cc",
+    "src/src/core/xds/grpc/xds_matcher_action.h",
+    "src/src/core/xds/grpc/xds_matcher_context.cc",
+    "src/src/core/xds/grpc/xds_matcher_context.h",
+    "src/src/core/xds/grpc/xds_matcher_input.cc",
+    "src/src/core/xds/grpc/xds_matcher_input.h",
+    "src/src/core/xds/grpc/xds_matcher_parse.cc",
+    "src/src/core/xds/grpc/xds_matcher_parse.h",
+    "src/src/core/xds/grpc/xds_metadata.cc",
+    "src/src/core/xds/grpc/xds_metadata.h",
+    "src/src/core/xds/grpc/xds_metadata_parser.cc",
+    "src/src/core/xds/grpc/xds_metadata_parser.h",
     "src/src/core/xds/grpc/xds_route_config.cc",
     "src/src/core/xds/grpc/xds_route_config.h",
+    "src/src/core/xds/grpc/xds_route_config_parser.cc",
+    "src/src/core/xds/grpc/xds_route_config_parser.h",
     "src/src/core/xds/grpc/xds_routing.cc",
     "src/src/core/xds/grpc/xds_routing.h",
+    "src/src/core/xds/grpc/xds_server_grpc.cc",
+    "src/src/core/xds/grpc/xds_server_grpc.h",
+    "src/src/core/xds/grpc/xds_server_grpc_interface.h",
     "src/src/core/xds/grpc/xds_transport_grpc.cc",
     "src/src/core/xds/grpc/xds_transport_grpc.h",
+    "src/src/core/xds/xds_client/lrs_client.cc",
+    "src/src/core/xds/xds_client/lrs_client.h",
     "src/src/core/xds/xds_client/xds_api.cc",
     "src/src/core/xds/xds_client/xds_api.h",
+    "src/src/core/xds/xds_client/xds_backend_metric_propagation.cc",
+    "src/src/core/xds/xds_client/xds_backend_metric_propagation.h",
     "src/src/core/xds/xds_client/xds_bootstrap.cc",
     "src/src/core/xds/xds_client/xds_bootstrap.h",
     "src/src/core/xds/xds_client/xds_channel_args.h",
     "src/src/core/xds/xds_client/xds_client.cc",
     "src/src/core/xds/xds_client/xds_client.h",
-    "src/src/core/xds/xds_client/xds_client_stats.cc",
-    "src/src/core/xds/xds_client/xds_client_stats.h",
+    "src/src/core/xds/xds_client/xds_locality.h",
     "src/src/core/xds/xds_client/xds_metrics.h",
     "src/src/core/xds/xds_client/xds_resource_type.h",
     "src/src/core/xds/xds_client/xds_resource_type_impl.h",
@@ -5606,28 +2793,13 @@
     "src/third_party/xxhash/xxhash.h",
   ]
   public_deps = [
-    ":absl_algorithm_container",
-    ":absl_base_config",
-    ":absl_base_no_destructor",
-    ":absl_cleanup_cleanup",
-    ":absl_container_flat_hash_map",
-    ":absl_container_flat_hash_set",
-    ":absl_container_inlined_vector",
-    ":absl_functional_bind_front",
-    ":absl_functional_function_ref",
-    ":absl_hash_hash",
-    ":absl_meta_type_traits",
-    ":absl_random_bit_gen_ref",
-    ":absl_random_distributions",
-    ":absl_status_statusor",
-    ":absl_types_span",
-    ":absl_utility_utility",
     ":address_sorting",
     ":boringssl",
     ":gpr",
     ":re2",
     ":upb_json_lib",
     ":upb_textformat_lib",
+    "..:abseil_cpp",
     "..:zlib",
   ]
   public_configs = [ "..:grpc_internal_config" ]
@@ -5637,14 +2809,58 @@
 
 source_set("grpc_unsecure") {
   sources = [
+    "src/src/core/call/call_arena_allocator.cc",
+    "src/src/core/call/call_arena_allocator.h",
+    "src/src/core/call/call_destination.h",
+    "src/src/core/call/call_filters.cc",
+    "src/src/core/call/call_filters.h",
+    "src/src/core/call/call_finalization.h",
+    "src/src/core/call/call_spine.cc",
+    "src/src/core/call/call_spine.h",
+    "src/src/core/call/call_state.cc",
+    "src/src/core/call/call_state.h",
+    "src/src/core/call/client_call.cc",
+    "src/src/core/call/client_call.h",
+    "src/src/core/call/custom_metadata.h",
+    "src/src/core/call/filter_fusion.h",
+    "src/src/core/call/interception_chain.cc",
+    "src/src/core/call/interception_chain.h",
+    "src/src/core/call/message.cc",
+    "src/src/core/call/message.h",
+    "src/src/core/call/metadata.cc",
+    "src/src/core/call/metadata.h",
+    "src/src/core/call/metadata_batch.cc",
+    "src/src/core/call/metadata_batch.h",
+    "src/src/core/call/metadata_compression_traits.h",
+    "src/src/core/call/metadata_info.cc",
+    "src/src/core/call/metadata_info.h",
+    "src/src/core/call/parsed_metadata.cc",
+    "src/src/core/call/parsed_metadata.h",
+    "src/src/core/call/request_buffer.cc",
+    "src/src/core/call/request_buffer.h",
+    "src/src/core/call/security_context.cc",
+    "src/src/core/call/security_context.h",
+    "src/src/core/call/server_call.cc",
+    "src/src/core/call/server_call.h",
+    "src/src/core/call/simple_slice_based_metadata.h",
+    "src/src/core/call/status_util.cc",
+    "src/src/core/call/status_util.h",
     "src/src/core/channelz/channel_trace.cc",
     "src/src/core/channelz/channel_trace.h",
     "src/src/core/channelz/channelz.cc",
     "src/src/core/channelz/channelz.h",
     "src/src/core/channelz/channelz_registry.cc",
     "src/src/core/channelz/channelz_registry.h",
+    "src/src/core/channelz/property_list.cc",
+    "src/src/core/channelz/property_list.h",
+    "src/src/core/channelz/text_encode.cc",
+    "src/src/core/channelz/text_encode.h",
+    "src/src/core/channelz/ztrace_collector.h",
     "src/src/core/client_channel/backup_poller.cc",
     "src/src/core/client_channel/backup_poller.h",
+    "src/src/core/client_channel/client_channel.cc",
+    "src/src/core/client_channel/client_channel.h",
+    "src/src/core/client_channel/client_channel_args.h",
     "src/src/core/client_channel/client_channel_factory.cc",
     "src/src/core/client_channel/client_channel_factory.h",
     "src/src/core/client_channel/client_channel_filter.cc",
@@ -5653,19 +2869,26 @@
     "src/src/core/client_channel/client_channel_plugin.cc",
     "src/src/core/client_channel/client_channel_service_config.cc",
     "src/src/core/client_channel/client_channel_service_config.h",
-    "src/src/core/client_channel/config_selector.cc",
     "src/src/core/client_channel/config_selector.h",
     "src/src/core/client_channel/connector.h",
+    "src/src/core/client_channel/direct_channel.cc",
+    "src/src/core/client_channel/direct_channel.h",
     "src/src/core/client_channel/dynamic_filters.cc",
     "src/src/core/client_channel/dynamic_filters.h",
     "src/src/core/client_channel/global_subchannel_pool.cc",
     "src/src/core/client_channel/global_subchannel_pool.h",
+    "src/src/core/client_channel/lb_metadata.cc",
+    "src/src/core/client_channel/lb_metadata.h",
+    "src/src/core/client_channel/load_balanced_call_destination.cc",
+    "src/src/core/client_channel/load_balanced_call_destination.h",
     "src/src/core/client_channel/local_subchannel_pool.cc",
     "src/src/core/client_channel/local_subchannel_pool.h",
     "src/src/core/client_channel/retry_filter.cc",
     "src/src/core/client_channel/retry_filter.h",
     "src/src/core/client_channel/retry_filter_legacy_call_data.cc",
     "src/src/core/client_channel/retry_filter_legacy_call_data.h",
+    "src/src/core/client_channel/retry_interceptor.cc",
+    "src/src/core/client_channel/retry_interceptor.h",
     "src/src/core/client_channel/retry_service_config.cc",
     "src/src/core/client_channel/retry_service_config.h",
     "src/src/core/client_channel/retry_throttle.cc",
@@ -5677,6 +2900,52 @@
     "src/src/core/client_channel/subchannel_pool_interface.h",
     "src/src/core/client_channel/subchannel_stream_client.cc",
     "src/src/core/client_channel/subchannel_stream_client.h",
+    "src/src/core/config/core_configuration.cc",
+    "src/src/core/config/core_configuration.h",
+    "src/src/core/credentials/call/call_credentials.h",
+    "src/src/core/credentials/call/call_creds_registry.h",
+    "src/src/core/credentials/call/call_creds_util.cc",
+    "src/src/core/credentials/call/call_creds_util.h",
+    "src/src/core/credentials/call/composite/composite_call_credentials.cc",
+    "src/src/core/credentials/call/composite/composite_call_credentials.h",
+    "src/src/core/credentials/call/json_util.cc",
+    "src/src/core/credentials/call/json_util.h",
+    "src/src/core/credentials/call/plugin/plugin_credentials.cc",
+    "src/src/core/credentials/call/plugin/plugin_credentials.h",
+    "src/src/core/credentials/transport/alts/check_gcp_environment.cc",
+    "src/src/core/credentials/transport/alts/check_gcp_environment.h",
+    "src/src/core/credentials/transport/alts/check_gcp_environment_linux.cc",
+    "src/src/core/credentials/transport/alts/check_gcp_environment_no_op.cc",
+    "src/src/core/credentials/transport/alts/check_gcp_environment_windows.cc",
+    "src/src/core/credentials/transport/alts/grpc_alts_credentials_client_options.cc",
+    "src/src/core/credentials/transport/alts/grpc_alts_credentials_options.cc",
+    "src/src/core/credentials/transport/alts/grpc_alts_credentials_options.h",
+    "src/src/core/credentials/transport/alts/grpc_alts_credentials_server_options.cc",
+    "src/src/core/credentials/transport/channel_creds_registry.h",
+    "src/src/core/credentials/transport/composite/composite_channel_credentials.cc",
+    "src/src/core/credentials/transport/composite/composite_channel_credentials.h",
+    "src/src/core/credentials/transport/fake/fake_credentials.cc",
+    "src/src/core/credentials/transport/fake/fake_credentials.h",
+    "src/src/core/credentials/transport/fake/fake_security_connector.cc",
+    "src/src/core/credentials/transport/fake/fake_security_connector.h",
+    "src/src/core/credentials/transport/insecure/insecure_credentials.cc",
+    "src/src/core/credentials/transport/insecure/insecure_credentials.h",
+    "src/src/core/credentials/transport/insecure/insecure_security_connector.cc",
+    "src/src/core/credentials/transport/insecure/insecure_security_connector.h",
+    "src/src/core/credentials/transport/security_connector.cc",
+    "src/src/core/credentials/transport/security_connector.h",
+    "src/src/core/credentials/transport/tls/certificate_provider_factory.h",
+    "src/src/core/credentials/transport/tls/certificate_provider_registry.cc",
+    "src/src/core/credentials/transport/tls/certificate_provider_registry.h",
+    "src/src/core/credentials/transport/tls/load_system_roots.h",
+    "src/src/core/credentials/transport/tls/load_system_roots_fallback.cc",
+    "src/src/core/credentials/transport/tls/load_system_roots_supported.cc",
+    "src/src/core/credentials/transport/tls/load_system_roots_supported.h",
+    "src/src/core/credentials/transport/tls/load_system_roots_windows.cc",
+    "src/src/core/credentials/transport/tls/tls_utils.cc",
+    "src/src/core/credentials/transport/tls/tls_utils.h",
+    "src/src/core/credentials/transport/transport_credentials.cc",
+    "src/src/core/credentials/transport/transport_credentials.h",
     "src/src/core/ext/filters/backend_metrics/backend_metric_filter.cc",
     "src/src/core/ext/filters/backend_metrics/backend_metric_filter.h",
     "src/src/core/ext/filters/backend_metrics/backend_metric_provider.h",
@@ -5700,6 +2969,7 @@
     "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/chttp2_plugin.cc",
     "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",
@@ -5708,13 +2978,15 @@
     "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/call_tracer_wrapper.cc",
+    "src/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.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_entry.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/flow_control_manager.h",
     "src/src/core/ext/transport/chttp2/transport/frame.cc",
     "src/src/core/ext/transport/chttp2/transport/frame.h",
     "src/src/core/ext/transport/chttp2/transport/frame_data.cc",
@@ -5725,10 +2997,13 @@
     "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_security.cc",
+    "src/src/core/ext/transport/chttp2/transport/frame_security.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/header_assembler.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",
@@ -5740,30 +3015,48 @@
     "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_client_transport.cc",
+    "src/src/core/ext/transport/chttp2/transport/http2_client_transport.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/http2_settings_manager.cc",
+    "src/src/core/ext/transport/chttp2/transport/http2_settings_manager.h",
+    "src/src/core/ext/transport/chttp2/transport/http2_settings_promises.h",
+    "src/src/core/ext/transport/chttp2/transport/http2_stats_collector.cc",
+    "src/src/core/ext/transport/chttp2/transport/http2_stats_collector.h",
+    "src/src/core/ext/transport/chttp2/transport/http2_status.h",
+    "src/src/core/ext/transport/chttp2/transport/http2_transport.cc",
+    "src/src/core/ext/transport/chttp2/transport/http2_transport.h",
+    "src/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.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/internal_channel_arg_names.h",
+    "src/src/core/ext/transport/chttp2/transport/keepalive.cc",
+    "src/src/core/ext/transport/chttp2/transport/keepalive.h",
     "src/src/core/ext/transport/chttp2/transport/legacy_frame.h",
-    "src/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.cc",
-    "src/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.h",
+    "src/src/core/ext/transport/chttp2/transport/message_assembler.h",
     "src/src/core/ext/transport/chttp2/transport/parsing.cc",
     "src/src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc",
     "src/src/core/ext/transport/chttp2/transport/ping_abuse_policy.h",
     "src/src/core/ext/transport/chttp2/transport/ping_callbacks.cc",
     "src/src/core/ext/transport/chttp2/transport/ping_callbacks.h",
+    "src/src/core/ext/transport/chttp2/transport/ping_promise.cc",
+    "src/src/core/ext/transport/chttp2/transport/ping_promise.h",
     "src/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc",
     "src/src/core/ext/transport/chttp2/transport/ping_rate_policy.h",
+    "src/src/core/ext/transport/chttp2/transport/stream.h",
+    "src/src/core/ext/transport/chttp2/transport/stream_data_queue.h",
     "src/src/core/ext/transport/chttp2/transport/stream_lists.cc",
+    "src/src/core/ext/transport/chttp2/transport/stream_lists.h",
+    "src/src/core/ext/transport/chttp2/transport/transport_common.cc",
+    "src/src/core/ext/transport/chttp2/transport/transport_common.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/writable_streams.h",
     "src/src/core/ext/transport/chttp2/transport/write_size_policy.cc",
     "src/src/core/ext/transport/chttp2/transport/write_size_policy.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/transport/inproc/legacy_inproc_transport.cc",
@@ -5798,6 +3091,18 @@
     "src/src/core/ext/upb-gen/google/rpc/status.upb.h",
     "src/src/core/ext/upb-gen/google/rpc/status.upb_minitable.c",
     "src/src/core/ext/upb-gen/google/rpc/status.upb_minitable.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.c",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.h",
     "src/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h",
     "src/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c",
     "src/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.h",
@@ -5825,6 +3130,29 @@
     "src/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb.h",
     "src/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c",
     "src/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.h",
+    "src/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.h",
+    "src/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.h",
+    "src/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.h",
+    "src/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.h",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/channelz.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/channelz.upbdefs.h",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.h",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.h",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/service.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/service.upbdefs.h",
+    "src/src/core/filter/auth/auth_filters.h",
+    "src/src/core/filter/auth/client_auth_filter.cc",
+    "src/src/core/filter/auth/server_auth_filter.cc",
+    "src/src/core/filter/blackboard.cc",
+    "src/src/core/filter/blackboard.h",
+    "src/src/core/filter/filter_args.h",
+    "src/src/core/filter/fused_filters.cc",
     "src/src/core/handshaker/endpoint_info/endpoint_info_handshaker.cc",
     "src/src/core/handshaker/endpoint_info/endpoint_info_handshaker.h",
     "src/src/core/handshaker/handshaker.cc",
@@ -5839,26 +3167,18 @@
     "src/src/core/handshaker/proxy_mapper.h",
     "src/src/core/handshaker/proxy_mapper_registry.cc",
     "src/src/core/handshaker/proxy_mapper_registry.h",
+    "src/src/core/handshaker/security/legacy_secure_endpoint.cc",
+    "src/src/core/handshaker/security/pipelined_secure_endpoint.cc",
     "src/src/core/handshaker/security/secure_endpoint.cc",
     "src/src/core/handshaker/security/secure_endpoint.h",
     "src/src/core/handshaker/security/security_handshaker.cc",
     "src/src/core/handshaker/security/security_handshaker.h",
-    "src/src/core/handshaker/security/tsi_error.cc",
-    "src/src/core/handshaker/security/tsi_error.h",
     "src/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc",
     "src/src/core/handshaker/tcp_connect/tcp_connect_handshaker.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/backoff/random_early_detection.cc",
-    "src/src/core/lib/backoff/random_early_detection.h",
-    "src/src/core/lib/channel/call_finalization.h",
-    "src/src/core/lib/channel/call_tracer.cc",
-    "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",
@@ -5870,39 +3190,26 @@
     "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_stack_trace.cc",
-    "src/src/core/lib/channel/channel_stack_trace.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/metrics.cc",
-    "src/src/core/lib/channel/metrics.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/channel/tcp_tracer.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/debug/trace_flags.cc",
+    "src/src/core/lib/debug/trace_flags.h",
+    "src/src/core/lib/debug/trace_impl.h",
     "src/src/core/lib/event_engine/ares_resolver.cc",
     "src/src/core/lib/event_engine/ares_resolver.h",
     "src/src/core/lib/event_engine/cf_engine/cf_engine.cc",
     "src/src/core/lib/event_engine/cf_engine/cf_engine.h",
+    "src/src/core/lib/event_engine/cf_engine/cfsocket_listener.cc",
+    "src/src/core/lib/event_engine/cf_engine/cfsocket_listener.h",
     "src/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc",
     "src/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h",
     "src/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h",
@@ -5915,13 +3222,18 @@
     "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/endpoint_channel_arg_wrapper.cc",
+    "src/src/core/lib/event_engine/endpoint_channel_arg_wrapper.h",
     "src/src/core/lib/event_engine/event_engine.cc",
     "src/src/core/lib/event_engine/event_engine_context.h",
+    "src/src/core/lib/event_engine/extensions/blocking_dns.h",
     "src/src/core/lib/event_engine/extensions/can_track_errors.h",
+    "src/src/core/lib/event_engine/extensions/channelz.h",
     "src/src/core/lib/event_engine/extensions/chaotic_good_extension.h",
+    "src/src/core/lib/event_engine/extensions/iomgr_compatible.h",
     "src/src/core/lib/event_engine/extensions/supports_fd.h",
-    "src/src/core/lib/event_engine/forkable.cc",
-    "src/src/core/lib/event_engine/forkable.h",
+    "src/src/core/lib/event_engine/extensions/supports_win_sockets.h",
+    "src/src/core/lib/event_engine/extensions/tcp_trace.h",
     "src/src/core/lib/event_engine/grpc_polled_fd.h",
     "src/src/core/lib/event_engine/handle_containers.h",
     "src/src/core/lib/event_engine/memory_allocator_factory.h",
@@ -5935,6 +3247,8 @@
     "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/file_descriptor_collection.cc",
+    "src/src/core/lib/event_engine/posix_engine/file_descriptor_collection.h",
     "src/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h",
     "src/src/core/lib/event_engine/posix_engine/internal_errqueue.cc",
     "src/src/core/lib/event_engine/posix_engine/internal_errqueue.h",
@@ -5951,6 +3265,12 @@
     "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/posix_interface.h",
+    "src/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc",
+    "src/src/core/lib/event_engine/posix_engine/posix_interface_windows.cc",
+    "src/src/core/lib/event_engine/posix_engine/posix_write_event_sink.cc",
+    "src/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h",
+    "src/src/core/lib/event_engine/posix_engine/set_socket_dualstack.cc",
     "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",
@@ -5988,8 +3308,6 @@
     "src/src/core/lib/event_engine/thready_event_engine/thready_event_engine.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/grpc_polled_fd_windows.cc",
@@ -6013,51 +3331,6 @@
     "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/down_cast.h",
-    "src/src/core/lib/gprpp/dual_ref_counted.h",
-    "src/src/core/lib/gprpp/if_list.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.cc",
-    "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/ref_counted_string.cc",
-    "src/src/core/lib/gprpp/ref_counted_string.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/type_list.h",
-    "src/src/core/lib/gprpp/unique_type_name.h",
-    "src/src/core/lib/gprpp/uuid_v4.cc",
-    "src/src/core/lib/gprpp/uuid_v4.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/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",
@@ -6090,7 +3363,6 @@
     "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",
@@ -6099,17 +3371,8 @@
     "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",
@@ -6136,7 +3399,6 @@
     "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",
@@ -6200,15 +3462,6 @@
     "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_reader.h",
-    "src/src/core/lib/json/json_writer.cc",
-    "src/src/core/lib/json/json_writer.h",
     "src/src/core/lib/promise/activity.cc",
     "src/src/core/lib/promise/activity.h",
     "src/src/core/lib/promise/all_ok.h",
@@ -6219,15 +3472,22 @@
     "src/src/core/lib/promise/detail/join_state.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/promise_variant.h",
     "src/src/core/lib/promise/detail/seq_state.h",
     "src/src/core/lib/promise/detail/status.h",
     "src/src/core/lib/promise/exec_ctx_wakeup_scheduler.h",
     "src/src/core/lib/promise/for_each.h",
     "src/src/core/lib/promise/if.h",
+    "src/src/core/lib/promise/inter_activity_latch.h",
+    "src/src/core/lib/promise/inter_activity_mutex.h",
     "src/src/core/lib/promise/interceptor_list.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/match_promise.h",
+    "src/src/core/lib/promise/mpsc.cc",
+    "src/src/core/lib/promise/mpsc.h",
+    "src/src/core/lib/promise/observable.h",
     "src/src/core/lib/promise/party.cc",
     "src/src/core/lib/promise/party.h",
     "src/src/core/lib/promise/pipe.h",
@@ -6239,10 +3499,10 @@
     "src/src/core/lib/promise/sleep.cc",
     "src/src/core/lib/promise/sleep.h",
     "src/src/core/lib/promise/status_flag.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/promise/wait_set.cc",
+    "src/src/core/lib/promise/wait_set.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",
@@ -6255,10 +3515,11 @@
     "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/telemetry.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/resource_tracker/resource_tracker.cc",
+    "src/src/core/lib/resource_tracker/resource_tracker.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",
@@ -6266,51 +3527,6 @@
     "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/load_system_roots_windows.cc",
-    "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/server_auth_filter.cc",
-    "src/src/core/lib/security/util/json_util.cc",
-    "src/src/core/lib/security/util/json_util.h",
     "src/src/core/lib/slice/percent_encoding.cc",
     "src/src/core/lib/slice/percent_encoding.h",
     "src/src/core/lib/slice/slice.cc",
@@ -6318,12 +3534,9 @@
     "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/byte_buffer.cc",
     "src/src/core/lib/surface/byte_buffer_reader.cc",
     "src/src/core/lib/surface/call.cc",
@@ -6331,7 +3544,8 @@
     "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.h",
+    "src/src/core/lib/surface/call_utils.cc",
+    "src/src/core/lib/surface/call_utils.h",
     "src/src/core/lib/surface/channel.cc",
     "src/src/core/lib/surface/channel.h",
     "src/src/core/lib/surface/channel_create.cc",
@@ -6344,8 +3558,12 @@
     "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/connection_context.cc",
+    "src/src/core/lib/surface/connection_context.h",
     "src/src/core/lib/surface/event_string.cc",
     "src/src/core/lib/surface/event_string.h",
+    "src/src/core/lib/surface/filter_stack_call.cc",
+    "src/src/core/lib/surface/filter_stack_call.h",
     "src/src/core/lib/surface/init.cc",
     "src/src/core/lib/surface/init.h",
     "src/src/core/lib/surface/init_internally.cc",
@@ -6358,48 +3576,25 @@
     "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/surface/wait_for_cq_end_op.cc",
-    "src/src/core/lib/surface/wait_for_cq_end_op.h",
-    "src/src/core/lib/transport/batch_builder.cc",
-    "src/src/core/lib/transport/batch_builder.h",
     "src/src/core/lib/transport/bdp_estimator.cc",
     "src/src/core/lib/transport/bdp_estimator.h",
-    "src/src/core/lib/transport/call_arena_allocator.cc",
-    "src/src/core/lib/transport/call_arena_allocator.h",
-    "src/src/core/lib/transport/call_filters.cc",
-    "src/src/core/lib/transport/call_filters.h",
     "src/src/core/lib/transport/call_final_info.cc",
     "src/src/core/lib/transport/call_final_info.h",
-    "src/src/core/lib/transport/call_spine.cc",
-    "src/src/core/lib/transport/call_spine.h",
     "src/src/core/lib/transport/connectivity_state.cc",
     "src/src/core/lib/transport/connectivity_state.h",
-    "src/src/core/lib/transport/custom_metadata.h",
     "src/src/core/lib/transport/error_utils.cc",
     "src/src/core/lib/transport/error_utils.h",
-    "src/src/core/lib/transport/http2_errors.h",
-    "src/src/core/lib/transport/message.cc",
-    "src/src/core/lib/transport/message.h",
-    "src/src/core/lib/transport/metadata.cc",
-    "src/src/core/lib/transport/metadata.h",
-    "src/src/core/lib/transport/metadata_batch.cc",
-    "src/src/core/lib/transport/metadata_batch.h",
-    "src/src/core/lib/transport/metadata_compression_traits.h",
-    "src/src/core/lib/transport/metadata_info.cc",
-    "src/src/core/lib/transport/metadata_info.h",
-    "src/src/core/lib/transport/parsed_metadata.cc",
-    "src/src/core/lib/transport/parsed_metadata.h",
-    "src/src/core/lib/transport/simple_slice_based_metadata.h",
+    "src/src/core/lib/transport/promise_endpoint.cc",
+    "src/src/core/lib/transport/promise_endpoint.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_framing_endpoint_extension.h",
     "src/src/core/lib/transport/transport_fwd.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/load_balancing/address_filtering.cc",
     "src/src/core/load_balancing/address_filtering.h",
     "src/src/core/load_balancing/backend_metric_data.h",
@@ -6436,6 +3631,8 @@
     "src/src/core/load_balancing/pick_first/pick_first.cc",
     "src/src/core/load_balancing/pick_first/pick_first.h",
     "src/src/core/load_balancing/priority/priority.cc",
+    "src/src/core/load_balancing/ring_hash/ring_hash.cc",
+    "src/src/core/load_balancing/ring_hash/ring_hash.h",
     "src/src/core/load_balancing/rls/rls.cc",
     "src/src/core/load_balancing/rls/rls.h",
     "src/src/core/load_balancing/round_robin/round_robin.cc",
@@ -6445,9 +3642,10 @@
     "src/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc",
     "src/src/core/load_balancing/weighted_target/weighted_target.cc",
     "src/src/core/load_balancing/weighted_target/weighted_target.h",
+    "src/src/core/net/socket_mutator.cc",
+    "src/src/core/net/socket_mutator.h",
     "src/src/core/plugin_registry/grpc_plugin_registry.cc",
     "src/src/core/plugin_registry/grpc_plugin_registry_noextra.cc",
-    "src/src/core/resolver/binder/binder_resolver.cc",
     "src/src/core/resolver/dns/c_ares/dns_resolver_ares.cc",
     "src/src/core/resolver/dns/c_ares/dns_resolver_ares.h",
     "src/src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h",
@@ -6478,6 +3676,7 @@
     "src/src/core/resolver/resolver_registry.h",
     "src/src/core/resolver/server_address.h",
     "src/src/core/resolver/sockaddr/sockaddr_resolver.cc",
+    "src/src/core/server/add_port.cc",
     "src/src/core/server/server.cc",
     "src/src/core/server/server.h",
     "src/src/core/server/server_call_tracer_filter.cc",
@@ -6486,10 +3685,36 @@
     "src/src/core/service_config/service_config.h",
     "src/src/core/service_config/service_config_call_data.h",
     "src/src/core/service_config/service_config_channel_arg_filter.cc",
+    "src/src/core/service_config/service_config_channel_arg_filter.h",
     "src/src/core/service_config/service_config_impl.cc",
     "src/src/core/service_config/service_config_impl.h",
     "src/src/core/service_config/service_config_parser.cc",
     "src/src/core/service_config/service_config_parser.h",
+    "src/src/core/telemetry/call_tracer.cc",
+    "src/src/core/telemetry/call_tracer.h",
+    "src/src/core/telemetry/context_list_entry.cc",
+    "src/src/core/telemetry/context_list_entry.h",
+    "src/src/core/telemetry/default_tcp_tracer.cc",
+    "src/src/core/telemetry/default_tcp_tracer.h",
+    "src/src/core/telemetry/histogram.h",
+    "src/src/core/telemetry/histogram_view.cc",
+    "src/src/core/telemetry/histogram_view.h",
+    "src/src/core/telemetry/instrument.cc",
+    "src/src/core/telemetry/instrument.h",
+    "src/src/core/telemetry/metrics.cc",
+    "src/src/core/telemetry/metrics.h",
+    "src/src/core/telemetry/stats.cc",
+    "src/src/core/telemetry/stats.h",
+    "src/src/core/telemetry/stats_data.cc",
+    "src/src/core/telemetry/stats_data.h",
+    "src/src/core/telemetry/tcp_tracer.cc",
+    "src/src/core/telemetry/tcp_tracer.h",
+    "src/src/core/transport/auth_context.cc",
+    "src/src/core/transport/auth_context.h",
+    "src/src/core/transport/auth_context_comparator_registry.h",
+    "src/src/core/transport/endpoint_transport.h",
+    "src/src/core/transport/endpoint_transport_client_channel_factory.cc",
+    "src/src/core/transport/endpoint_transport_client_channel_factory.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/fake_transport_security.cc",
@@ -6501,57 +3726,104 @@
     "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/src/core/util/atomic_utils.h",
+    "src/src/core/util/avl.h",
+    "src/src/core/util/backoff.cc",
+    "src/src/core/util/backoff.h",
+    "src/src/core/util/bitset.h",
+    "src/src/core/util/check_class_size.h",
+    "src/src/core/util/chunked_vector.h",
+    "src/src/core/util/cpp_impl_of.h",
+    "src/src/core/util/down_cast.h",
+    "src/src/core/util/dual_ref_counted.h",
+    "src/src/core/util/dump_args.cc",
+    "src/src/core/util/dump_args.h",
+    "src/src/core/util/event_log.cc",
+    "src/src/core/util/event_log.h",
+    "src/src/core/util/function_signature.h",
+    "src/src/core/util/gethostname.h",
+    "src/src/core/util/gethostname_fallback.cc",
+    "src/src/core/util/gethostname_host_name_max.cc",
+    "src/src/core/util/gethostname_sysconf.cc",
+    "src/src/core/util/glob.cc",
+    "src/src/core/util/glob.h",
+    "src/src/core/util/grpc_check.cc",
+    "src/src/core/util/grpc_check.h",
+    "src/src/core/util/grpc_if_nametoindex.h",
+    "src/src/core/util/grpc_if_nametoindex_posix.cc",
+    "src/src/core/util/grpc_if_nametoindex_unsupported.cc",
+    "src/src/core/util/http_client/format_request.cc",
+    "src/src/core/util/http_client/format_request.h",
+    "src/src/core/util/http_client/httpcli.cc",
+    "src/src/core/util/http_client/httpcli.h",
+    "src/src/core/util/http_client/parser.cc",
+    "src/src/core/util/http_client/parser.h",
+    "src/src/core/util/if_list.h",
+    "src/src/core/util/json/json.h",
+    "src/src/core/util/json/json_args.h",
+    "src/src/core/util/json/json_channel_args.h",
+    "src/src/core/util/json/json_object_loader.cc",
+    "src/src/core/util/json/json_object_loader.h",
+    "src/src/core/util/json/json_reader.cc",
+    "src/src/core/util/json/json_reader.h",
+    "src/src/core/util/json/json_writer.cc",
+    "src/src/core/util/json/json_writer.h",
+    "src/src/core/util/latent_see.cc",
+    "src/src/core/util/latent_see.h",
+    "src/src/core/util/load_file.cc",
+    "src/src/core/util/load_file.h",
+    "src/src/core/util/manual_constructor.h",
+    "src/src/core/util/match.h",
+    "src/src/core/util/memory_usage.h",
+    "src/src/core/util/notification.h",
+    "src/src/core/util/orphanable.h",
+    "src/src/core/util/overload.h",
+    "src/src/core/util/packed_table.h",
+    "src/src/core/util/per_cpu.cc",
+    "src/src/core/util/per_cpu.h",
+    "src/src/core/util/postmortem_emit.cc",
+    "src/src/core/util/postmortem_emit.h",
+    "src/src/core/util/random_early_detection.cc",
+    "src/src/core/util/random_early_detection.h",
+    "src/src/core/util/ref_counted.h",
+    "src/src/core/util/ref_counted_ptr.h",
+    "src/src/core/util/ref_counted_string.cc",
+    "src/src/core/util/ref_counted_string.h",
+    "src/src/core/util/shared_bit_gen.cc",
+    "src/src/core/util/shared_bit_gen.h",
+    "src/src/core/util/single_set_ptr.h",
+    "src/src/core/util/sorted_pack.h",
+    "src/src/core/util/spinlock.h",
+    "src/src/core/util/status_helper.cc",
+    "src/src/core/util/status_helper.h",
+    "src/src/core/util/table.h",
+    "src/src/core/util/time.cc",
+    "src/src/core/util/time.h",
+    "src/src/core/util/time_averaged_stats.cc",
+    "src/src/core/util/time_averaged_stats.h",
+    "src/src/core/util/type_list.h",
+    "src/src/core/util/unique_ptr_with_bitset.h",
+    "src/src/core/util/unique_type_name.h",
+    "src/src/core/util/upb_utils.h",
+    "src/src/core/util/uri.cc",
+    "src/src/core/util/uri.h",
+    "src/src/core/util/uuid_v4.cc",
+    "src/src/core/util/uuid_v4.h",
+    "src/src/core/util/validation_errors.cc",
+    "src/src/core/util/validation_errors.h",
+    "src/src/core/util/wait_for_single_owner.cc",
+    "src/src/core/util/wait_for_single_owner.h",
+    "src/src/core/util/work_serializer.cc",
+    "src/src/core/util/work_serializer.h",
+    "src/src/core/util/xxhash_inline.h",
     "src/third_party/upb/upb/generated_code_support.h",
-    "src/third_party/upb/upb/mini_descriptor/build_enum.c",
-    "src/third_party/upb/upb/mini_descriptor/build_enum.h",
-    "src/third_party/upb/upb/mini_descriptor/decode.c",
-    "src/third_party/upb/upb/mini_descriptor/decode.h",
-    "src/third_party/upb/upb/mini_descriptor/internal/base92.c",
-    "src/third_party/upb/upb/mini_descriptor/internal/base92.h",
-    "src/third_party/upb/upb/mini_descriptor/internal/decoder.h",
-    "src/third_party/upb/upb/mini_descriptor/internal/encode.c",
-    "src/third_party/upb/upb/mini_descriptor/internal/encode.h",
-    "src/third_party/upb/upb/mini_descriptor/internal/encode.hpp",
-    "src/third_party/upb/upb/mini_descriptor/internal/modifiers.h",
-    "src/third_party/upb/upb/mini_descriptor/internal/wire_constants.h",
-    "src/third_party/upb/upb/mini_descriptor/link.c",
-    "src/third_party/upb/upb/mini_descriptor/link.h",
-    "src/third_party/upb/upb/wire/decode.c",
-    "src/third_party/upb/upb/wire/decode.h",
-    "src/third_party/upb/upb/wire/encode.c",
-    "src/third_party/upb/upb/wire/encode.h",
-    "src/third_party/upb/upb/wire/eps_copy_input_stream.c",
-    "src/third_party/upb/upb/wire/eps_copy_input_stream.h",
-    "src/third_party/upb/upb/wire/internal/constants.h",
-    "src/third_party/upb/upb/wire/internal/decode_fast.c",
-    "src/third_party/upb/upb/wire/internal/decode_fast.h",
-    "src/third_party/upb/upb/wire/internal/decoder.h",
-    "src/third_party/upb/upb/wire/internal/reader.h",
-    "src/third_party/upb/upb/wire/reader.c",
-    "src/third_party/upb/upb/wire/reader.h",
-    "src/third_party/upb/upb/wire/types.h",
+    "src/third_party/xxhash/xxhash.h",
   ]
   public_deps = [
-    ":absl_algorithm_container",
-    ":absl_base_config",
-    ":absl_base_no_destructor",
-    ":absl_cleanup_cleanup",
-    ":absl_container_flat_hash_map",
-    ":absl_container_flat_hash_set",
-    ":absl_container_inlined_vector",
-    ":absl_functional_bind_front",
-    ":absl_functional_function_ref",
-    ":absl_hash_hash",
-    ":absl_meta_type_traits",
-    ":absl_random_bit_gen_ref",
-    ":absl_random_distributions",
-    ":absl_status_statusor",
-    ":absl_types_span",
-    ":absl_utility_utility",
     ":address_sorting",
     ":gpr",
-    ":upb_message_lib",
-    ":utf8_range_lib",
+    ":upb_textformat_lib",
+    "..:abseil_cpp",
     "..:zlib",
   ]
   public_configs = [ "..:grpc_internal_config" ]
@@ -6630,12 +3902,42 @@
   check_includes = true
 }
 
+source_set("upb_hash_lib") {
+  sources = [
+    "src/third_party/upb/upb/base/internal/endian.h",
+    "src/third_party/upb/upb/base/internal/log2.h",
+    "src/third_party/upb/upb/hash/common.c",
+    "src/third_party/upb/upb/hash/common.h",
+    "src/third_party/upb/upb/hash/int_table.h",
+    "src/third_party/upb/upb/hash/str_table.h",
+  ]
+  public_deps = [
+    ":upb_base_lib",
+    ":upb_mem_lib",
+  ]
+  public_configs = [ "..:grpc_internal_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+  check_includes = true
+}
+
 static_library("upb_json_lib") {
   sources = [
     "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",
+  ]
+  public_deps = [
+    ":upb_lex_lib",
+    ":upb_reflection_lib",
+  ]
+  public_configs = [ "..:grpc_internal_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+  check_includes = false
+}
+
+source_set("upb_lex_lib") {
+  sources = [
     "src/third_party/upb/upb/lex/atoi.c",
     "src/third_party/upb/upb/lex/atoi.h",
     "src/third_party/upb/upb/lex/round_trip.c",
@@ -6644,95 +3946,15 @@
     "src/third_party/upb/upb/lex/strtod.h",
     "src/third_party/upb/upb/lex/unicode.c",
     "src/third_party/upb/upb/lex/unicode.h",
-    "src/third_party/upb/upb/message/copy.c",
-    "src/third_party/upb/upb/message/copy.h",
-    "src/third_party/upb/upb/mini_descriptor/build_enum.c",
-    "src/third_party/upb/upb/mini_descriptor/build_enum.h",
-    "src/third_party/upb/upb/mini_descriptor/decode.c",
-    "src/third_party/upb/upb/mini_descriptor/decode.h",
-    "src/third_party/upb/upb/mini_descriptor/internal/base92.c",
-    "src/third_party/upb/upb/mini_descriptor/internal/base92.h",
-    "src/third_party/upb/upb/mini_descriptor/internal/decoder.h",
-    "src/third_party/upb/upb/mini_descriptor/internal/encode.c",
-    "src/third_party/upb/upb/mini_descriptor/internal/encode.h",
-    "src/third_party/upb/upb/mini_descriptor/internal/encode.hpp",
-    "src/third_party/upb/upb/mini_descriptor/internal/modifiers.h",
-    "src/third_party/upb/upb/mini_descriptor/internal/wire_constants.h",
-    "src/third_party/upb/upb/mini_descriptor/link.c",
-    "src/third_party/upb/upb/mini_descriptor/link.h",
-    "src/third_party/upb/upb/reflection/common.h",
-    "src/third_party/upb/upb/reflection/def.h",
-    "src/third_party/upb/upb/reflection/def.hpp",
-    "src/third_party/upb/upb/reflection/def_pool.c",
-    "src/third_party/upb/upb/reflection/def_pool.h",
-    "src/third_party/upb/upb/reflection/def_type.c",
-    "src/third_party/upb/upb/reflection/def_type.h",
-    "src/third_party/upb/upb/reflection/desc_state.c",
-    "src/third_party/upb/upb/reflection/enum_def.c",
-    "src/third_party/upb/upb/reflection/enum_def.h",
-    "src/third_party/upb/upb/reflection/enum_reserved_range.c",
-    "src/third_party/upb/upb/reflection/enum_reserved_range.h",
-    "src/third_party/upb/upb/reflection/enum_value_def.c",
-    "src/third_party/upb/upb/reflection/enum_value_def.h",
-    "src/third_party/upb/upb/reflection/extension_range.c",
-    "src/third_party/upb/upb/reflection/extension_range.h",
-    "src/third_party/upb/upb/reflection/field_def.c",
-    "src/third_party/upb/upb/reflection/field_def.h",
-    "src/third_party/upb/upb/reflection/file_def.c",
-    "src/third_party/upb/upb/reflection/file_def.h",
-    "src/third_party/upb/upb/reflection/internal/def_builder.c",
-    "src/third_party/upb/upb/reflection/internal/def_builder.h",
-    "src/third_party/upb/upb/reflection/internal/def_pool.h",
-    "src/third_party/upb/upb/reflection/internal/desc_state.h",
-    "src/third_party/upb/upb/reflection/internal/enum_def.h",
-    "src/third_party/upb/upb/reflection/internal/enum_reserved_range.h",
-    "src/third_party/upb/upb/reflection/internal/enum_value_def.h",
-    "src/third_party/upb/upb/reflection/internal/extension_range.h",
-    "src/third_party/upb/upb/reflection/internal/field_def.h",
-    "src/third_party/upb/upb/reflection/internal/file_def.h",
-    "src/third_party/upb/upb/reflection/internal/message_def.h",
-    "src/third_party/upb/upb/reflection/internal/message_reserved_range.h",
-    "src/third_party/upb/upb/reflection/internal/method_def.h",
-    "src/third_party/upb/upb/reflection/internal/oneof_def.h",
-    "src/third_party/upb/upb/reflection/internal/service_def.h",
-    "src/third_party/upb/upb/reflection/internal/strdup2.c",
-    "src/third_party/upb/upb/reflection/internal/strdup2.h",
-    "src/third_party/upb/upb/reflection/internal/upb_edition_defaults.h",
-    "src/third_party/upb/upb/reflection/message.c",
-    "src/third_party/upb/upb/reflection/message.h",
-    "src/third_party/upb/upb/reflection/message.hpp",
-    "src/third_party/upb/upb/reflection/message_def.c",
-    "src/third_party/upb/upb/reflection/message_def.h",
-    "src/third_party/upb/upb/reflection/message_reserved_range.c",
-    "src/third_party/upb/upb/reflection/message_reserved_range.h",
-    "src/third_party/upb/upb/reflection/method_def.c",
-    "src/third_party/upb/upb/reflection/method_def.h",
-    "src/third_party/upb/upb/reflection/oneof_def.c",
-    "src/third_party/upb/upb/reflection/oneof_def.h",
-    "src/third_party/upb/upb/reflection/service_def.c",
-    "src/third_party/upb/upb/reflection/service_def.h",
-    "src/third_party/upb/upb/wire/decode.c",
-    "src/third_party/upb/upb/wire/decode.h",
-    "src/third_party/upb/upb/wire/encode.c",
-    "src/third_party/upb/upb/wire/encode.h",
-    "src/third_party/upb/upb/wire/eps_copy_input_stream.c",
-    "src/third_party/upb/upb/wire/eps_copy_input_stream.h",
-    "src/third_party/upb/upb/wire/internal/constants.h",
-    "src/third_party/upb/upb/wire/internal/decode_fast.c",
-    "src/third_party/upb/upb/wire/internal/decode_fast.h",
-    "src/third_party/upb/upb/wire/internal/decoder.h",
-    "src/third_party/upb/upb/wire/internal/reader.h",
-    "src/third_party/upb/upb/wire/reader.c",
-    "src/third_party/upb/upb/wire/reader.h",
-    "src/third_party/upb/upb/wire/types.h",
+    "src/third_party/upb/upb/port/atomic.h",
+    "src/third_party/upb/upb/port/def.inc",
+    "src/third_party/upb/upb/port/undef.inc",
+    "src/third_party/upb/upb/port/vsnprintf_compat.h",
   ]
-  public_deps = [
-    ":upb_message_lib",
-    ":utf8_range_lib",
-  ]
+  public_deps = []
   public_configs = [ "..:grpc_internal_config" ]
   configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = false
+  check_includes = true
 }
 
 source_set("upb_mem_lib") {
@@ -6756,12 +3978,6 @@
 
 source_set("upb_message_lib") {
   sources = [
-    "src/third_party/upb/upb/base/internal/endian.h",
-    "src/third_party/upb/upb/base/internal/log2.h",
-    "src/third_party/upb/upb/hash/common.c",
-    "src/third_party/upb/upb/hash/common.h",
-    "src/third_party/upb/upb/hash/int_table.h",
-    "src/third_party/upb/upb/hash/str_table.h",
     "src/third_party/upb/upb/message/accessors.c",
     "src/third_party/upb/upb/message/accessors.h",
     "src/third_party/upb/upb/message/array.c",
@@ -6773,12 +3989,10 @@
     "src/third_party/upb/upb/message/internal/extension.c",
     "src/third_party/upb/upb/message/internal/extension.h",
     "src/third_party/upb/upb/message/internal/map.h",
-    "src/third_party/upb/upb/message/internal/map_entry.h",
     "src/third_party/upb/upb/message/internal/map_sorter.h",
     "src/third_party/upb/upb/message/internal/message.c",
     "src/third_party/upb/upb/message/internal/message.h",
     "src/third_party/upb/upb/message/internal/tagged_ptr.h",
-    "src/third_party/upb/upb/message/internal/types.h",
     "src/third_party/upb/upb/message/map.c",
     "src/third_party/upb/upb/message/map.h",
     "src/third_party/upb/upb/message/map_gencode_util.h",
@@ -6787,6 +4001,40 @@
     "src/third_party/upb/upb/message/message.h",
     "src/third_party/upb/upb/message/tagged_ptr.h",
     "src/third_party/upb/upb/message/value.h",
+  ]
+  public_deps = [ ":upb_mini_table_lib" ]
+  public_configs = [ "..:grpc_internal_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+  check_includes = true
+}
+
+source_set("upb_mini_descriptor_lib") {
+  sources = [
+    "src/third_party/upb/upb/mini_descriptor/build_enum.c",
+    "src/third_party/upb/upb/mini_descriptor/build_enum.h",
+    "src/third_party/upb/upb/mini_descriptor/decode.c",
+    "src/third_party/upb/upb/mini_descriptor/decode.h",
+    "src/third_party/upb/upb/mini_descriptor/internal/base92.c",
+    "src/third_party/upb/upb/mini_descriptor/internal/base92.h",
+    "src/third_party/upb/upb/mini_descriptor/internal/decoder.h",
+    "src/third_party/upb/upb/mini_descriptor/internal/encode.c",
+    "src/third_party/upb/upb/mini_descriptor/internal/encode.h",
+    "src/third_party/upb/upb/mini_descriptor/internal/encode.hpp",
+    "src/third_party/upb/upb/mini_descriptor/internal/modifiers.h",
+    "src/third_party/upb/upb/mini_descriptor/internal/wire_constants.h",
+    "src/third_party/upb/upb/mini_descriptor/link.c",
+    "src/third_party/upb/upb/mini_descriptor/link.h",
+  ]
+  public_deps = [ ":upb_mini_table_lib" ]
+  public_configs = [ "..:grpc_internal_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+  check_includes = true
+}
+
+source_set("upb_mini_table_lib") {
+  sources = [
+    "src/third_party/upb/upb/message/internal/map_entry.h",
+    "src/third_party/upb/upb/message/internal/types.h",
     "src/third_party/upb/upb/mini_table/enum.h",
     "src/third_party/upb/upb/mini_table/extension.h",
     "src/third_party/upb/upb/mini_table/extension_registry.c",
@@ -6805,41 +4053,19 @@
     "src/third_party/upb/upb/mini_table/message.h",
     "src/third_party/upb/upb/mini_table/sub.h",
   ]
-  public_deps = [
-    ":upb_base_lib",
-    ":upb_mem_lib",
-  ]
+  public_deps = [ ":upb_hash_lib" ]
   public_configs = [ "..:grpc_internal_config" ]
   configs -= [ "//gn/standalone:extra_warnings" ]
   check_includes = true
 }
 
-static_library("upb_textformat_lib") {
+source_set("upb_reflection_lib") {
   sources = [
-    "src/third_party/upb/upb/lex/atoi.c",
-    "src/third_party/upb/upb/lex/atoi.h",
-    "src/third_party/upb/upb/lex/round_trip.c",
-    "src/third_party/upb/upb/lex/round_trip.h",
-    "src/third_party/upb/upb/lex/strtod.c",
-    "src/third_party/upb/upb/lex/strtod.h",
-    "src/third_party/upb/upb/lex/unicode.c",
-    "src/third_party/upb/upb/lex/unicode.h",
+    "src/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h",
     "src/third_party/upb/upb/message/copy.c",
     "src/third_party/upb/upb/message/copy.h",
-    "src/third_party/upb/upb/mini_descriptor/build_enum.c",
-    "src/third_party/upb/upb/mini_descriptor/build_enum.h",
-    "src/third_party/upb/upb/mini_descriptor/decode.c",
-    "src/third_party/upb/upb/mini_descriptor/decode.h",
-    "src/third_party/upb/upb/mini_descriptor/internal/base92.c",
-    "src/third_party/upb/upb/mini_descriptor/internal/base92.h",
-    "src/third_party/upb/upb/mini_descriptor/internal/decoder.h",
-    "src/third_party/upb/upb/mini_descriptor/internal/encode.c",
-    "src/third_party/upb/upb/mini_descriptor/internal/encode.h",
-    "src/third_party/upb/upb/mini_descriptor/internal/encode.hpp",
-    "src/third_party/upb/upb/mini_descriptor/internal/modifiers.h",
-    "src/third_party/upb/upb/mini_descriptor/internal/wire_constants.h",
-    "src/third_party/upb/upb/mini_descriptor/link.c",
-    "src/third_party/upb/upb/mini_descriptor/link.h",
+    "src/third_party/upb/upb/message/merge.c",
+    "src/third_party/upb/upb/message/merge.h",
     "src/third_party/upb/upb/reflection/common.h",
     "src/third_party/upb/upb/reflection/def.h",
     "src/third_party/upb/upb/reflection/def.hpp",
@@ -6848,6 +4074,7 @@
     "src/third_party/upb/upb/reflection/def_type.c",
     "src/third_party/upb/upb/reflection/def_type.h",
     "src/third_party/upb/upb/reflection/desc_state.c",
+    "src/third_party/upb/upb/reflection/descriptor_bootstrap.h",
     "src/third_party/upb/upb/reflection/enum_def.c",
     "src/third_party/upb/upb/reflection/enum_def.h",
     "src/third_party/upb/upb/reflection/enum_reserved_range.c",
@@ -6891,8 +4118,37 @@
     "src/third_party/upb/upb/reflection/oneof_def.h",
     "src/third_party/upb/upb/reflection/service_def.c",
     "src/third_party/upb/upb/reflection/service_def.h",
+  ]
+  public_deps = [
+    ":upb_mini_descriptor_lib",
+    ":upb_wire_lib",
+  ]
+  public_configs = [ "..:grpc_internal_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+  check_includes = false
+}
+
+static_library("upb_textformat_lib") {
+  sources = [
     "src/third_party/upb/upb/text/encode.c",
     "src/third_party/upb/upb/text/encode.h",
+    "src/third_party/upb/upb/text/internal/encode.c",
+    "src/third_party/upb/upb/text/internal/encode.h",
+    "src/third_party/upb/upb/text/options.h",
+  ]
+  public_deps = [
+    ":upb_lex_lib",
+    ":upb_reflection_lib",
+  ]
+  public_configs = [ "..:grpc_internal_config" ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+  check_includes = false
+}
+
+source_set("upb_wire_lib") {
+  sources = [
+    "src/third_party/upb/upb/message/internal/iterator.c",
+    "src/third_party/upb/upb/message/internal/iterator.h",
     "src/third_party/upb/upb/wire/decode.c",
     "src/third_party/upb/upb/wire/decode.h",
     "src/third_party/upb/upb/wire/encode.c",
@@ -6910,64 +4166,15 @@
   ]
   public_deps = [
     ":upb_message_lib",
-    ":utf8_range_lib",
+    "..:utf8_range",
   ]
   public_configs = [ "..:grpc_internal_config" ]
   configs -= [ "//gn/standalone:extra_warnings" ]
-  check_includes = false
-}
-
-source_set("utf8_range_lib") {
-  sources = [
-    "src/third_party/utf8_range/utf8_range.c",
-    "src/third_party/utf8_range/utf8_range.h",
-  ]
-  public_deps = []
-  public_configs = [ "..:grpc_internal_config" ]
-  configs -= [ "//gn/standalone:extra_warnings" ]
   check_includes = true
 }
 
 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/core/xds/grpc/xds_enabled_server.h",
     "src/src/cpp/client/call_credentials.cc",
     "src/src/cpp/client/channel_cc.cc",
@@ -6981,6 +4188,7 @@
     "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/global_callback_hook.cc",
     "src/src/cpp/client/insecure_credentials.cc",
     "src/src/cpp/client/secure_credentials.cc",
     "src/src/cpp/client/secure_credentials.h",
@@ -7032,6 +4240,7 @@
   ]
   public_deps = [
     ":grpc",
+    "..:abseil_cpp",
     "..:protobuf_full",
   ]
   public_configs = [ "..:grpc_internal_config" ]
@@ -7072,6 +4281,7 @@
     "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/global_callback_hook.cc",
     "src/src/cpp/client/insecure_credentials.cc",
     "src/src/cpp/common/alarm.cc",
     "src/src/cpp/common/channel_arguments.cc",
@@ -7110,6 +4320,7 @@
   ]
   public_deps = [
     ":grpc_unsecure",
+    "..:abseil_cpp",
     "..:protobuf_full",
   ]
   public_configs = [ "..:grpc_internal_config" ]
@@ -7119,18 +4330,113 @@
 
 source_set("grpc_authorization_provider") {
   sources = [
+    "src/src/core/call/call_arena_allocator.cc",
+    "src/src/core/call/call_arena_allocator.h",
+    "src/src/core/call/call_destination.h",
+    "src/src/core/call/call_filters.cc",
+    "src/src/core/call/call_filters.h",
+    "src/src/core/call/call_finalization.h",
+    "src/src/core/call/call_spine.cc",
+    "src/src/core/call/call_spine.h",
+    "src/src/core/call/call_state.cc",
+    "src/src/core/call/call_state.h",
+    "src/src/core/call/client_call.cc",
+    "src/src/core/call/client_call.h",
+    "src/src/core/call/custom_metadata.h",
+    "src/src/core/call/interception_chain.cc",
+    "src/src/core/call/interception_chain.h",
+    "src/src/core/call/message.cc",
+    "src/src/core/call/message.h",
+    "src/src/core/call/metadata.cc",
+    "src/src/core/call/metadata.h",
+    "src/src/core/call/metadata_batch.cc",
+    "src/src/core/call/metadata_batch.h",
+    "src/src/core/call/metadata_compression_traits.h",
+    "src/src/core/call/parsed_metadata.cc",
+    "src/src/core/call/parsed_metadata.h",
+    "src/src/core/call/security_context.cc",
+    "src/src/core/call/security_context.h",
+    "src/src/core/call/server_call.cc",
+    "src/src/core/call/server_call.h",
+    "src/src/core/call/simple_slice_based_metadata.h",
+    "src/src/core/call/status_util.cc",
+    "src/src/core/call/status_util.h",
     "src/src/core/channelz/channel_trace.cc",
     "src/src/core/channelz/channel_trace.h",
     "src/src/core/channelz/channelz.cc",
     "src/src/core/channelz/channelz.h",
     "src/src/core/channelz/channelz_registry.cc",
     "src/src/core/channelz/channelz_registry.h",
+    "src/src/core/channelz/property_list.cc",
+    "src/src/core/channelz/property_list.h",
+    "src/src/core/channelz/text_encode.cc",
+    "src/src/core/channelz/text_encode.h",
+    "src/src/core/config/core_configuration.cc",
+    "src/src/core/config/core_configuration.h",
+    "src/src/core/credentials/call/call_credentials.h",
+    "src/src/core/credentials/call/call_creds_registry.h",
+    "src/src/core/credentials/call/call_creds_util.cc",
+    "src/src/core/credentials/call/call_creds_util.h",
+    "src/src/core/credentials/call/composite/composite_call_credentials.cc",
+    "src/src/core/credentials/call/composite/composite_call_credentials.h",
+    "src/src/core/credentials/call/json_util.cc",
+    "src/src/core/credentials/call/json_util.h",
+    "src/src/core/credentials/call/plugin/plugin_credentials.cc",
+    "src/src/core/credentials/call/plugin/plugin_credentials.h",
+    "src/src/core/credentials/transport/alts/check_gcp_environment.cc",
+    "src/src/core/credentials/transport/alts/check_gcp_environment.h",
+    "src/src/core/credentials/transport/alts/check_gcp_environment_linux.cc",
+    "src/src/core/credentials/transport/alts/check_gcp_environment_no_op.cc",
+    "src/src/core/credentials/transport/alts/check_gcp_environment_windows.cc",
+    "src/src/core/credentials/transport/alts/grpc_alts_credentials_client_options.cc",
+    "src/src/core/credentials/transport/alts/grpc_alts_credentials_options.cc",
+    "src/src/core/credentials/transport/alts/grpc_alts_credentials_options.h",
+    "src/src/core/credentials/transport/alts/grpc_alts_credentials_server_options.cc",
+    "src/src/core/credentials/transport/channel_creds_registry.h",
+    "src/src/core/credentials/transport/composite/composite_channel_credentials.cc",
+    "src/src/core/credentials/transport/composite/composite_channel_credentials.h",
+    "src/src/core/credentials/transport/security_connector.cc",
+    "src/src/core/credentials/transport/security_connector.h",
+    "src/src/core/credentials/transport/tls/certificate_provider_factory.h",
+    "src/src/core/credentials/transport/tls/certificate_provider_registry.cc",
+    "src/src/core/credentials/transport/tls/certificate_provider_registry.h",
+    "src/src/core/credentials/transport/tls/load_system_roots.h",
+    "src/src/core/credentials/transport/tls/load_system_roots_fallback.cc",
+    "src/src/core/credentials/transport/tls/load_system_roots_supported.cc",
+    "src/src/core/credentials/transport/tls/load_system_roots_supported.h",
+    "src/src/core/credentials/transport/tls/load_system_roots_windows.cc",
+    "src/src/core/credentials/transport/tls/tls_utils.cc",
+    "src/src/core/credentials/transport/tls/tls_utils.h",
+    "src/src/core/credentials/transport/transport_credentials.cc",
+    "src/src/core/credentials/transport/transport_credentials.h",
+    "src/src/core/ext/transport/chttp2/transport/http2_status.h",
     "src/src/core/ext/upb-gen/google/protobuf/any.upb.h",
     "src/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c",
     "src/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.h",
+    "src/src/core/ext/upb-gen/google/protobuf/duration.upb.h",
+    "src/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c",
+    "src/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.h",
+    "src/src/core/ext/upb-gen/google/protobuf/empty.upb.h",
+    "src/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.c",
+    "src/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.h",
+    "src/src/core/ext/upb-gen/google/protobuf/timestamp.upb.h",
+    "src/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c",
+    "src/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.h",
     "src/src/core/ext/upb-gen/google/rpc/status.upb.h",
     "src/src/core/ext/upb-gen/google/rpc/status.upb_minitable.c",
     "src/src/core/ext/upb-gen/google/rpc/status.upb_minitable.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb.h",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.c",
+    "src/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.h",
     "src/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h",
     "src/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c",
     "src/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.h",
@@ -7140,6 +4446,28 @@
     "src/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb.h",
     "src/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c",
     "src/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.h",
+    "src/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.h",
+    "src/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.h",
+    "src/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.h",
+    "src/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.h",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/channelz.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/channelz.upbdefs.h",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.h",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.h",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/service.upbdefs.c",
+    "src/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/service.upbdefs.h",
+    "src/src/core/filter/auth/auth_filters.h",
+    "src/src/core/filter/auth/client_auth_filter.cc",
+    "src/src/core/filter/auth/server_auth_filter.cc",
+    "src/src/core/filter/blackboard.cc",
+    "src/src/core/filter/blackboard.h",
+    "src/src/core/filter/filter_args.h",
     "src/src/core/handshaker/endpoint_info/endpoint_info_handshaker.cc",
     "src/src/core/handshaker/endpoint_info/endpoint_info_handshaker.h",
     "src/src/core/handshaker/handshaker.cc",
@@ -7150,22 +4478,16 @@
     "src/src/core/handshaker/proxy_mapper.h",
     "src/src/core/handshaker/proxy_mapper_registry.cc",
     "src/src/core/handshaker/proxy_mapper_registry.h",
+    "src/src/core/handshaker/security/legacy_secure_endpoint.cc",
+    "src/src/core/handshaker/security/pipelined_secure_endpoint.cc",
     "src/src/core/handshaker/security/secure_endpoint.cc",
     "src/src/core/handshaker/security/secure_endpoint.h",
     "src/src/core/handshaker/security/security_handshaker.cc",
     "src/src/core/handshaker/security/security_handshaker.h",
-    "src/src/core/handshaker/security/tsi_error.cc",
-    "src/src/core/handshaker/security/tsi_error.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.cc",
-    "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",
@@ -7177,39 +4499,26 @@
     "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_stack_trace.cc",
-    "src/src/core/lib/channel/channel_stack_trace.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/metrics.cc",
-    "src/src/core/lib/channel/metrics.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/channel/tcp_tracer.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/debug/trace_flags.cc",
+    "src/src/core/lib/debug/trace_flags.h",
+    "src/src/core/lib/debug/trace_impl.h",
     "src/src/core/lib/event_engine/ares_resolver.cc",
     "src/src/core/lib/event_engine/ares_resolver.h",
     "src/src/core/lib/event_engine/cf_engine/cf_engine.cc",
     "src/src/core/lib/event_engine/cf_engine/cf_engine.h",
+    "src/src/core/lib/event_engine/cf_engine/cfsocket_listener.cc",
+    "src/src/core/lib/event_engine/cf_engine/cfsocket_listener.h",
     "src/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc",
     "src/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h",
     "src/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h",
@@ -7224,11 +4533,14 @@
     "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/event_engine_context.h",
+    "src/src/core/lib/event_engine/extensions/blocking_dns.h",
     "src/src/core/lib/event_engine/extensions/can_track_errors.h",
+    "src/src/core/lib/event_engine/extensions/channelz.h",
     "src/src/core/lib/event_engine/extensions/chaotic_good_extension.h",
+    "src/src/core/lib/event_engine/extensions/iomgr_compatible.h",
     "src/src/core/lib/event_engine/extensions/supports_fd.h",
-    "src/src/core/lib/event_engine/forkable.cc",
-    "src/src/core/lib/event_engine/forkable.h",
+    "src/src/core/lib/event_engine/extensions/supports_win_sockets.h",
+    "src/src/core/lib/event_engine/extensions/tcp_trace.h",
     "src/src/core/lib/event_engine/grpc_polled_fd.h",
     "src/src/core/lib/event_engine/handle_containers.h",
     "src/src/core/lib/event_engine/memory_allocator_factory.h",
@@ -7242,6 +4554,8 @@
     "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/file_descriptor_collection.cc",
+    "src/src/core/lib/event_engine/posix_engine/file_descriptor_collection.h",
     "src/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h",
     "src/src/core/lib/event_engine/posix_engine/internal_errqueue.cc",
     "src/src/core/lib/event_engine/posix_engine/internal_errqueue.h",
@@ -7258,6 +4572,12 @@
     "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/posix_interface.h",
+    "src/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc",
+    "src/src/core/lib/event_engine/posix_engine/posix_interface_windows.cc",
+    "src/src/core/lib/event_engine/posix_engine/posix_write_event_sink.cc",
+    "src/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h",
+    "src/src/core/lib/event_engine/posix_engine/set_socket_dualstack.cc",
     "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",
@@ -7295,8 +4615,6 @@
     "src/src/core/lib/event_engine/thready_event_engine/thready_event_engine.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/grpc_polled_fd_windows.cc",
@@ -7320,42 +4638,6 @@
     "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/down_cast.h",
-    "src/src/core/lib/gprpp/dual_ref_counted.h",
-    "src/src/core/lib/gprpp/if_list.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.cc",
-    "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/ref_counted_string.cc",
-    "src/src/core/lib/gprpp/ref_counted_string.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/type_list.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/iomgr/block_annotate.h",
     "src/src/core/lib/iomgr/buffer_list.cc",
     "src/src/core/lib/iomgr/buffer_list.h",
@@ -7388,7 +4670,6 @@
     "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",
@@ -7397,17 +4678,8 @@
     "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",
@@ -7434,7 +4706,6 @@
     "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",
@@ -7498,18 +4769,11 @@
     "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_reader.cc",
-    "src/src/core/lib/json/json_reader.h",
-    "src/src/core/lib/json/json_writer.cc",
-    "src/src/core/lib/json/json_writer.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/all_ok.h",
     "src/src/core/lib/promise/arena_promise.h",
+    "src/src/core/lib/promise/cancel_callback.h",
     "src/src/core/lib/promise/context.h",
     "src/src/core/lib/promise/detail/basic_seq.h",
     "src/src/core/lib/promise/detail/join_state.h",
@@ -7528,29 +4792,27 @@
     "src/src/core/lib/promise/party.h",
     "src/src/core/lib/promise/pipe.h",
     "src/src/core/lib/promise/poll.h",
+    "src/src/core/lib/promise/prioritized_race.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/status_flag.h",
-    "src/src/core/lib/promise/trace.cc",
-    "src/src/core/lib/promise/trace.h",
     "src/src/core/lib/promise/try_seq.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/connection_quota.cc",
-    "src/src/core/lib/resource_quota/connection_quota.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/telemetry.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/resource_tracker/resource_tracker.cc",
+    "src/src/core/lib/resource_tracker/resource_tracker.h",
     "src/src/core/lib/security/authorization/audit_logging.cc",
     "src/src/core/lib/security/authorization/audit_logging.h",
     "src/src/core/lib/security/authorization/authorization_engine.h",
@@ -7572,43 +4834,6 @@
     "src/src/core/lib/security/authorization/rbac_translator.h",
     "src/src/core/lib/security/authorization/stdout_logger.cc",
     "src/src/core/lib/security/authorization/stdout_logger.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/load_system_roots_windows.cc",
-    "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/server_auth_filter.cc",
-    "src/src/core/lib/security/util/json_util.cc",
-    "src/src/core/lib/security/util/json_util.h",
     "src/src/core/lib/slice/percent_encoding.cc",
     "src/src/core/lib/slice/percent_encoding.h",
     "src/src/core/lib/slice/slice.cc",
@@ -7616,12 +4841,9 @@
     "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/byte_buffer.cc",
     "src/src/core/lib/surface/byte_buffer_reader.cc",
     "src/src/core/lib/surface/call.cc",
@@ -7629,7 +4851,8 @@
     "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.h",
+    "src/src/core/lib/surface/call_utils.cc",
+    "src/src/core/lib/surface/call_utils.h",
     "src/src/core/lib/surface/channel.cc",
     "src/src/core/lib/surface/channel.h",
     "src/src/core/lib/surface/channel_init.cc",
@@ -7640,8 +4863,12 @@
     "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/connection_context.cc",
+    "src/src/core/lib/surface/connection_context.h",
     "src/src/core/lib/surface/event_string.cc",
     "src/src/core/lib/surface/event_string.h",
+    "src/src/core/lib/surface/filter_stack_call.cc",
+    "src/src/core/lib/surface/filter_stack_call.h",
     "src/src/core/lib/surface/init.h",
     "src/src/core/lib/surface/init_internally.cc",
     "src/src/core/lib/surface/init_internally.h",
@@ -7651,34 +4878,12 @@
     "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/surface/wait_for_cq_end_op.cc",
-    "src/src/core/lib/surface/wait_for_cq_end_op.h",
-    "src/src/core/lib/transport/batch_builder.cc",
-    "src/src/core/lib/transport/batch_builder.h",
-    "src/src/core/lib/transport/call_arena_allocator.cc",
-    "src/src/core/lib/transport/call_arena_allocator.h",
-    "src/src/core/lib/transport/call_filters.cc",
-    "src/src/core/lib/transport/call_filters.h",
     "src/src/core/lib/transport/call_final_info.cc",
     "src/src/core/lib/transport/call_final_info.h",
-    "src/src/core/lib/transport/call_spine.cc",
-    "src/src/core/lib/transport/call_spine.h",
     "src/src/core/lib/transport/connectivity_state.cc",
     "src/src/core/lib/transport/connectivity_state.h",
-    "src/src/core/lib/transport/custom_metadata.h",
     "src/src/core/lib/transport/error_utils.cc",
     "src/src/core/lib/transport/error_utils.h",
-    "src/src/core/lib/transport/http2_errors.h",
-    "src/src/core/lib/transport/message.cc",
-    "src/src/core/lib/transport/message.h",
-    "src/src/core/lib/transport/metadata.cc",
-    "src/src/core/lib/transport/metadata.h",
-    "src/src/core/lib/transport/metadata_batch.cc",
-    "src/src/core/lib/transport/metadata_batch.h",
-    "src/src/core/lib/transport/metadata_compression_traits.h",
-    "src/src/core/lib/transport/parsed_metadata.cc",
-    "src/src/core/lib/transport/parsed_metadata.h",
-    "src/src/core/lib/transport/simple_slice_based_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",
@@ -7687,8 +4892,6 @@
     "src/src/core/lib/transport/transport.h",
     "src/src/core/lib/transport/transport_fwd.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/load_balancing/backend_metric_data.h",
     "src/src/core/load_balancing/lb_policy.cc",
     "src/src/core/load_balancing/lb_policy.h",
@@ -7696,6 +4899,8 @@
     "src/src/core/load_balancing/lb_policy_registry.cc",
     "src/src/core/load_balancing/lb_policy_registry.h",
     "src/src/core/load_balancing/subchannel_interface.h",
+    "src/src/core/net/socket_mutator.cc",
+    "src/src/core/net/socket_mutator.h",
     "src/src/core/resolver/endpoint_addresses.cc",
     "src/src/core/resolver/endpoint_addresses.h",
     "src/src/core/resolver/resolver.cc",
@@ -7709,6 +4914,27 @@
     "src/src/core/service_config/service_config_call_data.h",
     "src/src/core/service_config/service_config_parser.cc",
     "src/src/core/service_config/service_config_parser.h",
+    "src/src/core/telemetry/call_tracer.cc",
+    "src/src/core/telemetry/call_tracer.h",
+    "src/src/core/telemetry/context_list_entry.cc",
+    "src/src/core/telemetry/context_list_entry.h",
+    "src/src/core/telemetry/histogram.h",
+    "src/src/core/telemetry/histogram_view.cc",
+    "src/src/core/telemetry/histogram_view.h",
+    "src/src/core/telemetry/instrument.cc",
+    "src/src/core/telemetry/instrument.h",
+    "src/src/core/telemetry/metrics.cc",
+    "src/src/core/telemetry/metrics.h",
+    "src/src/core/telemetry/stats.cc",
+    "src/src/core/telemetry/stats.h",
+    "src/src/core/telemetry/stats_data.cc",
+    "src/src/core/telemetry/stats_data.h",
+    "src/src/core/telemetry/tcp_tracer.cc",
+    "src/src/core/telemetry/tcp_tracer.h",
+    "src/src/core/transport/auth_context.cc",
+    "src/src/core/transport/auth_context.h",
+    "src/src/core/transport/auth_context_comparator_registry.h",
+    "src/src/core/transport/endpoint_transport.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",
@@ -7716,54 +4942,91 @@
     "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/src/core/util/atomic_utils.h",
+    "src/src/core/util/avl.h",
+    "src/src/core/util/backoff.cc",
+    "src/src/core/util/backoff.h",
+    "src/src/core/util/bitset.h",
+    "src/src/core/util/check_class_size.h",
+    "src/src/core/util/chunked_vector.h",
+    "src/src/core/util/cpp_impl_of.h",
+    "src/src/core/util/down_cast.h",
+    "src/src/core/util/dual_ref_counted.h",
+    "src/src/core/util/dump_args.cc",
+    "src/src/core/util/dump_args.h",
+    "src/src/core/util/event_log.cc",
+    "src/src/core/util/event_log.h",
+    "src/src/core/util/function_signature.h",
+    "src/src/core/util/gethostname.h",
+    "src/src/core/util/gethostname_fallback.cc",
+    "src/src/core/util/gethostname_host_name_max.cc",
+    "src/src/core/util/gethostname_sysconf.cc",
+    "src/src/core/util/glob.cc",
+    "src/src/core/util/glob.h",
+    "src/src/core/util/grpc_check.cc",
+    "src/src/core/util/grpc_check.h",
+    "src/src/core/util/grpc_if_nametoindex.h",
+    "src/src/core/util/grpc_if_nametoindex_posix.cc",
+    "src/src/core/util/grpc_if_nametoindex_unsupported.cc",
+    "src/src/core/util/if_list.h",
+    "src/src/core/util/json/json.h",
+    "src/src/core/util/json/json_args.h",
+    "src/src/core/util/json/json_reader.cc",
+    "src/src/core/util/json/json_reader.h",
+    "src/src/core/util/json/json_writer.cc",
+    "src/src/core/util/json/json_writer.h",
+    "src/src/core/util/latent_see.cc",
+    "src/src/core/util/latent_see.h",
+    "src/src/core/util/load_file.cc",
+    "src/src/core/util/load_file.h",
+    "src/src/core/util/manual_constructor.h",
+    "src/src/core/util/match.h",
+    "src/src/core/util/matchers.cc",
+    "src/src/core/util/matchers.h",
+    "src/src/core/util/memory_usage.h",
+    "src/src/core/util/notification.h",
+    "src/src/core/util/orphanable.h",
+    "src/src/core/util/overload.h",
+    "src/src/core/util/packed_table.h",
+    "src/src/core/util/per_cpu.cc",
+    "src/src/core/util/per_cpu.h",
+    "src/src/core/util/postmortem_emit.cc",
+    "src/src/core/util/postmortem_emit.h",
+    "src/src/core/util/ref_counted.h",
+    "src/src/core/util/ref_counted_ptr.h",
+    "src/src/core/util/ref_counted_string.cc",
+    "src/src/core/util/ref_counted_string.h",
+    "src/src/core/util/shared_bit_gen.cc",
+    "src/src/core/util/shared_bit_gen.h",
+    "src/src/core/util/single_set_ptr.h",
+    "src/src/core/util/sorted_pack.h",
+    "src/src/core/util/spinlock.h",
+    "src/src/core/util/status_helper.cc",
+    "src/src/core/util/status_helper.h",
+    "src/src/core/util/table.h",
+    "src/src/core/util/time.cc",
+    "src/src/core/util/time.h",
+    "src/src/core/util/time_averaged_stats.cc",
+    "src/src/core/util/time_averaged_stats.h",
+    "src/src/core/util/type_list.h",
+    "src/src/core/util/unique_type_name.h",
+    "src/src/core/util/upb_utils.h",
+    "src/src/core/util/uri.cc",
+    "src/src/core/util/uri.h",
+    "src/src/core/util/validation_errors.cc",
+    "src/src/core/util/validation_errors.h",
+    "src/src/core/util/wait_for_single_owner.cc",
+    "src/src/core/util/wait_for_single_owner.h",
+    "src/src/core/util/work_serializer.cc",
+    "src/src/core/util/work_serializer.h",
     "src/third_party/upb/upb/generated_code_support.h",
-    "src/third_party/upb/upb/mini_descriptor/build_enum.c",
-    "src/third_party/upb/upb/mini_descriptor/build_enum.h",
-    "src/third_party/upb/upb/mini_descriptor/decode.c",
-    "src/third_party/upb/upb/mini_descriptor/decode.h",
-    "src/third_party/upb/upb/mini_descriptor/internal/base92.c",
-    "src/third_party/upb/upb/mini_descriptor/internal/base92.h",
-    "src/third_party/upb/upb/mini_descriptor/internal/decoder.h",
-    "src/third_party/upb/upb/mini_descriptor/internal/encode.c",
-    "src/third_party/upb/upb/mini_descriptor/internal/encode.h",
-    "src/third_party/upb/upb/mini_descriptor/internal/encode.hpp",
-    "src/third_party/upb/upb/mini_descriptor/internal/modifiers.h",
-    "src/third_party/upb/upb/mini_descriptor/internal/wire_constants.h",
-    "src/third_party/upb/upb/mini_descriptor/link.c",
-    "src/third_party/upb/upb/mini_descriptor/link.h",
-    "src/third_party/upb/upb/wire/decode.c",
-    "src/third_party/upb/upb/wire/decode.h",
-    "src/third_party/upb/upb/wire/encode.c",
-    "src/third_party/upb/upb/wire/encode.h",
-    "src/third_party/upb/upb/wire/eps_copy_input_stream.c",
-    "src/third_party/upb/upb/wire/eps_copy_input_stream.h",
-    "src/third_party/upb/upb/wire/internal/constants.h",
-    "src/third_party/upb/upb/wire/internal/decode_fast.c",
-    "src/third_party/upb/upb/wire/internal/decode_fast.h",
-    "src/third_party/upb/upb/wire/internal/decoder.h",
-    "src/third_party/upb/upb/wire/internal/reader.h",
-    "src/third_party/upb/upb/wire/reader.c",
-    "src/third_party/upb/upb/wire/reader.h",
-    "src/third_party/upb/upb/wire/types.h",
   ]
   public_deps = [
-    ":absl_base_config",
-    ":absl_base_no_destructor",
-    ":absl_cleanup_cleanup",
-    ":absl_container_flat_hash_map",
-    ":absl_container_flat_hash_set",
-    ":absl_container_inlined_vector",
-    ":absl_functional_function_ref",
-    ":absl_hash_hash",
-    ":absl_meta_type_traits",
-    ":absl_status_statusor",
-    ":absl_types_span",
-    ":absl_utility_utility",
     ":address_sorting",
     ":gpr",
     ":re2",
-    ":upb_message_lib",
-    ":utf8_range_lib",
+    ":upb_textformat_lib",
+    "..:abseil_cpp",
     "..:zlib",
   ]
   public_configs = [ "..:grpc_internal_config" ]
@@ -7805,10 +5068,14 @@
     "src/src/compiler/ruby_generator_map-inl.h",
     "src/src/compiler/ruby_generator_string-inl.h",
     "src/src/compiler/schema_interface.h",
+    "src/third_party/utf8_range/utf8_validity.h",
   ]
   public_deps = [
+    "..:abseil_cpp",
     "..:protobuf_full",
     "..:protoc_lib",
+    "..:utf8_range",
+    "..:zlib",
   ]
   public_configs = [ "..:grpc_internal_config" ]
   configs -= [ "//gn/standalone:extra_warnings" ]
diff --git a/buildtools/grpc/protobuf_include/google/protobuf/compiler/csharp/names.h b/buildtools/grpc/protobuf_include/google/protobuf/compiler/csharp/names.h
deleted file mode 100644
index 6412317..0000000
--- a/buildtools/grpc/protobuf_include/google/protobuf/compiler/csharp/names.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (C) 2024 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 PROTOBUF_INCLUDE_GOOGLE_PROTOBUF_COMPILER_CSHARP_NAMES_H__
-#define PROTOBUF_INCLUDE_GOOGLE_PROTOBUF_COMPILER_CSHARP_NAMES_H__
-
-#include <google/protobuf/compiler/csharp/csharp_names.h>
-
-#endif  // PROTOBUF_INCLUDE_GOOGLE_PROTOBUF_COMPILER_CSHARP_NAMES_H__
diff --git a/buildtools/grpc/protobuf_include/google/protobuf/compiler/objectivec/names.h b/buildtools/grpc/protobuf_include/google/protobuf/compiler/objectivec/names.h
deleted file mode 100644
index db49c6c..0000000
--- a/buildtools/grpc/protobuf_include/google/protobuf/compiler/objectivec/names.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (C) 2024 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 GOOGLE_PROTOBUF_COMPILER_OBJECTIVEC_NAMES_H__
-#define GOOGLE_PROTOBUF_COMPILER_OBJECTIVEC_NAMES_H__
-
-#include <google/protobuf/compiler/objectivec/objectivec_helpers.h>
-
-#endif  // GOOGLE_PROTOBUF_COMPILER_OBJECTIVEC_NAMES_H__
diff --git a/docs/analysis/perfetto-sql-getting-started.md b/docs/analysis/perfetto-sql-getting-started.md
index cedc92c..fe54ad5 100644
--- a/docs/analysis/perfetto-sql-getting-started.md
+++ b/docs/analysis/perfetto-sql-getting-started.md
@@ -2,8 +2,23 @@
 
 PerfettoSQL is the foundation of trace analysis in Perfetto. It is a dialect of
 SQL that allows you to query the contents of your traces as if they were a
-database. This page introduces the core concepts of PerfettoSQL and provides
-guidance on how to write queries.
+database. This page introduces the core concepts of trace querying with PerfettoSQL
+and provides guidance on how to write queries.
+
+## Overview of Trace Querying
+
+The Perfetto UI is a powerful tool for visual analysis, offering call stacks, timeline views, thread tracks, and slices. However, it also includes a robust SQL query language (PerfettoSQL) which is interpreted by a query engine ([TraceProcessor](trace-processor.md)) which allows you to extract data programmatically.
+
+While the UI is powerful for myriad of analyses, users are able to write and execute queries within the Perfetto UI for multiple purposes such as:
+
+- Extracting performance data from traces.
+- Create custom visualizations (Debug tracks) to perform more complex analyses.
+- Creating derived metrics.
+- Identify performance bottlenecks using data-driven logic.
+
+Beyond the Perfetto UI, you can query traces programmatically using the [Python Trace Processor API](trace-processor-python.md) or the [C++ Trace Processor](trace-processor.md).
+
+Perfetto also supports bulk trace analysis through the [Batch Trace Processor](batch-trace-processor.md). A key advantage of this system is query reusability: the same PerfettoSQL queries used for individual traces can be applied to large datasets without modification.
 
 ## Core Concepts
 
@@ -82,11 +97,33 @@
 processes (e.g. in CPU scheduling data, thread tracks) uses `utid` and `upid`
 instead of the system identifiers.
 
-## Querying Traces
+### Querying traces in the Perfetto UI
 
 Now that you understand the core concepts, you can start writing queries.
 
-### Basic Queries
+Perfetto provides an SQL free form multi line text input UI directly within the UI for executing free-form queries. To access it:
+
+1. Open a trace in the [Perfetto UI](https://ui.perfetto.dev/).
+
+2. Click the **Query (SQL)** tab in the navigation bar (see image below).
+
+![Query (SQL) Tab](/docs/images/perfettosql_query_tab.png)
+
+Upon selecting this tab, the querying UI will show up and you will be able to free-form write your PerfettoSQL queries, it will let you write queries, show query results and query history as shown in the image below.
+
+![Query UI](/docs/images/perfetto-sql-cli-description.png)
+
+3. Enter your query in the Query UI area and press Ctrl + Enter (or Cmd + Enter) to execute.
+
+Once executed query results will be shown within the same window.
+
+This method of querying is useful when you have some degree of knowledge about how and what to query.
+
+In order to find out how to write queries refer to the [Syntax guide](perfetto-sql-syntax.md), then in order to find available tables, modules, functions, etc. refer to the [Standard Library](stdlib-docs.autogen).
+
+A lot of times, it will be useful to transform query results into tracks to perform complex analyses within the UI, we encourage readers to take a look at [Debug Tracks](debug-tracks.md) for more information on how to achieve this.
+
+### Example: Executing a basic query
 
 The simplest way to explore a trace is to select from the raw tables. For
 example, to see the first 10 slices in a trace, you can run:
@@ -95,6 +132,11 @@
 SELECT ts, dur, name FROM slice LIMIT 10;
 ```
 
+Which you can write and execute by clicking on **Run Query** within the PerfettoSQL  querying UI, below is an example from a trace.
+
+![Basic Query](/docs/images/perfetto-sql-basic-query.png)
+
+
 ### Getting More Context with JOINs
 
 A common question when querying tables in trace processor is: "how do I obtain
diff --git a/docs/images/perfetto-sql-basic-query.png b/docs/images/perfetto-sql-basic-query.png
new file mode 100644
index 0000000..024040c
--- /dev/null
+++ b/docs/images/perfetto-sql-basic-query.png
Binary files differ
diff --git a/docs/images/perfetto-sql-cli-description.png b/docs/images/perfetto-sql-cli-description.png
new file mode 100644
index 0000000..45ba307
--- /dev/null
+++ b/docs/images/perfetto-sql-cli-description.png
Binary files differ
diff --git a/docs/images/perfettosql_query_tab.png b/docs/images/perfettosql_query_tab.png
new file mode 100644
index 0000000..1327d08
--- /dev/null
+++ b/docs/images/perfettosql_query_tab.png
Binary files differ
diff --git a/gn/BUILD.gn b/gn/BUILD.gn
index 60a4ce1..8a65491 100644
--- a/gn/BUILD.gn
+++ b/gn/BUILD.gn
@@ -343,6 +343,9 @@
       perfetto_isystem_cflag,
       rebase_path("../buildtools/protobuf/src", root_build_dir),
     ]
+
+    # Protobuf v22+ headers include abseil headers.
+    include_dirs = [ "../buildtools/abseil-cpp" ]
   }
 }
 
diff --git a/include/perfetto/public/abi/track_event_hl_abi.h b/include/perfetto/public/abi/track_event_hl_abi.h
index 94bff41..bd25ed6 100644
--- a/include/perfetto/public/abi/track_event_hl_abi.h
+++ b/include/perfetto/public/abi/track_event_hl_abi.h
@@ -46,7 +46,6 @@
   PERFETTO_TE_HL_PROTO_TYPE_FIXED32 = 5,
   PERFETTO_TE_HL_PROTO_TYPE_DOUBLE = 6,
   PERFETTO_TE_HL_PROTO_TYPE_FLOAT = 7,
-  PERFETTO_TE_HL_PROTO_TYPE_CSTR_INTERNED = 8,
 };
 
 // Common header for all the proto fields.
@@ -63,18 +62,6 @@
   const char* str;
 };
 
-// PERFETTO_TE_HL_PROTO_TYPE_CSTR_INTERNED
-struct PerfettoTeHlProtoFieldCstrInterned {
-  struct PerfettoTeHlProtoField header;
-  // Null terminated string.
-  const char* str;
-  // The field id of the interned data message (e.g., InternedData.event_names).
-  // `str` will be interned and the resulting iid will be written in the proto
-  // field `header.id`. If zero, `str` is written directly and no interning
-  // occurs.
-  uint32_t interned_type_id;
-};
-
 // PERFETTO_TE_HL_PROTO_TYPE_BYTES
 struct PerfettoTeHlProtoFieldBytes {
   struct PerfettoTeHlProtoField header;
diff --git a/include/perfetto/public/protos/trace/interned_data/interned_data.pzc.h b/include/perfetto/public/protos/trace/interned_data/interned_data.pzc.h
index c0515f1..4b94620 100644
--- a/include/perfetto/public/protos/trace/interned_data/interned_data.pzc.h
+++ b/include/perfetto/public/protos/trace/interned_data/interned_data.pzc.h
@@ -25,7 +25,6 @@
 
 #include "perfetto/public/pb_macros.h"
 
-PERFETTO_PB_MSG_DECL(perfetto_protos_AndroidJobName);
 PERFETTO_PB_MSG_DECL(perfetto_protos_AppWakelockInfo);
 PERFETTO_PB_MSG_DECL(perfetto_protos_Callstack);
 PERFETTO_PB_MSG_DECL(perfetto_protos_DebugAnnotationName);
@@ -48,10 +47,6 @@
 PERFETTO_PB_MSG_DECL(perfetto_protos_SourceLocation);
 PERFETTO_PB_MSG_DECL(perfetto_protos_UnsymbolizedSourceLocation);
 
-PERFETTO_PB_MSG(perfetto_protos_AndroidJobName);
-PERFETTO_PB_FIELD(perfetto_protos_AndroidJobName, VARINT, uint64_t, iid, 1);
-PERFETTO_PB_FIELD(perfetto_protos_AndroidJobName, STRING, const char*, name, 2);
-
 PERFETTO_PB_MSG(perfetto_protos_InternedData);
 PERFETTO_PB_FIELD(perfetto_protos_InternedData,
                   MSG,
@@ -223,10 +218,5 @@
                   perfetto_protos_InternedString,
                   correlation_id_str,
                   43);
-PERFETTO_PB_FIELD(perfetto_protos_InternedData,
-                  MSG,
-                  perfetto_protos_AndroidJobName,
-                  android_job_name,
-                  44);
 
 #endif  // INCLUDE_PERFETTO_PUBLIC_PROTOS_TRACE_INTERNED_DATA_INTERNED_DATA_PZC_H_
diff --git a/include/perfetto/tracing/internal/track_event_data_source.h b/include/perfetto/tracing/internal/track_event_data_source.h
index 21681df..815aec4 100644
--- a/include/perfetto/tracing/internal/track_event_data_source.h
+++ b/include/perfetto/tracing/internal/track_event_data_source.h
@@ -391,6 +391,31 @@
     return enabled;
   }
 
+  // Determine if `config` enables a given static category.
+  static bool IsCategoryEnabledByConfig(
+      const protos::gen::TrackEventConfig& config,
+      size_t category_index) {
+    return TrackEventInternal::IsCategoryEnabled(
+        *Registry, config, *Registry->GetCategory(category_index));
+  }
+
+  // Determine if `config` enables a given dynamic category.
+  static bool IsCategoryEnabledByConfig(
+      const protos::gen::TrackEventConfig& config,
+      const DynamicCategory& category) {
+    return TrackEventInternal::IsCategoryEnabled(
+        *Registry, config, Category::FromDynamicCategory(category));
+  }
+
+  // Determine if tracing for the given static category is enabled in a session
+  // identified by `internal_instance_index`.
+  static bool IsCategoryEnabledBySession(size_t internal_instance_index,
+                                         size_t category_index) {
+    std::atomic<uint8_t>* state = Registry->GetCategoryState(category_index);
+    return state->load(std::memory_order_relaxed) &
+           static_cast<uint8_t>(1u << internal_instance_index);
+  }
+
   // Determine if tracing for the given static category is enabled.
   static bool IsCategoryEnabled(size_t category_index) {
     return Registry->GetCategoryState(category_index)
diff --git a/protos/perfetto/perfetto_sql/structured_query.proto b/protos/perfetto/perfetto_sql/structured_query.proto
index 53d263b..635a301 100644
--- a/protos/perfetto/perfetto_sql/structured_query.proto
+++ b/protos/perfetto/perfetto_sql/structured_query.proto
@@ -202,6 +202,44 @@
   }
 
   // DON'T USE. EXPERIMENTAL.
+  // A single-row source representing a time range interval.
+  //
+  // This is useful for representing a selected time range that can be used
+  // with interval_intersect or other operations that need to filter data
+  // to a specific time window.
+  //
+  // Produces a source with the schema (id, ts, dur) where:
+  //   - id is always 0 (single row)
+  //   - ts is the start timestamp
+  //   - dur is the duration
+  message ExperimentalTimeRange {
+    // The mode of the time range.
+    enum Mode {
+      // Static mode: ts and dur are fixed values and must be provided.
+      STATIC = 0;
+      // Dynamic mode: ts and dur are derived from trace bounds at runtime.
+      // If ts is not set, trace_start() is used.
+      // If dur is not set, trace_dur() is used.
+      DYNAMIC = 1;
+    }
+
+    // The mode of this time range. Required.
+    // - STATIC: ts and dur must be set.
+    // - MODE_DYNAMIC: ts and dur are optional (defaults to trace bounds).
+    optional Mode mode = 1;
+
+    // The start timestamp in nanoseconds.
+    // Required for STATIC, optional for DYNAMIC.
+    // If not set in DYNAMIC, the backend will use trace_start().
+    optional int64 ts = 2;
+
+    // The duration in nanoseconds.
+    // Required for STATIC, optional for DYNAMIC.
+    // If not set in DYNAMIC, the backend will use trace_dur().
+    optional int64 dur = 3;
+  }
+
+  // DON'T USE. EXPERIMENTAL.
   message ExperimentalJoin {
     message EqualityColumns {
       // The name of the column in the left query. Required.
@@ -432,6 +470,9 @@
 
     // DON'T USE. EXPERIMENTAL.
     ExperimentalCreateSlices experimental_create_slices = 104;
+
+    // DON'T USE. EXPERIMENTAL.
+    ExperimentalTimeRange experimental_time_range = 105;
   }
 
   // Evaluation order of operations:
diff --git a/protos/perfetto/trace/android/server/windowmanagerservice.proto b/protos/perfetto/trace/android/server/windowmanagerservice.proto
index a95871e..1e9eb61 100644
--- a/protos/perfetto/trace/android/server/windowmanagerservice.proto
+++ b/protos/perfetto/trace/android/server/windowmanagerservice.proto
@@ -20,6 +20,7 @@
 import "protos/perfetto/trace/android/content/activityinfo.proto";
 import "protos/perfetto/trace/android/content/configuration.proto";
 import "protos/perfetto/trace/android/graphics/rect.proto";
+import "protos/perfetto/trace/android/graphics/insets.proto";
 import "protos/perfetto/trace/android/server/windowcontainerthumbnail.proto";
 import "protos/perfetto/trace/android/server/surfaceanimator.proto";
 import "protos/perfetto/trace/android/view/displaycutout.proto";
@@ -32,6 +33,7 @@
 import "protos/perfetto/trace/android/view/surfacecontrol.proto";
 import "protos/perfetto/trace/android/view/insetssource.proto";
 import "protos/perfetto/trace/android/view/insetssourcecontrol.proto";
+import "protos/perfetto/trace/android/view/insetsstate.proto";
 
 import "protos/perfetto/trace/android/view/enums.proto";
 
@@ -216,13 +218,15 @@
   optional WindowStateProto input_method_control_target = 29
       [deprecated = true];
   optional WindowStateProto current_focus = 30 [deprecated = true];
-  optional ImeInsetsSourceProviderProto ime_insets_source_provider = 31;
+  optional ImeInsetsSourceProviderProto ime_insets_source_provider = 31
+      [deprecated = true];
   optional bool can_show_ime = 32 [deprecated = true];
 
   optional DisplayRotationProto display_rotation = 33;
   optional int32 ime_policy = 34;
 
-  repeated InsetsSourceProviderProto insets_source_providers = 35;
+  repeated InsetsSourceProviderProto insets_source_providers = 35
+      [deprecated = true];
   optional bool is_sleeping = 36;
   repeated string sleep_tokens = 37;
   repeated RectProto keep_clear_areas = 38;
@@ -233,6 +237,30 @@
   optional IdentifierProto current_focus_identifier = 43;
   optional RemoteInsetsControlTargetProto remote_insets_control_target = 44;
   optional int32 engagement_mode = 45;
+  optional InsetsStateControllerProto insets_state_controller = 46;
+  optional DisplayPolicyProto display_policy = 47;
+  optional InsetsPolicyProto insets_policy = 48;
+}
+
+/* represents InsetsPolicy object */
+message InsetsPolicyProto {
+  optional int32 status_state = 1;
+  optional int32 nav_state = 2;
+  optional int32 showing_transient_types = 3;
+  optional int32 hiding_transient_types = 4;
+  optional int32 forcibly_showing_types = 5;
+  optional int32 forcibly_hiding_types = 6;
+  optional InsetsControlTargetProto fake_status_control_target = 7;
+  optional InsetsControlTargetProto fake_nav_control_target = 8;
+  optional InsetsControlTargetProto hiding_transient_status_control_target = 9;
+  optional InsetsControlTargetProto hiding_transient_nav_control_target = 10;
+}
+
+/* represents InsetsControlTarget object */
+message InsetsControlTargetProto {
+  optional IdentifierProto identifier = 1;
+  optional int32 requested_visible_types = 2;
+  optional int32 animating_types = 3;
 }
 
 // represents DisplayArea object
@@ -264,6 +292,9 @@
   optional RectProto stable_bounds = 1 [deprecated = true];
   optional RectProto dock = 2 [deprecated = true];
   optional RectProto current = 3 [deprecated = true];
+  optional int32 width = 4;
+  optional int32 height = 5;
+  optional int32 rotation = 6;
 }
 
 message DisplayRotationProto {
@@ -279,6 +310,53 @@
   optional bool is_fixed_to_user_rotation = 6;
 }
 
+/* represents DisplayPolicy */
+message DisplayPolicyProto {
+  optional DecorInsetsProto decor_insets = 1;
+  optional DecorInsetsProto cached_decor_insets = 2;
+  optional int32 last_disable_flags = 3;
+  optional int32 last_appearance = 4;
+  optional int32 last_behavior = 5;
+  optional IdentifierProto left_gesture_host_identifier = 6;
+  optional IdentifierProto top_gesture_host_identifier = 7;
+  optional IdentifierProto right_gesture_host_identifier = 8;
+  optional IdentifierProto bottom_gesture_host_identifier = 9;
+  optional IdentifierProto nav_bar_background_window_candidate_identifier = 10;
+  repeated AppearanceRegionProto last_status_bar_appearance_regions = 11;
+  repeated IdentifierProto status_bar_background_windows_identifier = 12;
+  optional int32 showing_transient_insets_types = 13;
+  repeated SystemBarVisibilityOverrideProto system_bar_visibility_override = 14;
+  optional bool ime_insets_consumed = 15;
+  optional bool force_show_navigation_bar_enabled = 16;
+}
+
+/* represents DecorInsets */
+message DecorInsetsProto {
+  repeated DecorInsetsInfoProto decor_insets_info = 1;
+}
+
+/* represents DecorInsets.Info */
+message DecorInsetsInfoProto {
+  optional int32 rotation = 1;
+  optional RectProto override_config_insets = 2;
+  optional RectProto override_non_decor_insets = 3;
+  optional RectProto override_config_frame = 4;
+  optional RectProto override_non_decor_frame = 5;
+}
+
+/* represents AppearanceRegion */
+message AppearanceRegionProto {
+  optional int32 appearance = 1;
+  optional RectProto bounds = 2;
+}
+
+/* represents SystemBarVisibilityOverride */
+message SystemBarVisibilityOverrideProto {
+  optional int32 caller = 1;
+  optional int32 show = 2;
+  optional int32 hide = 3;
+}
+
 // represents DockedTaskDividerController
 message DockedTaskDividerControllerProto {
   optional bool minimized_dock = 1 [deprecated = true];
@@ -581,9 +659,16 @@
   optional RectProto compat_frame = 16;
 }
 
+/* represents InsetsStateController */
+message InsetsStateControllerProto {
+  optional InsetsStateProto insets_state = 1;
+  repeated InsetsSourceProviderProto insets_source_providers = 2;
+}
+
+/* represents InsetsSourceProvider */
 message InsetsSourceProviderProto {
   optional InsetsSourceProto source = 1;
-  optional RectProto frame = 2;
+  optional RectProto frame = 2 [deprecated = true];
   optional InsetsSourceControlProto fake_control = 3;
   optional InsetsSourceControlProto control = 4;
   optional WindowStateProto control_target = 5 [deprecated = true];
@@ -603,6 +688,7 @@
   optional IdentifierProto pending_control_target_identifier = 18;
   optional IdentifierProto fake_control_target_identifier = 19;
   optional IdentifierProto source_window_state_identifier = 20;
+  optional InsetsProto insets_hint = 21;
 }
 
 message ImeInsetsSourceProviderProto {
diff --git a/protos/perfetto/trace/android/view/windowlayoutparams.proto b/protos/perfetto/trace/android/view/windowlayoutparams.proto
index 86e677b..ff458e3 100644
--- a/protos/perfetto/trace/android/view/windowlayoutparams.proto
+++ b/protos/perfetto/trace/android/view/windowlayoutparams.proto
@@ -17,6 +17,8 @@
 syntax = "proto2";
 
 import "protos/perfetto/trace/android/graphics/pixelformat.proto";
+import "protos/perfetto/trace/android/graphics/insets.proto";
+import "protos/perfetto/trace/android/graphics/rect.proto";
 import "protos/perfetto/trace/android/view/display.proto";
 import "protos/perfetto/trace/android/typedef.proto";
 
@@ -89,4 +91,25 @@
   optional uint32 forcibly_shown_types = 34
       [(.perfetto.protos.typedef) =
            "android.view.WindowInsets.Type.InsetsType"];
+  repeated InsetsFrameProviderProto provided_insets = 35;
+  repeated WindowLayoutParamsProto params_for_rotation = 36;
 }
+
+/* represents InsetsFrameProvider */
+message InsetsFrameProviderProto {
+  optional int32 id = 1;
+  optional int32 type = 2;
+  optional int32 source = 3;
+  optional RectProto arbitrary_rectangle = 4;
+  optional int32 flags = 5;
+  optional InsetsProto insets_size = 6;
+  repeated InsetsSizeOverrideProto insets_size_override = 7;
+  optional InsetsProto minimal_insets_size_in_display_cutout_safe = 8;
+  repeated RectProto bounding_rects = 9;
+}
+
+/* represents InsetsSizeOverride */
+message InsetsSizeOverrideProto {
+  optional int32 windowType = 1;
+  optional InsetsProto insets_size = 2;
+}
\ No newline at end of file
diff --git a/protos/perfetto/trace/etw/etw.proto b/protos/perfetto/trace/etw/etw.proto
index 8415866..b5fec0b 100644
--- a/protos/perfetto/trace/etw/etw.proto
+++ b/protos/perfetto/trace/etw/etw.proto
@@ -229,6 +229,7 @@
   optional uint32 info_class = 6;
   optional uint32 file_index = 7;
   optional string file_name = 8;
+  optional uint32 opcode = 9;
 }
 
 // Proto definition based on the `FileIo_Info` class definition.
@@ -239,6 +240,7 @@
   optional uint64 extra_info = 4;
   optional uint32 ttid = 5;
   optional uint32 info_class = 6;
+  optional uint32 opcode = 7;
 }
 
 // Proto definition based on the `FileIo_ReadWrite` class definition.
@@ -250,6 +252,7 @@
   optional uint32 ttid = 5;
   optional uint32 io_size = 6;
   optional uint32 io_flags = 7;
+  optional uint32 opcode = 8;
 }
 
 // Proto definition based on the `FileIo_SimpleOp` class definition.
@@ -258,6 +261,7 @@
   optional uint64 file_object = 2;
   optional uint64 file_key = 3;
   optional uint32 ttid = 4;
+  optional uint32 opcode = 5;
 }
 
 // Proto definition based on the `FileIo_OpEnd` class definition.
diff --git a/protos/perfetto/trace/interned_data/interned_data.proto b/protos/perfetto/trace/interned_data/interned_data.proto
index b40373e..f48f5dc 100644
--- a/protos/perfetto/trace/interned_data/interned_data.proto
+++ b/protos/perfetto/trace/interned_data/interned_data.proto
@@ -56,7 +56,7 @@
 // emitted proactively in advance of referring to them in later packets.
 //
 // Next reserved id: 8 (up to 15).
-// Next id: 45.
+// Next id: 44.
 message InternedData {
   // TODO(eseckler): Replace iid fields inside interned messages with
   // map<iid, message> type fields in InternedData.
@@ -148,15 +148,6 @@
   // Interned correlation ids in track_event.
   repeated InternedString correlation_id_str = 43;
 
-  // Interned job names for Android Job Names. These are separate from
-  // other strings because they are under app control.
-  repeated AndroidJobName android_job_name = 44;
-
   // removed ProfiledFrameSymbols profiled_frame_symbols
   reserved 21;
 }
-
-message AndroidJobName {
-  optional uint64 iid = 1;
-  optional string name = 2;
-}
diff --git a/protos/perfetto/trace/perfetto_trace.proto b/protos/perfetto/trace/perfetto_trace.proto
index f840507..be0b2db 100644
--- a/protos/perfetto/trace/perfetto_trace.proto
+++ b/protos/perfetto/trace/perfetto_trace.proto
@@ -7763,6 +7763,7 @@
   optional uint32 info_class = 6;
   optional uint32 file_index = 7;
   optional string file_name = 8;
+  optional uint32 opcode = 9;
 }
 
 // Proto definition based on the `FileIo_Info` class definition.
@@ -7773,6 +7774,7 @@
   optional uint64 extra_info = 4;
   optional uint32 ttid = 5;
   optional uint32 info_class = 6;
+  optional uint32 opcode = 7;
 }
 
 // Proto definition based on the `FileIo_ReadWrite` class definition.
@@ -7784,6 +7786,7 @@
   optional uint32 ttid = 5;
   optional uint32 io_size = 6;
   optional uint32 io_flags = 7;
+  optional uint32 opcode = 8;
 }
 
 // Proto definition based on the `FileIo_SimpleOp` class definition.
@@ -7792,6 +7795,7 @@
   optional uint64 file_object = 2;
   optional uint64 file_key = 3;
   optional uint32 ttid = 4;
+  optional uint32 opcode = 5;
 }
 
 // Proto definition based on the `FileIo_OpEnd` class definition.
@@ -15252,7 +15256,7 @@
 // emitted proactively in advance of referring to them in later packets.
 //
 // Next reserved id: 8 (up to 15).
-// Next id: 45.
+// Next id: 44.
 message InternedData {
   // TODO(eseckler): Replace iid fields inside interned messages with
   // map<iid, message> type fields in InternedData.
@@ -15344,19 +15348,10 @@
   // Interned correlation ids in track_event.
   repeated InternedString correlation_id_str = 43;
 
-  // Interned job names for Android Job Names. These are separate from
-  // other strings because they are under app control.
-  repeated AndroidJobName android_job_name = 44;
-
   // removed ProfiledFrameSymbols profiled_frame_symbols
   reserved 21;
 }
 
-message AndroidJobName {
-  optional uint64 iid = 1;
-  optional string name = 2;
-}
-
 // End of protos/perfetto/trace/interned_data/interned_data.proto
 
 // Begin of protos/perfetto/trace/memory_graph.proto
diff --git a/protos/third_party/chromium/optimization_guide/common_quality_data.proto b/protos/third_party/chromium/optimization_guide/common_quality_data.proto
index 0061c25..374cae5 100644
--- a/protos/third_party/chromium/optimization_guide/common_quality_data.proto
+++ b/protos/third_party/chromium/optimization_guide/common_quality_data.proto
@@ -2046,6 +2046,7 @@
   // Image chunks.
   CONTENT_ATTRIBUTE_IMAGE = 9;
 
+  // Root SVG nodes.
   CONTENT_ATTRIBUTE_SVG = 25;
 
   CONTENT_ATTRIBUTE_CANVAS = 26;
diff --git a/python/generators/sql_processing/stdlib_tags.py b/python/generators/sql_processing/stdlib_tags.py
index 2f00b39..40b3723 100644
--- a/python/generators/sql_processing/stdlib_tags.py
+++ b/python/generators/sql_processing/stdlib_tags.py
@@ -162,7 +162,7 @@
     'android.frame_blocking_calls.blocking_calls_aggregation': [
         'android', 'ui', 'ui:frames'
     ],
-    'android.cujs.cujs_base': ['android', 'ui', 'ui:jank'],
+    'android.cujs.base': ['android', 'ui', 'ui:jank'],
     'android.cujs.sysui_cujs': ['android', 'ui', 'ui:jank'],
     'android.input': ['android', 'ui', 'input'],
     'android.screenshots': ['android', 'ui'],
diff --git a/python/perfetto/protos/perfetto/trace/perfetto_trace_pb2.py b/python/perfetto/protos/perfetto/trace/perfetto_trace_pb2.py
index 2f00f5a..1bcc1ca 100644
--- a/python/perfetto/protos/perfetto/trace/perfetto_trace_pb2.py
+++ b/python/perfetto/protos/perfetto/trace/perfetto_trace_pb2.py
@@ -13,7 +13,7 @@
 
 
 
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*protos/perfetto/trace/perfetto_trace.proto\x12\x0fperfetto.protos\"\x94\x01\n\x10\x46traceDescriptor\x12K\n\x11\x61trace_categories\x18\x01 \x03(\x0b\x32\x30.perfetto.protos.FtraceDescriptor.AtraceCategory\x1a\x33\n\x0e\x41traceCategory\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\"\xc8\x0b\n\x14GpuCounterDescriptor\x12\x43\n\x05specs\x18\x01 \x03(\x0b\x32\x34.perfetto.protos.GpuCounterDescriptor.GpuCounterSpec\x12\x45\n\x06\x62locks\x18\x02 \x03(\x0b\x32\x35.perfetto.protos.GpuCounterDescriptor.GpuCounterBlock\x12\x1e\n\x16min_sampling_period_ns\x18\x03 \x01(\x04\x12\x1e\n\x16max_sampling_period_ns\x18\x04 \x01(\x04\x12&\n\x1esupports_instrumented_sampling\x18\x05 \x01(\x08\x1a\x8e\x03\n\x0eGpuCounterSpec\x12\x12\n\ncounter_id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x18\n\x0eint_peak_value\x18\x05 \x01(\x03H\x00\x12\x1b\n\x11\x64ouble_peak_value\x18\x06 \x01(\x01H\x00\x12J\n\x0fnumerator_units\x18\x07 \x03(\x0e\x32\x31.perfetto.protos.GpuCounterDescriptor.MeasureUnit\x12L\n\x11\x64\x65nominator_units\x18\x08 \x03(\x0e\x32\x31.perfetto.protos.GpuCounterDescriptor.MeasureUnit\x12\x19\n\x11select_by_default\x18\t \x01(\x08\x12\x45\n\x06groups\x18\n \x03(\x0e\x32\x35.perfetto.protos.GpuCounterDescriptor.GpuCounterGroupB\x0c\n\npeak_valueJ\x04\x08\x04\x10\x05\x1as\n\x0fGpuCounterBlock\x12\x10\n\x08\x62lock_id\x18\x01 \x01(\r\x12\x16\n\x0e\x62lock_capacity\x18\x02 \x01(\r\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x13\n\x0b\x63ounter_ids\x18\x05 \x03(\r\"\x86\x01\n\x0fGpuCounterGroup\x12\x10\n\x0cUNCLASSIFIED\x10\x00\x12\n\n\x06SYSTEM\x10\x01\x12\x0c\n\x08VERTICES\x10\x02\x12\r\n\tFRAGMENTS\x10\x03\x12\x0e\n\nPRIMITIVES\x10\x04\x12\n\n\x06MEMORY\x10\x05\x12\x0b\n\x07\x43OMPUTE\x10\x06\x12\x0f\n\x0bRAY_TRACING\x10\x07\"\xac\x04\n\x0bMeasureUnit\x12\x08\n\x04NONE\x10\x00\x12\x07\n\x03\x42IT\x10\x01\x12\x0b\n\x07KILOBIT\x10\x02\x12\x0b\n\x07MEGABIT\x10\x03\x12\x0b\n\x07GIGABIT\x10\x04\x12\x0b\n\x07TERABIT\x10\x05\x12\x0b\n\x07PETABIT\x10\x06\x12\x08\n\x04\x42YTE\x10\x07\x12\x0c\n\x08KILOBYTE\x10\x08\x12\x0c\n\x08MEGABYTE\x10\t\x12\x0c\n\x08GIGABYTE\x10\n\x12\x0c\n\x08TERABYTE\x10\x0b\x12\x0c\n\x08PETABYTE\x10\x0c\x12\t\n\x05HERTZ\x10\r\x12\r\n\tKILOHERTZ\x10\x0e\x12\r\n\tMEGAHERTZ\x10\x0f\x12\r\n\tGIGAHERTZ\x10\x10\x12\r\n\tTERAHERTZ\x10\x11\x12\r\n\tPETAHERTZ\x10\x12\x12\x0e\n\nNANOSECOND\x10\x13\x12\x0f\n\x0bMICROSECOND\x10\x14\x12\x0f\n\x0bMILLISECOND\x10\x15\x12\n\n\x06SECOND\x10\x16\x12\n\n\x06MINUTE\x10\x17\x12\x08\n\x04HOUR\x10\x18\x12\n\n\x06VERTEX\x10\x19\x12\t\n\x05PIXEL\x10\x1a\x12\x0c\n\x08TRIANGLE\x10\x1b\x12\r\n\tPRIMITIVE\x10&\x12\x0c\n\x08\x46RAGMENT\x10\'\x12\r\n\tMILLIWATT\x10\x1c\x12\x08\n\x04WATT\x10\x1d\x12\x0c\n\x08KILOWATT\x10\x1e\x12\t\n\x05JOULE\x10\x1f\x12\x08\n\x04VOLT\x10 \x12\n\n\x06\x41MPERE\x10!\x12\x0b\n\x07\x43\x45LSIUS\x10\"\x12\x0e\n\nFAHRENHEIT\x10#\x12\n\n\x06KELVIN\x10$\x12\x0b\n\x07PERCENT\x10%\x12\x0f\n\x0bINSTRUCTION\x10(\"E\n\x12TrackEventCategory\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0c\n\x04tags\x18\x03 \x03(\t\"Y\n\x14TrackEventDescriptor\x12\x41\n\x14\x61vailable_categories\x18\x01 \x03(\x0b\x32#.perfetto.protos.TrackEventCategory\"\xfe\x02\n\x14\x44\x61taSourceDescriptor\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\n\n\x02id\x18\x07 \x01(\x04\x12\x1b\n\x13will_notify_on_stop\x18\x02 \x01(\x08\x12\x1c\n\x14will_notify_on_start\x18\x03 \x01(\x08\x12\'\n\x1fhandles_incremental_state_clear\x18\x04 \x01(\x08\x12\x10\n\x08no_flush\x18\t \x01(\x08\x12I\n\x16gpu_counter_descriptor\x18\x05 \x01(\x0b\x32%.perfetto.protos.GpuCounterDescriptorB\x02(\x01\x12I\n\x16track_event_descriptor\x18\x06 \x01(\x0b\x32%.perfetto.protos.TrackEventDescriptorB\x02(\x01\x12@\n\x11\x66trace_descriptor\x18\x08 \x01(\x0b\x32!.perfetto.protos.FtraceDescriptorB\x02(\x01\"\xb7\x06\n\x13TracingServiceState\x12@\n\tproducers\x18\x01 \x03(\x0b\x32-.perfetto.protos.TracingServiceState.Producer\x12\x45\n\x0c\x64\x61ta_sources\x18\x02 \x03(\x0b\x32/.perfetto.protos.TracingServiceState.DataSource\x12M\n\x10tracing_sessions\x18\x06 \x03(\x0b\x32\x33.perfetto.protos.TracingServiceState.TracingSession\x12!\n\x19supports_tracing_sessions\x18\x07 \x01(\x08\x12\x14\n\x0cnum_sessions\x18\x03 \x01(\x05\x12\x1c\n\x14num_sessions_started\x18\x04 \x01(\x05\x12\x1f\n\x17tracing_service_version\x18\x05 \x01(\t\x1a\x63\n\x08Producer\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0b\n\x03pid\x18\x05 \x01(\x05\x12\x0b\n\x03uid\x18\x03 \x01(\x05\x12\x13\n\x0bsdk_version\x18\x04 \x01(\t\x12\x0e\n\x06\x66rozen\x18\x06 \x01(\x08\x1a_\n\nDataSource\x12<\n\rds_descriptor\x18\x01 \x01(\x0b\x32%.perfetto.protos.DataSourceDescriptor\x12\x13\n\x0bproducer_id\x18\x02 \x01(\x05\x1a\x89\x02\n\x0eTracingSession\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x14\n\x0c\x63onsumer_uid\x18\x02 \x01(\x05\x12\r\n\x05state\x18\x03 \x01(\t\x12\x1b\n\x13unique_session_name\x18\x04 \x01(\t\x12\x16\n\x0e\x62uffer_size_kb\x18\x05 \x03(\r\x12\x13\n\x0b\x64uration_ms\x18\x06 \x01(\r\x12\x18\n\x10num_data_sources\x18\x07 \x01(\r\x12\x19\n\x11start_realtime_ns\x18\x08 \x01(\x03\x12\x17\n\x0f\x62ugreport_score\x18\t \x01(\x05\x12\x1a\n\x12\x62ugreport_filename\x18\n \x01(\t\x12\x12\n\nis_started\x18\x0b \x01(\x08\"@\n!AndroidGameInterventionListConfig\x12\x1b\n\x13package_name_filter\x18\x01 \x03(\t\"\xd3\x04\n\x17\x41ndroidInputEventConfig\x12@\n\x04mode\x18\x01 \x01(\x0e\x32\x32.perfetto.protos.AndroidInputEventConfig.TraceMode\x12\x41\n\x05rules\x18\x02 \x03(\x0b\x32\x32.perfetto.protos.AndroidInputEventConfig.TraceRule\x12%\n\x1dtrace_dispatcher_input_events\x18\x03 \x01(\x08\x12(\n trace_dispatcher_window_dispatch\x18\x04 \x01(\x08\x1a\xc8\x01\n\tTraceRule\x12H\n\x0btrace_level\x18\x01 \x01(\x0e\x32\x33.perfetto.protos.AndroidInputEventConfig.TraceLevel\x12\x1a\n\x12match_all_packages\x18\x02 \x03(\t\x12\x1a\n\x12match_any_packages\x18\x03 \x03(\t\x12\x14\n\x0cmatch_secure\x18\x04 \x01(\x08\x12#\n\x1bmatch_ime_connection_active\x18\x05 \x01(\x08\"?\n\tTraceMode\x12\x18\n\x14TRACE_MODE_TRACE_ALL\x10\x00\x12\x18\n\x14TRACE_MODE_USE_RULES\x10\x01\"V\n\nTraceLevel\x12\x14\n\x10TRACE_LEVEL_NONE\x10\x00\x12\x18\n\x14TRACE_LEVEL_REDACTED\x10\x01\x12\x18\n\x14TRACE_LEVEL_COMPLETE\x10\x02\"\x94\x01\n\x10\x41ndroidLogConfig\x12.\n\x07log_ids\x18\x01 \x03(\x0e\x32\x1d.perfetto.protos.AndroidLogId\x12\x35\n\x08min_prio\x18\x03 \x01(\x0e\x32#.perfetto.protos.AndroidLogPriority\x12\x13\n\x0b\x66ilter_tags\x18\x04 \x03(\tJ\x04\x08\x02\x10\x03\"+\n\x18\x41ndroidPolledStateConfig\x12\x0f\n\x07poll_ms\x18\x01 \x01(\r\"\x8a\x01\n\x1c\x41ndroidSdkSyspropGuardConfig\x12(\n surfaceflinger_skia_track_events\x18\x01 \x01(\x08\x12\x1e\n\x16hwui_skia_track_events\x18\x02 \x01(\x08\x12 \n\x18hwui_package_name_filter\x18\x03 \x03(\t\"E\n\x1b\x41ndroidSystemPropertyConfig\x12\x0f\n\x07poll_ms\x18\x01 \x01(\r\x12\x15\n\rproperty_name\x18\x02 \x03(\t\"f\n\x12\x41ppWakelocksConfig\x12\x16\n\x0ewrite_delay_ms\x18\x01 \x01(\x05\x12 \n\x18\x66ilter_duration_below_ms\x18\x02 \x01(\x05\x12\x16\n\x0e\x64rop_owner_pid\x18\x03 \x01(\x08\"\"\n\x0f\x43puPerUidConfig\x12\x0f\n\x07poll_ms\x18\x01 \x01(\r\"(\n\x15KernelWakelocksConfig\x12\x0f\n\x07poll_ms\x18\x01 \x01(\r\"\xab\x01\n\x18NetworkPacketTraceConfig\x12\x0f\n\x07poll_ms\x18\x01 \x01(\r\x12\x1d\n\x15\x61ggregation_threshold\x18\x02 \x01(\r\x12\x14\n\x0cintern_limit\x18\x03 \x01(\r\x12\x17\n\x0f\x64rop_local_port\x18\x04 \x01(\x08\x12\x18\n\x10\x64rop_remote_port\x18\x05 \x01(\x08\x12\x16\n\x0e\x64rop_tcp_flags\x18\x06 \x01(\x08\"Y\n\x12PackagesListConfig\x12\x1b\n\x13package_name_filter\x18\x01 \x03(\t\x12&\n\x1eonly_write_on_cpu_use_every_ms\x18\x02 \x01(\r\"\x84\x02\n\x10PixelModemConfig\x12\x41\n\x0b\x65vent_group\x18\x01 \x01(\x0e\x32,.perfetto.protos.PixelModemConfig.EventGroup\x12\x1f\n\x17pigweed_hash_allow_list\x18\x02 \x03(\x03\x12\x1e\n\x16pigweed_hash_deny_list\x18\x03 \x03(\x03\"l\n\nEventGroup\x12\x17\n\x13\x45VENT_GROUP_UNKNOWN\x10\x00\x12\x1d\n\x19\x45VENT_GROUP_LOW_BANDWIDTH\x10\x01\x12&\n\"EVENT_GROUP_HIGH_AND_LOW_BANDWIDTH\x10\x02\"\xf8\x01\n\x0eProtoLogConfig\x12\x37\n\x0fgroup_overrides\x18\x01 \x03(\x0b\x32\x1e.perfetto.protos.ProtoLogGroup\x12\x41\n\x0ctracing_mode\x18\x02 \x01(\x0e\x32+.perfetto.protos.ProtoLogConfig.TracingMode\x12>\n\x16\x64\x65\x66\x61ult_log_from_level\x18\x03 \x01(\x0e\x32\x1e.perfetto.protos.ProtoLogLevel\"*\n\x0bTracingMode\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0e\n\nENABLE_ALL\x10\x01\"q\n\rProtoLogGroup\x12\x12\n\ngroup_name\x18\x01 \x01(\t\x12\x30\n\x08log_from\x18\x02 \x01(\x0e\x32\x1e.perfetto.protos.ProtoLogLevel\x12\x1a\n\x12\x63ollect_stacktrace\x18\x03 \x01(\x08\"\xf0\x03\n\x1aSurfaceFlingerLayersConfig\x12>\n\x04mode\x18\x01 \x01(\x0e\x32\x30.perfetto.protos.SurfaceFlingerLayersConfig.Mode\x12J\n\x0btrace_flags\x18\x02 \x03(\x0e\x32\x35.perfetto.protos.SurfaceFlingerLayersConfig.TraceFlag\"s\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bMODE_ACTIVE\x10\x01\x12\x12\n\x0eMODE_GENERATED\x10\x02\x12\r\n\tMODE_DUMP\x10\x03\x12!\n\x1dMODE_GENERATED_BUGREPORT_ONLY\x10\x04\"\xd0\x01\n\tTraceFlag\x12\x1a\n\x16TRACE_FLAG_UNSPECIFIED\x10\x00\x12\x14\n\x10TRACE_FLAG_INPUT\x10\x02\x12\x1a\n\x16TRACE_FLAG_COMPOSITION\x10\x04\x12\x14\n\x10TRACE_FLAG_EXTRA\x10\x08\x12\x12\n\x0eTRACE_FLAG_HWC\x10\x10\x12\x16\n\x12TRACE_FLAG_BUFFERS\x10 \x12\x1f\n\x1bTRACE_FLAG_VIRTUAL_DISPLAYS\x10@\x12\x12\n\x0eTRACE_FLAG_ALL\x10\x0e\"\xac\x01\n SurfaceFlingerTransactionsConfig\x12\x44\n\x04mode\x18\x01 \x01(\x0e\x32\x36.perfetto.protos.SurfaceFlingerTransactionsConfig.Mode\"B\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x13\n\x0fMODE_CONTINUOUS\x10\x01\x12\x0f\n\x0bMODE_ACTIVE\x10\x02\"1\n\x15\x41ndroidUserListConfig\x12\x18\n\x10user_type_filter\x18\x01 \x03(\t\"\x93\x03\n\x13WindowManagerConfig\x12H\n\rlog_frequency\x18\x01 \x01(\x0e\x32\x31.perfetto.protos.WindowManagerConfig.LogFrequency\x12@\n\tlog_level\x18\x02 \x01(\x0e\x32-.perfetto.protos.WindowManagerConfig.LogLevel\"\x84\x01\n\x0cLogFrequency\x12\x1d\n\x19LOG_FREQUENCY_UNSPECIFIED\x10\x00\x12\x17\n\x13LOG_FREQUENCY_FRAME\x10\x01\x12\x1d\n\x19LOG_FREQUENCY_TRANSACTION\x10\x02\x12\x1d\n\x19LOG_FREQUENCY_SINGLE_DUMP\x10\x03\"i\n\x08LogLevel\x12\x19\n\x15LOG_LEVEL_UNSPECIFIED\x10\x00\x12\x15\n\x11LOG_LEVEL_VERBOSE\x10\x01\x12\x13\n\x0fLOG_LEVEL_DEBUG\x10\x02\x12\x16\n\x12LOG_LEVEL_CRITICAL\x10\x03\"\xbd\x02\n\x0c\x43hromeConfig\x12\x14\n\x0ctrace_config\x18\x01 \x01(\t\x12!\n\x19privacy_filtering_enabled\x18\x02 \x01(\x08\x12\x1e\n\x16\x63onvert_to_legacy_json\x18\x03 \x01(\x08\x12\x45\n\x0f\x63lient_priority\x18\x04 \x01(\x0e\x32,.perfetto.protos.ChromeConfig.ClientPriority\x12\x1f\n\x17json_agent_label_filter\x18\x05 \x01(\t\x12)\n!event_package_name_filter_enabled\x18\x06 \x01(\x08\"A\n\x0e\x43lientPriority\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0e\n\nBACKGROUND\x10\x01\x12\x12\n\x0eUSER_INITIATED\x10\x02\"\xe6\x01\n\x1e\x43hromiumHistogramSamplesConfig\x12S\n\nhistograms\x18\x01 \x03(\x0b\x32?.perfetto.protos.ChromiumHistogramSamplesConfig.HistogramSample\x12\x1e\n\x16\x66ilter_histogram_names\x18\x02 \x01(\x08\x1aO\n\x0fHistogramSample\x12\x16\n\x0ehistogram_name\x18\x01 \x01(\t\x12\x11\n\tmin_value\x18\x02 \x01(\x03\x12\x11\n\tmax_value\x18\x03 \x01(\x03\";\n\x1b\x43hromiumSystemMetricsConfig\x12\x1c\n\x14sampling_interval_ms\x18\x01 \x01(\r\"@\n\x08V8Config\x12\x1a\n\x12log_script_sources\x18\x01 \x01(\x08\x12\x18\n\x10log_instructions\x18\x02 \x01(\x08\"\xd4\x01\n\tEtwConfig\x12;\n\x0ckernel_flags\x18\x01 \x03(\x0e\x32%.perfetto.protos.EtwConfig.KernelFlag\x12!\n\x19scheduler_provider_events\x18\x02 \x03(\t\x12\x1e\n\x16memory_provider_events\x18\x03 \x03(\t\x12\x1c\n\x14\x66ile_provider_events\x18\x04 \x03(\t\")\n\nKernelFlag\x12\x0b\n\x07\x43SWITCH\x10\x00\x12\x0e\n\nDISPATCHER\x10\x01\"+\n\x12\x46rozenFtraceConfig\x12\x15\n\rinstance_name\x18\x01 \x01(\t\"\xca\x0e\n\x0c\x46traceConfig\x12\x15\n\rftrace_events\x18\x01 \x03(\t\x12\x19\n\x11\x61trace_categories\x18\x02 \x03(\t\x12\x13\n\x0b\x61trace_apps\x18\x03 \x03(\t\x12$\n\x1c\x61trace_categories_prefer_sdk\x18\x1c \x03(\t\x12\x1d\n\x15\x61trace_userspace_only\x18\" \x01(\x08\x12\x16\n\x0e\x62uffer_size_kb\x18\n \x01(\r\x12\x1f\n\x17\x62uffer_size_lower_bound\x18\x1b \x01(\x08\x12\x17\n\x0f\x64rain_period_ms\x18\x0b \x01(\r\x12\x1c\n\x14\x64rain_buffer_percent\x18\x1d \x01(\r\x12G\n\rcompact_sched\x18\x0c \x01(\x0b\x32\x30.perfetto.protos.FtraceConfig.CompactSchedConfig\x12?\n\x0cprint_filter\x18\x16 \x01(\x0b\x32).perfetto.protos.FtraceConfig.PrintFilter\x12\x17\n\x0fsymbolize_ksyms\x18\r \x01(\x08\x12\x46\n\x10ksyms_mem_policy\x18\x11 \x01(\x0e\x32,.perfetto.protos.FtraceConfig.KsymsMemPolicy\x12\x19\n\x11throttle_rss_stat\x18\x0f \x01(\x08\x12%\n\x1d\x64\x65nser_generic_event_encoding\x18  \x01(\x08\x12\x1e\n\x16\x64isable_generic_events\x18\x10 \x01(\x08\x12\x16\n\x0esyscall_events\x18\x12 \x03(\t\x12\x1d\n\x15\x65nable_function_graph\x18\x13 \x01(\x08\x12\x18\n\x10\x66unction_filters\x18\x14 \x03(\t\x12\x1c\n\x14\x66unction_graph_roots\x18\x15 \x03(\t\x12 \n\x18\x66unction_graph_max_depth\x18! \x01(\r\x12@\n\rkprobe_events\x18\x1e \x03(\x0b\x32).perfetto.protos.FtraceConfig.KprobeEvent\x12\x1e\n\x16preserve_ftrace_buffer\x18\x17 \x01(\x08\x12\x1f\n\x17use_monotonic_raw_clock\x18\x18 \x01(\x08\x12\x15\n\rinstance_name\x18\x19 \x01(\t\x12\x18\n\x10\x64\x65\x62ug_ftrace_abi\x18\x1f \x01(\x08\x12\x15\n\rtids_to_trace\x18# \x03(\r\x12\x44\n\x0ftracefs_options\x18$ \x03(\x0b\x32+.perfetto.protos.FtraceConfig.TracefsOption\x12\x17\n\x0ftracing_cpumask\x18% \x01(\t\x12\x36\n*initialize_ksyms_synchronously_for_testing\x18\x0e \x01(\x08\x42\x02\x18\x01\x1a%\n\x12\x43ompactSchedConfig\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x1a\x82\x02\n\x0bPrintFilter\x12=\n\x05rules\x18\x01 \x03(\x0b\x32..perfetto.protos.FtraceConfig.PrintFilter.Rule\x1a\xb3\x01\n\x04Rule\x12\x10\n\x06prefix\x18\x01 \x01(\tH\x00\x12R\n\natrace_msg\x18\x03 \x01(\x0b\x32<.perfetto.protos.FtraceConfig.PrintFilter.Rule.AtraceMessageH\x00\x12\r\n\x05\x61llow\x18\x02 \x01(\x08\x1a-\n\rAtraceMessage\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x0e\n\x06prefix\x18\x02 \x01(\tB\x07\n\x05match\x1a\xd0\x01\n\x0bKprobeEvent\x12\r\n\x05probe\x18\x01 \x01(\t\x12\x42\n\x04type\x18\x02 \x01(\x0e\x32\x34.perfetto.protos.FtraceConfig.KprobeEvent.KprobeType\"n\n\nKprobeType\x12\x17\n\x13KPROBE_TYPE_UNKNOWN\x10\x00\x12\x16\n\x12KPROBE_TYPE_KPROBE\x10\x01\x12\x19\n\x15KPROBE_TYPE_KRETPROBE\x10\x02\x12\x14\n\x10KPROBE_TYPE_BOTH\x10\x03\x1a\xa2\x01\n\rTracefsOption\x12\x0c\n\x04name\x18\x01 \x01(\t\x12@\n\x05state\x18\x02 \x01(\x0e\x32\x31.perfetto.protos.FtraceConfig.TracefsOption.State\"A\n\x05State\x12\x11\n\rSTATE_UNKNOWN\x10\x00\x12\x11\n\rSTATE_ENABLED\x10\x01\x12\x12\n\x0eSTATE_DISABLED\x10\x02\"T\n\x0eKsymsMemPolicy\x12\x15\n\x11KSYMS_UNSPECIFIED\x10\x00\x12\x19\n\x15KSYMS_CLEANUP_ON_STOP\x10\x01\x12\x10\n\x0cKSYMS_RETAIN\x10\x02J\x04\x08\x1a\x10\x1b\"x\n\x10GpuCounterConfig\x12\x19\n\x11\x63ounter_period_ns\x18\x01 \x01(\x04\x12\x13\n\x0b\x63ounter_ids\x18\x02 \x03(\r\x12\x1d\n\x15instrumented_sampling\x18\x03 \x01(\x08\x12\x15\n\rfix_gpu_clock\x18\x04 \x01(\x08\"\\\n\x15GpuRenderStagesConfig\x12\x16\n\x0e\x66ull_loadstore\x18\x01 \x01(\x08\x12\x14\n\x0clow_overhead\x18\x02 \x01(\x08\x12\x15\n\rtrace_metrics\x18\x03 \x03(\t\"Z\n\x12VulkanMemoryConfig\x12!\n\x19track_driver_memory_usage\x18\x01 \x01(\x08\x12!\n\x19track_device_memory_usage\x18\x02 \x01(\x08\"\xa3\x02\n\x0fInodeFileConfig\x12\x18\n\x10scan_interval_ms\x18\x01 \x01(\r\x12\x15\n\rscan_delay_ms\x18\x02 \x01(\r\x12\x17\n\x0fscan_batch_size\x18\x03 \x01(\r\x12\x13\n\x0b\x64o_not_scan\x18\x04 \x01(\x08\x12\x19\n\x11scan_mount_points\x18\x05 \x03(\t\x12T\n\x13mount_point_mapping\x18\x06 \x03(\x0b\x32\x37.perfetto.protos.InodeFileConfig.MountPointMappingEntry\x1a@\n\x16MountPointMappingEntry\x12\x12\n\nmountpoint\x18\x01 \x01(\t\x12\x12\n\nscan_roots\x18\x02 \x03(\t\"\xa5\x01\n\rConsoleConfig\x12\x35\n\x06output\x18\x01 \x01(\x0e\x32%.perfetto.protos.ConsoleConfig.Output\x12\x15\n\renable_colors\x18\x02 \x01(\x08\"F\n\x06Output\x12\x16\n\x12OUTPUT_UNSPECIFIED\x10\x00\x12\x11\n\rOUTPUT_STDOUT\x10\x01\x12\x11\n\rOUTPUT_STDERR\x10\x02\"Y\n\x11InterceptorConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x36\n\x0e\x63onsole_config\x18\x64 \x01(\x0b\x32\x1e.perfetto.protos.ConsoleConfig\"\xc0\x03\n\x12\x41ndroidPowerConfig\x12\x17\n\x0f\x62\x61ttery_poll_ms\x18\x01 \x01(\r\x12M\n\x10\x62\x61ttery_counters\x18\x02 \x03(\x0e\x32\x33.perfetto.protos.AndroidPowerConfig.BatteryCounters\x12\x1b\n\x13\x63ollect_power_rails\x18\x03 \x01(\x08\x12+\n#collect_energy_estimation_breakdown\x18\x04 \x01(\x08\x12&\n\x1e\x63ollect_entity_state_residency\x18\x05 \x01(\x08\"\xcf\x01\n\x0f\x42\x61tteryCounters\x12\x1f\n\x1b\x42\x41TTERY_COUNTER_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x42\x41TTERY_COUNTER_CHARGE\x10\x01\x12$\n BATTERY_COUNTER_CAPACITY_PERCENT\x10\x02\x12\x1b\n\x17\x42\x41TTERY_COUNTER_CURRENT\x10\x03\x12\x1f\n\x1b\x42\x41TTERY_COUNTER_CURRENT_AVG\x10\x04\x12\x1b\n\x17\x42\x41TTERY_COUNTER_VOLTAGE\x10\x05\"\xbf\x01\n\x13PriorityBoostConfig\x12@\n\x06policy\x18\x01 \x01(\x0e\x32\x30.perfetto.protos.PriorityBoostConfig.BoostPolicy\x12\x10\n\x08priority\x18\x02 \x01(\r\"T\n\x0b\x42oostPolicy\x12\x16\n\x12POLICY_UNSPECIFIED\x10\x00\x12\x16\n\x12POLICY_SCHED_OTHER\x10\x01\x12\x15\n\x11POLICY_SCHED_FIFO\x10\x02\"\xc9\x03\n\x12ProcessStatsConfig\x12:\n\x06quirks\x18\x01 \x03(\x0e\x32*.perfetto.protos.ProcessStatsConfig.Quirks\x12#\n\x1bscan_all_processes_on_start\x18\x02 \x01(\x08\x12\x1b\n\x13record_thread_names\x18\x03 \x01(\x08\x12\x1a\n\x12proc_stats_poll_ms\x18\x04 \x01(\r\x12\x1f\n\x17proc_stats_cache_ttl_ms\x18\x06 \x01(\r\x12\x19\n\x11scan_smaps_rollup\x18\n \x01(\x08\x12\x1a\n\x12record_process_age\x18\x0b \x01(\x08\x12\x1e\n\x16record_process_runtime\x18\x0c \x01(\x08\x12!\n\x19record_process_dmabuf_rss\x18\r \x01(\x08\x12\x1b\n\x13resolve_process_fds\x18\t \x01(\x08\"U\n\x06Quirks\x12\x16\n\x12QUIRKS_UNSPECIFIED\x10\x00\x12\x1c\n\x14\x44ISABLE_INITIAL_DUMP\x10\x01\x1a\x02\x08\x01\x12\x15\n\x11\x44ISABLE_ON_DEMAND\x10\x02J\x04\x08\x07\x10\x08J\x04\x08\x08\x10\t\"\xcc\x06\n\x0fHeapprofdConfig\x12\x1f\n\x17sampling_interval_bytes\x18\x01 \x01(\x04\x12)\n!adaptive_sampling_shmem_threshold\x18\x18 \x01(\x04\x12\x35\n-adaptive_sampling_max_sampling_interval_bytes\x18\x19 \x01(\x04\x12\x17\n\x0fprocess_cmdline\x18\x02 \x03(\t\x12\x0b\n\x03pid\x18\x04 \x03(\x04\x12\x1b\n\x13target_installed_by\x18\x1a \x03(\t\x12\r\n\x05heaps\x18\x14 \x03(\t\x12\x15\n\rexclude_heaps\x18\x1b \x03(\t\x12\x1a\n\x12stream_allocations\x18\x17 \x01(\x08\x12\x1f\n\x17heap_sampling_intervals\x18\x16 \x03(\x04\x12\x11\n\tall_heaps\x18\x15 \x01(\x08\x12\x0b\n\x03\x61ll\x18\x05 \x01(\x08\x12\x1f\n\x17min_anonymous_memory_kb\x18\x0f \x01(\r\x12\x1f\n\x17max_heapprofd_memory_kb\x18\x10 \x01(\r\x12\x1e\n\x16max_heapprofd_cpu_secs\x18\x11 \x01(\x04\x12\x1a\n\x12skip_symbol_prefix\x18\x07 \x03(\t\x12U\n\x16\x63ontinuous_dump_config\x18\x06 \x01(\x0b\x32\x35.perfetto.protos.HeapprofdConfig.ContinuousDumpConfig\x12\x18\n\x10shmem_size_bytes\x18\x08 \x01(\x04\x12\x14\n\x0c\x62lock_client\x18\t \x01(\x08\x12\x1f\n\x17\x62lock_client_timeout_us\x18\x0e \x01(\r\x12\x12\n\nno_startup\x18\n \x01(\x08\x12\x12\n\nno_running\x18\x0b \x01(\x08\x12\x13\n\x0b\x64ump_at_max\x18\r \x01(\x08\x12\x1d\n\x15\x64isable_fork_teardown\x18\x12 \x01(\x08\x12\x1f\n\x17\x64isable_vfork_detection\x18\x13 \x01(\x08\x1aG\n\x14\x43ontinuousDumpConfig\x12\x15\n\rdump_phase_ms\x18\x05 \x01(\r\x12\x18\n\x10\x64ump_interval_ms\x18\x06 \x01(\rJ\x04\x08\x0c\x10\r\"\xe1\x02\n\x0fJavaHprofConfig\x12\x17\n\x0fprocess_cmdline\x18\x01 \x03(\t\x12\x0b\n\x03pid\x18\x02 \x03(\x04\x12\x1b\n\x13target_installed_by\x18\x07 \x03(\t\x12U\n\x16\x63ontinuous_dump_config\x18\x03 \x01(\x0b\x32\x35.perfetto.protos.JavaHprofConfig.ContinuousDumpConfig\x12\x1f\n\x17min_anonymous_memory_kb\x18\x04 \x01(\r\x12\x12\n\ndump_smaps\x18\x05 \x01(\x08\x12\x15\n\rignored_types\x18\x06 \x03(\t\x1ah\n\x14\x43ontinuousDumpConfig\x12\x15\n\rdump_phase_ms\x18\x01 \x01(\r\x12\x18\n\x10\x64ump_interval_ms\x18\x02 \x01(\r\x12\x1f\n\x17scan_pids_only_on_start\x18\x03 \x01(\x08\"\xb7\n\n\nPerfEvents\x1a\x9d\x03\n\x08Timebase\x12\x13\n\tfrequency\x18\x02 \x01(\x04H\x00\x12\x10\n\x06period\x18\x01 \x01(\x04H\x00\x12\x18\n\x0epoll_period_ms\x18\x06 \x01(\rH\x00\x12\x36\n\x07\x63ounter\x18\x04 \x01(\x0e\x32#.perfetto.protos.PerfEvents.CounterH\x01\x12<\n\ntracepoint\x18\x03 \x01(\x0b\x32&.perfetto.protos.PerfEvents.TracepointH\x01\x12\x39\n\traw_event\x18\x05 \x01(\x0b\x32$.perfetto.protos.PerfEvents.RawEventH\x01\x12<\n\tmodifiers\x18\x0c \x03(\x0e\x32).perfetto.protos.PerfEvents.EventModifier\x12>\n\x0ftimestamp_clock\x18\x0b \x01(\x0e\x32%.perfetto.protos.PerfEvents.PerfClock\x12\x0c\n\x04name\x18\n \x01(\tB\n\n\x08intervalB\x07\n\x05\x65vent\x1a*\n\nTracepoint\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x02 \x01(\t\x1aJ\n\x08RawEvent\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x0e\n\x06\x63onfig\x18\x02 \x01(\x04\x12\x0f\n\x07\x63onfig1\x18\x03 \x01(\x04\x12\x0f\n\x07\x63onfig2\x18\x04 \x01(\x04\"\xe8\x03\n\x07\x43ounter\x12\x13\n\x0fUNKNOWN_COUNTER\x10\x00\x12\x10\n\x0cSW_CPU_CLOCK\x10\x01\x12\x12\n\x0eSW_PAGE_FAULTS\x10\x02\x12\x11\n\rSW_TASK_CLOCK\x10\x03\x12\x17\n\x13SW_CONTEXT_SWITCHES\x10\x04\x12\x15\n\x11SW_CPU_MIGRATIONS\x10\x05\x12\x16\n\x12SW_PAGE_FAULTS_MIN\x10\x06\x12\x16\n\x12SW_PAGE_FAULTS_MAJ\x10\x07\x12\x17\n\x13SW_ALIGNMENT_FAULTS\x10\x08\x12\x17\n\x13SW_EMULATION_FAULTS\x10\t\x12\x0c\n\x08SW_DUMMY\x10\x14\x12\x11\n\rHW_CPU_CYCLES\x10\n\x12\x13\n\x0fHW_INSTRUCTIONS\x10\x0b\x12\x17\n\x13HW_CACHE_REFERENCES\x10\x0c\x12\x13\n\x0fHW_CACHE_MISSES\x10\r\x12\x1a\n\x16HW_BRANCH_INSTRUCTIONS\x10\x0e\x12\x14\n\x10HW_BRANCH_MISSES\x10\x0f\x12\x11\n\rHW_BUS_CYCLES\x10\x10\x12\x1e\n\x1aHW_STALLED_CYCLES_FRONTEND\x10\x11\x12\x1d\n\x19HW_STALLED_CYCLES_BACKEND\x10\x12\x12\x15\n\x11HW_REF_CPU_CYCLES\x10\x13\"\x8d\x01\n\tPerfClock\x12\x16\n\x12UNKNOWN_PERF_CLOCK\x10\x00\x12\x17\n\x13PERF_CLOCK_REALTIME\x10\x01\x12\x18\n\x14PERF_CLOCK_MONOTONIC\x10\x02\x12\x1c\n\x18PERF_CLOCK_MONOTONIC_RAW\x10\x03\x12\x17\n\x13PERF_CLOCK_BOOTTIME\x10\x04\"\x95\x01\n\rEventModifier\x12\x1a\n\x16UNKNOWN_EVENT_MODIFIER\x10\x00\x12\"\n\x1e\x45VENT_MODIFIER_COUNT_USERSPACE\x10\x01\x12\x1f\n\x1b\x45VENT_MODIFIER_COUNT_KERNEL\x10\x02\x12#\n\x1f\x45VENT_MODIFIER_COUNT_HYPERVISOR\x10\x03\"\x95\x02\n\rFollowerEvent\x12\x36\n\x07\x63ounter\x18\x01 \x01(\x0e\x32#.perfetto.protos.PerfEvents.CounterH\x00\x12<\n\ntracepoint\x18\x02 \x01(\x0b\x32&.perfetto.protos.PerfEvents.TracepointH\x00\x12\x39\n\traw_event\x18\x03 \x01(\x0b\x32$.perfetto.protos.PerfEvents.RawEventH\x00\x12<\n\tmodifiers\x18\x05 \x03(\x0e\x32).perfetto.protos.PerfEvents.EventModifier\x12\x0c\n\x04name\x18\x04 \x01(\tB\x07\n\x05\x65vent\"\xb8\x08\n\x0fPerfEventConfig\x12\x36\n\x08timebase\x18\x0f \x01(\x0b\x32$.perfetto.protos.PerfEvents.Timebase\x12\x31\n\tfollowers\x18\x13 \x03(\x0b\x32\x1e.perfetto.protos.FollowerEvent\x12N\n\x12\x63\x61llstack_sampling\x18\x10 \x01(\x0b\x32\x32.perfetto.protos.PerfEventConfig.CallstackSampling\x12\x12\n\ntarget_cpu\x18\x14 \x03(\r\x12\"\n\x1aring_buffer_read_period_ms\x18\x08 \x01(\r\x12\x19\n\x11ring_buffer_pages\x18\x03 \x01(\r\x12!\n\x19max_enqueued_footprint_kb\x18\x11 \x01(\x04\x12\x1c\n\x14max_daemon_memory_kb\x18\r \x01(\r\x12$\n\x1cremote_descriptor_timeout_ms\x18\t \x01(\r\x12$\n\x1cunwind_state_clear_period_ms\x18\n \x01(\r\x12\x1b\n\x13target_installed_by\x18\x12 \x03(\t\x12\x10\n\x08\x61ll_cpus\x18\x01 \x01(\x08\x12\x1a\n\x12sampling_frequency\x18\x02 \x01(\r\x12\x15\n\rkernel_frames\x18\x0c \x01(\x08\x12\x12\n\ntarget_pid\x18\x04 \x03(\x05\x12\x16\n\x0etarget_cmdline\x18\x05 \x03(\t\x12\x13\n\x0b\x65xclude_pid\x18\x06 \x03(\x05\x12\x17\n\x0f\x65xclude_cmdline\x18\x07 \x03(\t\x12 \n\x18\x61\x64\x64itional_cmdline_count\x18\x0b \x01(\r\x1a\xa3\x01\n\x11\x43\x61llstackSampling\x12\x35\n\x05scope\x18\x01 \x01(\x0b\x32&.perfetto.protos.PerfEventConfig.Scope\x12\x15\n\rkernel_frames\x18\x02 \x01(\x08\x12@\n\x0buser_frames\x18\x03 \x01(\x0e\x32+.perfetto.protos.PerfEventConfig.UnwindMode\x1a\xa0\x01\n\x05Scope\x12\x12\n\ntarget_pid\x18\x01 \x03(\x05\x12\x16\n\x0etarget_cmdline\x18\x02 \x03(\t\x12\x13\n\x0b\x65xclude_pid\x18\x03 \x03(\x05\x12\x17\n\x0f\x65xclude_cmdline\x18\x04 \x03(\t\x12 \n\x18\x61\x64\x64itional_cmdline_count\x18\x05 \x01(\r\x12\x1b\n\x13process_shard_count\x18\x06 \x01(\r\"]\n\nUnwindMode\x12\x12\n\x0eUNWIND_UNKNOWN\x10\x00\x12\x0f\n\x0bUNWIND_SKIP\x10\x01\x12\x10\n\x0cUNWIND_DWARF\x10\x02\x12\x18\n\x14UNWIND_FRAME_POINTER\x10\x03J\x04\x08\x0e\x10\x0f\"\x9a\x01\n\x13StatsdTracingConfig\x12-\n\x0cpush_atom_id\x18\x01 \x03(\x0e\x32\x17.perfetto.protos.AtomId\x12\x18\n\x10raw_push_atom_id\x18\x02 \x03(\x05\x12:\n\x0bpull_config\x18\x03 \x03(\x0b\x32%.perfetto.protos.StatsdPullAtomConfig\"\x8c\x01\n\x14StatsdPullAtomConfig\x12-\n\x0cpull_atom_id\x18\x01 \x03(\x0e\x32\x17.perfetto.protos.AtomId\x12\x18\n\x10raw_pull_atom_id\x18\x02 \x03(\x05\x12\x19\n\x11pull_frequency_ms\x18\x03 \x01(\x05\x12\x10\n\x08packages\x18\x04 \x03(\t\"\xec\x04\n\x0eSysStatsConfig\x12\x19\n\x11meminfo_period_ms\x18\x01 \x01(\r\x12:\n\x10meminfo_counters\x18\x02 \x03(\x0e\x32 .perfetto.protos.MeminfoCounters\x12\x18\n\x10vmstat_period_ms\x18\x03 \x01(\r\x12\x38\n\x0fvmstat_counters\x18\x04 \x03(\x0e\x32\x1f.perfetto.protos.VmstatCounters\x12\x16\n\x0estat_period_ms\x18\x05 \x01(\r\x12\x43\n\rstat_counters\x18\x06 \x03(\x0e\x32,.perfetto.protos.SysStatsConfig.StatCounters\x12\x19\n\x11\x64\x65vfreq_period_ms\x18\x07 \x01(\r\x12\x19\n\x11\x63pufreq_period_ms\x18\x08 \x01(\r\x12\x1b\n\x13\x62uddyinfo_period_ms\x18\t \x01(\r\x12\x1a\n\x12\x64iskstat_period_ms\x18\n \x01(\r\x12\x15\n\rpsi_period_ms\x18\x0b \x01(\r\x12\x19\n\x11thermal_period_ms\x18\x0c \x01(\r\x12\x19\n\x11\x63puidle_period_ms\x18\r \x01(\r\x12\x19\n\x11gpufreq_period_ms\x18\x0e \x01(\r\"{\n\x0cStatCounters\x12\x14\n\x10STAT_UNSPECIFIED\x10\x00\x12\x12\n\x0eSTAT_CPU_TIMES\x10\x01\x12\x13\n\x0fSTAT_IRQ_COUNTS\x10\x02\x12\x17\n\x13STAT_SOFTIRQ_COUNTS\x10\x03\x12\x13\n\x0fSTAT_FORK_COUNT\x10\x04\"\x12\n\x10SystemInfoConfig\"\x8d\x04\n\nTestConfig\x12\x15\n\rmessage_count\x18\x01 \x01(\r\x12\x1f\n\x17max_messages_per_second\x18\x02 \x01(\r\x12\x0c\n\x04seed\x18\x03 \x01(\r\x12\x14\n\x0cmessage_size\x18\x04 \x01(\r\x12\x1e\n\x16send_batch_on_register\x18\x05 \x01(\x08\x12=\n\x0c\x64ummy_fields\x18\x06 \x01(\x0b\x32\'.perfetto.protos.TestConfig.DummyFields\x1a\xc3\x02\n\x0b\x44ummyFields\x12\x14\n\x0c\x66ield_uint32\x18\x01 \x01(\r\x12\x13\n\x0b\x66ield_int32\x18\x02 \x01(\x05\x12\x14\n\x0c\x66ield_uint64\x18\x03 \x01(\x04\x12\x13\n\x0b\x66ield_int64\x18\x04 \x01(\x03\x12\x15\n\rfield_fixed64\x18\x05 \x01(\x06\x12\x16\n\x0e\x66ield_sfixed64\x18\x06 \x01(\x10\x12\x15\n\rfield_fixed32\x18\x07 \x01(\x07\x12\x16\n\x0e\x66ield_sfixed32\x18\x08 \x01(\x0f\x12\x14\n\x0c\x66ield_double\x18\t \x01(\x01\x12\x13\n\x0b\x66ield_float\x18\n \x01(\x02\x12\x14\n\x0c\x66ield_sint64\x18\x0b \x01(\x12\x12\x14\n\x0c\x66ield_sint32\x18\x0c \x01(\x11\x12\x14\n\x0c\x66ield_string\x18\r \x01(\t\x12\x13\n\x0b\x66ield_bytes\x18\x0e \x01(\x0c\"\xd2\x02\n\x10TrackEventConfig\x12\x1b\n\x13\x64isabled_categories\x18\x01 \x03(\t\x12\x1a\n\x12\x65nabled_categories\x18\x02 \x03(\t\x12\x15\n\rdisabled_tags\x18\x03 \x03(\t\x12\x14\n\x0c\x65nabled_tags\x18\x04 \x03(\t\x12&\n\x1e\x64isable_incremental_timestamps\x18\x05 \x01(\x08\x12!\n\x19timestamp_unit_multiplier\x18\x06 \x01(\x04\x12 \n\x18\x66ilter_debug_annotations\x18\x07 \x01(\x08\x12#\n\x1b\x65nable_thread_time_sampling\x18\x08 \x01(\x08\x12\"\n\x1athread_time_subsampling_ns\x18\n \x01(\x04\x12\"\n\x1a\x66ilter_dynamic_event_names\x18\t \x01(\x08\"\xda\x1b\n\x10\x44\x61taSourceConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x15\n\rtarget_buffer\x18\x02 \x01(\r\x12\x19\n\x11trace_duration_ms\x18\x03 \x01(\r\x12)\n!prefer_suspend_clock_for_duration\x18z \x01(\x08\x12\x17\n\x0fstop_timeout_ms\x18\x07 \x01(\r\x12\x1f\n\x17\x65nable_extra_guardrails\x18\x06 \x01(\x08\x12M\n\x11session_initiator\x18\x08 \x01(\x0e\x32\x32.perfetto.protos.DataSourceConfig.SessionInitiator\x12\x1a\n\x12tracing_session_id\x18\x04 \x01(\x04\x12X\n\x17\x62uffer_exhausted_policy\x18\t \x01(\x0e\x32\x37.perfetto.protos.DataSourceConfig.BufferExhaustedPolicy\x12<\n\x0epriority_boost\x18\n \x01(\x0b\x32$.perfetto.protos.PriorityBoostConfig\x12\x38\n\rftrace_config\x18\x64 \x01(\x0b\x32\x1d.perfetto.protos.FtraceConfigB\x02(\x01\x12?\n\x11inode_file_config\x18\x66 \x01(\x0b\x32 .perfetto.protos.InodeFileConfigB\x02(\x01\x12\x45\n\x14process_stats_config\x18g \x01(\x0b\x32#.perfetto.protos.ProcessStatsConfigB\x02(\x01\x12=\n\x10sys_stats_config\x18h \x01(\x0b\x32\x1f.perfetto.protos.SysStatsConfigB\x02(\x01\x12>\n\x10heapprofd_config\x18i \x01(\x0b\x32 .perfetto.protos.HeapprofdConfigB\x02(\x01\x12?\n\x11java_hprof_config\x18n \x01(\x0b\x32 .perfetto.protos.JavaHprofConfigB\x02(\x01\x12\x45\n\x14\x61ndroid_power_config\x18j \x01(\x0b\x32#.perfetto.protos.AndroidPowerConfigB\x02(\x01\x12\x41\n\x12\x61ndroid_log_config\x18k \x01(\x0b\x32!.perfetto.protos.AndroidLogConfigB\x02(\x01\x12\x41\n\x12gpu_counter_config\x18l \x01(\x0b\x32!.perfetto.protos.GpuCounterConfigB\x02(\x01\x12\x65\n%android_game_intervention_list_config\x18t \x01(\x0b\x32\x32.perfetto.protos.AndroidGameInterventionListConfigB\x02(\x01\x12\x45\n\x14packages_list_config\x18m \x01(\x0b\x32#.perfetto.protos.PackagesListConfigB\x02(\x01\x12?\n\x11perf_event_config\x18o \x01(\x0b\x32 .perfetto.protos.PerfEventConfigB\x02(\x01\x12\x45\n\x14vulkan_memory_config\x18p \x01(\x0b\x32#.perfetto.protos.VulkanMemoryConfigB\x02(\x01\x12\x41\n\x12track_event_config\x18q \x01(\x0b\x32!.perfetto.protos.TrackEventConfigB\x02(\x01\x12R\n\x1b\x61ndroid_polled_state_config\x18r \x01(\x0b\x32).perfetto.protos.AndroidPolledStateConfigB\x02(\x01\x12X\n\x1e\x61ndroid_system_property_config\x18v \x01(\x0b\x32,.perfetto.protos.AndroidSystemPropertyConfigB\x02(\x01\x12G\n\x15statsd_tracing_config\x18u \x01(\x0b\x32$.perfetto.protos.StatsdTracingConfigB\x02(\x01\x12=\n\x12system_info_config\x18w \x01(\x0b\x32!.perfetto.protos.SystemInfoConfig\x12\x46\n\x14\x66rozen_ftrace_config\x18\x88\x01 \x01(\x0b\x32#.perfetto.protos.FrozenFtraceConfigB\x02(\x01\x12\x34\n\rchrome_config\x18\x65 \x01(\x0b\x32\x1d.perfetto.protos.ChromeConfig\x12\x30\n\tv8_config\x18\x7f \x01(\x0b\x32\x19.perfetto.protos.V8ConfigB\x02(\x01\x12>\n\x12interceptor_config\x18s \x01(\x0b\x32\".perfetto.protos.InterceptorConfig\x12R\n\x1bnetwork_packet_trace_config\x18x \x01(\x0b\x32).perfetto.protos.NetworkPacketTraceConfigB\x02(\x01\x12U\n\x1csurfaceflinger_layers_config\x18y \x01(\x0b\x32+.perfetto.protos.SurfaceFlingerLayersConfigB\x02(\x01\x12\x61\n\"surfaceflinger_transactions_config\x18{ \x01(\x0b\x32\x31.perfetto.protos.SurfaceFlingerTransactionsConfigB\x02(\x01\x12[\n android_sdk_sysprop_guard_config\x18| \x01(\x0b\x32-.perfetto.protos.AndroidSdkSyspropGuardConfigB\x02(\x01\x12\x32\n\netw_config\x18} \x01(\x0b\x32\x1a.perfetto.protos.EtwConfigB\x02(\x01\x12<\n\x0fprotolog_config\x18~ \x01(\x0b\x32\x1f.perfetto.protos.ProtoLogConfigB\x02(\x01\x12Q\n\x1a\x61ndroid_input_event_config\x18\x80\x01 \x01(\x0b\x32(.perfetto.protos.AndroidInputEventConfigB\x02(\x01\x12\x42\n\x12pixel_modem_config\x18\x81\x01 \x01(\x0b\x32!.perfetto.protos.PixelModemConfigB\x02(\x01\x12G\n\x14windowmanager_config\x18\x82\x01 \x01(\x0b\x32$.perfetto.protos.WindowManagerConfigB\x02(\x01\x12R\n\x17\x63hromium_system_metrics\x18\x83\x01 \x01(\x0b\x32,.perfetto.protos.ChromiumSystemMetricsConfigB\x02(\x01\x12L\n\x17kernel_wakelocks_config\x18\x84\x01 \x01(\x0b\x32&.perfetto.protos.KernelWakelocksConfigB\x02(\x01\x12L\n\x17gpu_renderstages_config\x18\x85\x01 \x01(\x0b\x32&.perfetto.protos.GpuRenderStagesConfigB\x02(\x01\x12X\n\x1a\x63hromium_histogram_samples\x18\x86\x01 \x01(\x0b\x32/.perfetto.protos.ChromiumHistogramSamplesConfigB\x02(\x01\x12\x46\n\x14\x61pp_wakelocks_config\x18\x87\x01 \x01(\x0b\x32#.perfetto.protos.AppWakelocksConfigB\x02(\x01\x12\x41\n\x12\x63pu_per_uid_config\x18\x89\x01 \x01(\x0b\x32 .perfetto.protos.CpuPerUidConfigB\x02(\x01\x12\x45\n\x10user_list_config\x18\x8a\x01 \x01(\x0b\x32&.perfetto.protos.AndroidUserListConfigB\x02(\x01\x12\x16\n\rlegacy_config\x18\xe8\x07 \x01(\t\x12\x31\n\x0b\x66or_testing\x18\xe9\x07 \x01(\x0b\x32\x1b.perfetto.protos.TestConfig\"[\n\x10SessionInitiator\x12!\n\x1dSESSION_INITIATOR_UNSPECIFIED\x10\x00\x12$\n SESSION_INITIATOR_TRUSTED_SYSTEM\x10\x01\"\xa1\x01\n\x15\x42ufferExhaustedPolicy\x12 \n\x1c\x42UFFER_EXHAUSTED_UNSPECIFIED\x10\x00\x12\x19\n\x15\x42UFFER_EXHAUSTED_DROP\x10\x01\x12%\n!BUFFER_EXHAUSTED_STALL_THEN_ABORT\x10\x02\x12$\n BUFFER_EXHAUSTED_STALL_THEN_DROP\x10\x03J\x0b\x08\xff\xff\xff\x7f\x10\x80\x80\x80\x80\x01\"\xa5%\n\x0bTraceConfig\x12:\n\x07\x62uffers\x18\x01 \x03(\x0b\x32).perfetto.protos.TraceConfig.BufferConfig\x12=\n\x0c\x64\x61ta_sources\x18\x02 \x03(\x0b\x32\'.perfetto.protos.TraceConfig.DataSource\x12L\n\x14\x62uiltin_data_sources\x18\x14 \x01(\x0b\x32..perfetto.protos.TraceConfig.BuiltinDataSource\x12\x13\n\x0b\x64uration_ms\x18\x03 \x01(\r\x12)\n!prefer_suspend_clock_for_duration\x18$ \x01(\x08\x12\x1f\n\x17\x65nable_extra_guardrails\x18\x04 \x01(\x08\x12I\n\rlockdown_mode\x18\x05 \x01(\x0e\x32\x32.perfetto.protos.TraceConfig.LockdownModeOperation\x12>\n\tproducers\x18\x06 \x03(\x0b\x32+.perfetto.protos.TraceConfig.ProducerConfig\x12\x44\n\x0fstatsd_metadata\x18\x07 \x01(\x0b\x32+.perfetto.protos.TraceConfig.StatsdMetadata\x12\x17\n\x0fwrite_into_file\x18\x08 \x01(\x08\x12\x13\n\x0boutput_path\x18\x1d \x01(\t\x12\x1c\n\x14\x66ile_write_period_ms\x18\t \x01(\r\x12\x1b\n\x13max_file_size_bytes\x18\n \x01(\x04\x12L\n\x13guardrail_overrides\x18\x0b \x01(\x0b\x32/.perfetto.protos.TraceConfig.GuardrailOverrides\x12\x16\n\x0e\x64\x65\x66\x65rred_start\x18\x0c \x01(\x08\x12\x17\n\x0f\x66lush_period_ms\x18\r \x01(\r\x12\x18\n\x10\x66lush_timeout_ms\x18\x0e \x01(\r\x12#\n\x1b\x64\x61ta_source_stop_timeout_ms\x18\x17 \x01(\r\x12\x16\n\x0enotify_traceur\x18\x10 \x01(\x08\x12\x17\n\x0f\x62ugreport_score\x18\x1e \x01(\x05\x12\x1a\n\x12\x62ugreport_filename\x18& \x01(\t\x12\x42\n\x0etrigger_config\x18\x11 \x01(\x0b\x32*.perfetto.protos.TraceConfig.TriggerConfig\x12\x19\n\x11\x61\x63tivate_triggers\x18\x12 \x03(\t\x12U\n\x18incremental_state_config\x18\x15 \x01(\x0b\x32\x33.perfetto.protos.TraceConfig.IncrementalStateConfig\x12$\n\x18\x61llow_user_build_tracing\x18\x13 \x01(\x08\x42\x02\x18\x01\x12\x1b\n\x13unique_session_name\x18\x16 \x01(\t\x12\x46\n\x10\x63ompression_type\x18\x18 \x01(\x0e\x32,.perfetto.protos.TraceConfig.CompressionType\x12Q\n\x16incident_report_config\x18\x19 \x01(\x0b\x32\x31.perfetto.protos.TraceConfig.IncidentReportConfig\x12\x42\n\x0estatsd_logging\x18\x1f \x01(\x0e\x32*.perfetto.protos.TraceConfig.StatsdLogging\x12\x1a\n\x0etrace_uuid_msb\x18\x1b \x01(\x03\x42\x02\x18\x01\x12\x1a\n\x0etrace_uuid_lsb\x18\x1c \x01(\x03\x42\x02\x18\x01\x12>\n\x0ctrace_filter\x18! \x01(\x0b\x32(.perfetto.protos.TraceConfig.TraceFilter\x12O\n\x15\x61ndroid_report_config\x18\" \x01(\x0b\x32\x30.perfetto.protos.TraceConfig.AndroidReportConfig\x12N\n\x15\x63md_trace_start_delay\x18# \x01(\x0b\x32/.perfetto.protos.TraceConfig.CmdTraceStartDelay\x12I\n\x12session_semaphores\x18\' \x03(\x0b\x32-.perfetto.protos.TraceConfig.SessionSemaphore\x12<\n\x0epriority_boost\x18( \x01(\x0b\x32$.perfetto.protos.PriorityBoostConfig\x12\x16\n\x0e\x65xclusive_prio\x18) \x01(\r\x12\'\n\x1fno_flush_before_write_into_file\x18* \x01(\x08\x12\x1a\n\x12trace_all_machines\x18+ \x01(\x08\x1a\xea\x01\n\x0c\x42ufferConfig\x12\x0f\n\x07size_kb\x18\x01 \x01(\r\x12I\n\x0b\x66ill_policy\x18\x04 \x01(\x0e\x32\x34.perfetto.protos.TraceConfig.BufferConfig.FillPolicy\x12\x19\n\x11transfer_on_clone\x18\x05 \x01(\x08\x12\x1a\n\x12\x63lear_before_clone\x18\x06 \x01(\x08\";\n\nFillPolicy\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0f\n\x0bRING_BUFFER\x10\x01\x12\x0b\n\x07\x44ISCARD\x10\x02J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04\x1a\x9e\x01\n\nDataSource\x12\x31\n\x06\x63onfig\x18\x01 \x01(\x0b\x32!.perfetto.protos.DataSourceConfig\x12\x1c\n\x14producer_name_filter\x18\x02 \x03(\t\x12\"\n\x1aproducer_name_regex_filter\x18\x03 \x03(\t\x12\x1b\n\x13machine_name_filter\x18\x04 \x03(\t\x1a\xbf\x02\n\x11\x42uiltinDataSource\x12\"\n\x1a\x64isable_clock_snapshotting\x18\x01 \x01(\x08\x12\x1c\n\x14\x64isable_trace_config\x18\x02 \x01(\x08\x12\x1b\n\x13\x64isable_system_info\x18\x03 \x01(\x08\x12\x1e\n\x16\x64isable_service_events\x18\x04 \x01(\x08\x12:\n\x13primary_trace_clock\x18\x05 \x01(\x0e\x32\x1d.perfetto.protos.BuiltinClock\x12\x1c\n\x14snapshot_interval_ms\x18\x06 \x01(\r\x12)\n!prefer_suspend_clock_for_snapshot\x18\x07 \x01(\x08\x12&\n\x1e\x64isable_chunk_usage_histograms\x18\x08 \x01(\x08\x1aR\n\x0eProducerConfig\x12\x15\n\rproducer_name\x18\x01 \x01(\t\x12\x13\n\x0bshm_size_kb\x18\x02 \x01(\r\x12\x14\n\x0cpage_size_kb\x18\x03 \x01(\r\x1a\x8e\x01\n\x0eStatsdMetadata\x12\x1b\n\x13triggering_alert_id\x18\x01 \x01(\x03\x12\x1d\n\x15triggering_config_uid\x18\x02 \x01(\x05\x12\x1c\n\x14triggering_config_id\x18\x03 \x01(\x03\x12\"\n\x1atriggering_subscription_id\x18\x04 \x01(\x03\x1a^\n\x12GuardrailOverrides\x12$\n\x18max_upload_per_day_bytes\x18\x01 \x01(\x04\x42\x02\x18\x01\x12\"\n\x1amax_tracing_buffer_size_kb\x18\x02 \x01(\r\x1a\xca\x03\n\rTriggerConfig\x12L\n\x0ctrigger_mode\x18\x01 \x01(\x0e\x32\x36.perfetto.protos.TraceConfig.TriggerConfig.TriggerMode\x12\'\n\x1fuse_clone_snapshot_if_available\x18\x05 \x01(\x08\x12\x44\n\x08triggers\x18\x02 \x03(\x0b\x32\x32.perfetto.protos.TraceConfig.TriggerConfig.Trigger\x12\x1a\n\x12trigger_timeout_ms\x18\x03 \x01(\r\x1a{\n\x07Trigger\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1b\n\x13producer_name_regex\x18\x02 \x01(\t\x12\x15\n\rstop_delay_ms\x18\x03 \x01(\r\x12\x14\n\x0cmax_per_24_h\x18\x04 \x01(\r\x12\x18\n\x10skip_probability\x18\x05 \x01(\x01\"]\n\x0bTriggerMode\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x11\n\rSTART_TRACING\x10\x01\x12\x10\n\x0cSTOP_TRACING\x10\x02\x12\x12\n\x0e\x43LONE_SNAPSHOT\x10\x04\"\x04\x08\x03\x10\x03J\x04\x08\x04\x10\x05\x1a\x31\n\x16IncrementalStateConfig\x12\x17\n\x0f\x63lear_period_ms\x18\x01 \x01(\r\x1a\x97\x01\n\x14IncidentReportConfig\x12\x1b\n\x13\x64\x65stination_package\x18\x01 \x01(\t\x12\x19\n\x11\x64\x65stination_class\x18\x02 \x01(\t\x12\x15\n\rprivacy_level\x18\x03 \x01(\x05\x12\x16\n\x0eskip_incidentd\x18\x05 \x01(\x08\x12\x18\n\x0cskip_dropbox\x18\x04 \x01(\x08\x42\x02\x18\x01\x1a\xd5\x04\n\x0bTraceFilter\x12\x10\n\x08\x62ytecode\x18\x01 \x01(\x0c\x12\x13\n\x0b\x62ytecode_v2\x18\x02 \x01(\x0c\x12W\n\x13string_filter_chain\x18\x03 \x01(\x0b\x32:.perfetto.protos.TraceConfig.TraceFilter.StringFilterChain\x1a\x9a\x01\n\x10StringFilterRule\x12K\n\x06policy\x18\x01 \x01(\x0e\x32;.perfetto.protos.TraceConfig.TraceFilter.StringFilterPolicy\x12\x15\n\rregex_pattern\x18\x02 \x01(\t\x12\"\n\x1a\x61trace_payload_starts_with\x18\x03 \x01(\t\x1a]\n\x11StringFilterChain\x12H\n\x05rules\x18\x01 \x03(\x0b\x32\x39.perfetto.protos.TraceConfig.TraceFilter.StringFilterRule\"\xc9\x01\n\x12StringFilterPolicy\x12\x13\n\x0fSFP_UNSPECIFIED\x10\x00\x12\x1b\n\x17SFP_MATCH_REDACT_GROUPS\x10\x01\x12\"\n\x1eSFP_ATRACE_MATCH_REDACT_GROUPS\x10\x02\x12\x13\n\x0fSFP_MATCH_BREAK\x10\x03\x12\x1a\n\x16SFP_ATRACE_MATCH_BREAK\x10\x04\x12,\n(SFP_ATRACE_REPEATED_SEARCH_REDACT_GROUPS\x10\x05\x1a\x97\x01\n\x13\x41ndroidReportConfig\x12 \n\x18reporter_service_package\x18\x01 \x01(\t\x12\x1e\n\x16reporter_service_class\x18\x02 \x01(\t\x12\x13\n\x0bskip_report\x18\x03 \x01(\x08\x12)\n!use_pipe_in_framework_for_testing\x18\x04 \x01(\x08\x1a@\n\x12\x43mdTraceStartDelay\x12\x14\n\x0cmin_delay_ms\x18\x01 \x01(\r\x12\x14\n\x0cmax_delay_ms\x18\x02 \x01(\r\x1a\x41\n\x10SessionSemaphore\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1f\n\x17max_other_session_count\x18\x02 \x01(\x04\"U\n\x15LockdownModeOperation\x12\x16\n\x12LOCKDOWN_UNCHANGED\x10\x00\x12\x12\n\x0eLOCKDOWN_CLEAR\x10\x01\x12\x10\n\x0cLOCKDOWN_SET\x10\x02\"Q\n\x0f\x43ompressionType\x12 \n\x1c\x43OMPRESSION_TYPE_UNSPECIFIED\x10\x00\x12\x1c\n\x18\x43OMPRESSION_TYPE_DEFLATE\x10\x01\"h\n\rStatsdLogging\x12\x1e\n\x1aSTATSD_LOGGING_UNSPECIFIED\x10\x00\x12\x1a\n\x16STATSD_LOGGING_ENABLED\x10\x01\x12\x1b\n\x17STATSD_LOGGING_DISABLED\x10\x02J\x04\x08\x0f\x10\x10J\x04\x08%\x10&J\x04\x08\x1a\x10\x1bJ\x04\x08 \x10!\"M\n\x07Utsname\x12\x0f\n\x07sysname\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\x0f\n\x07release\x18\x03 \x01(\t\x12\x0f\n\x07machine\x18\x04 \x01(\t\"\xc2\x03\n\nSystemInfo\x12)\n\x07utsname\x18\x01 \x01(\x0b\x32\x18.perfetto.protos.Utsname\x12!\n\x19\x61ndroid_build_fingerprint\x18\x02 \x01(\t\x12#\n\x1b\x61ndroid_device_manufacturer\x18\x0e \x01(\t\x12\x19\n\x11\x61ndroid_soc_model\x18\t \x01(\t\x12\x1f\n\x17\x61ndroid_guest_soc_model\x18\r \x01(\t\x12!\n\x19\x61ndroid_hardware_revision\x18\n \x01(\t\x12\x1d\n\x15\x61ndroid_storage_model\x18\x0b \x01(\t\x12\x19\n\x11\x61ndroid_ram_model\x18\x0c \x01(\t\x12\x1e\n\x16\x61ndroid_serial_console\x18\x0f \x01(\t\x12\x1f\n\x17tracing_service_version\x18\x04 \x01(\t\x12\x1b\n\x13\x61ndroid_sdk_version\x18\x05 \x01(\x04\x12\x11\n\tpage_size\x18\x06 \x01(\r\x12\x10\n\x08num_cpus\x18\x08 \x01(\r\x12\x19\n\x11timezone_off_mins\x18\x07 \x01(\x05\x12\n\n\x02hz\x18\x03 \x01(\x03\"\x91\x0c\n\nTraceStats\x12=\n\x0c\x62uffer_stats\x18\x01 \x03(\x0b\x32\'.perfetto.protos.TraceStats.BufferStats\x12#\n\x1b\x63hunk_payload_histogram_def\x18\x11 \x03(\x03\x12=\n\x0cwriter_stats\x18\x12 \x03(\x0b\x32\'.perfetto.protos.TraceStats.WriterStats\x12\x1b\n\x13producers_connected\x18\x02 \x01(\r\x12\x16\n\x0eproducers_seen\x18\x03 \x01(\x04\x12\x1f\n\x17\x64\x61ta_sources_registered\x18\x04 \x01(\r\x12\x19\n\x11\x64\x61ta_sources_seen\x18\x05 \x01(\x04\x12\x18\n\x10tracing_sessions\x18\x06 \x01(\r\x12\x15\n\rtotal_buffers\x18\x07 \x01(\r\x12\x18\n\x10\x63hunks_discarded\x18\x08 \x01(\x04\x12\x19\n\x11patches_discarded\x18\t \x01(\x04\x12\x17\n\x0finvalid_packets\x18\n \x01(\x04\x12=\n\x0c\x66ilter_stats\x18\x0b \x01(\x0b\x32\'.perfetto.protos.TraceStats.FilterStats\x12\x19\n\x11\x66lushes_requested\x18\x0c \x01(\x04\x12\x19\n\x11\x66lushes_succeeded\x18\r \x01(\x04\x12\x16\n\x0e\x66lushes_failed\x18\x0e \x01(\x04\x12J\n\x13\x66inal_flush_outcome\x18\x0f \x01(\x0e\x32-.perfetto.protos.TraceStats.FinalFlushOutcome\x1a\x8a\x04\n\x0b\x42ufferStats\x12\x13\n\x0b\x62uffer_size\x18\x0c \x01(\x04\x12\x15\n\rbytes_written\x18\x01 \x01(\x04\x12\x19\n\x11\x62ytes_overwritten\x18\r \x01(\x04\x12\x12\n\nbytes_read\x18\x0e \x01(\x04\x12\x1d\n\x15padding_bytes_written\x18\x0f \x01(\x04\x12\x1d\n\x15padding_bytes_cleared\x18\x10 \x01(\x04\x12\x16\n\x0e\x63hunks_written\x18\x02 \x01(\x04\x12\x18\n\x10\x63hunks_rewritten\x18\n \x01(\x04\x12\x1a\n\x12\x63hunks_overwritten\x18\x03 \x01(\x04\x12\x18\n\x10\x63hunks_discarded\x18\x12 \x01(\x04\x12\x13\n\x0b\x63hunks_read\x18\x11 \x01(\x04\x12%\n\x1d\x63hunks_committed_out_of_order\x18\x0b \x01(\x04\x12\x18\n\x10write_wrap_count\x18\x04 \x01(\x04\x12\x19\n\x11patches_succeeded\x18\x05 \x01(\x04\x12\x16\n\x0epatches_failed\x18\x06 \x01(\x04\x12\x1c\n\x14readaheads_succeeded\x18\x07 \x01(\x04\x12\x19\n\x11readaheads_failed\x18\x08 \x01(\x04\x12\x16\n\x0e\x61\x62i_violations\x18\t \x01(\x04\x12 \n\x18trace_writer_packet_loss\x18\x13 \x01(\x04\x1a\x87\x01\n\x0bWriterStats\x12\x13\n\x0bsequence_id\x18\x01 \x01(\x04\x12\x0e\n\x06\x62uffer\x18\x04 \x01(\r\x12*\n\x1e\x63hunk_payload_histogram_counts\x18\x02 \x03(\x04\x42\x02\x10\x01\x12\'\n\x1b\x63hunk_payload_histogram_sum\x18\x03 \x03(\x03\x42\x02\x10\x01\x1a\x9a\x01\n\x0b\x46ilterStats\x12\x15\n\rinput_packets\x18\x01 \x01(\x04\x12\x13\n\x0binput_bytes\x18\x02 \x01(\x04\x12\x14\n\x0coutput_bytes\x18\x03 \x01(\x04\x12\x0e\n\x06\x65rrors\x18\x04 \x01(\x04\x12\x15\n\rtime_taken_ns\x18\x05 \x01(\x04\x12\"\n\x1a\x62ytes_discarded_per_buffer\x18\x14 \x03(\x04\"c\n\x11\x46inalFlushOutcome\x12\x1b\n\x17\x46INAL_FLUSH_UNSPECIFIED\x10\x00\x12\x19\n\x15\x46INAL_FLUSH_SUCCEEDED\x10\x01\x12\x16\n\x12\x46INAL_FLUSH_FAILED\x10\x02\"\x8f\x03\n\x1b\x41ndroidGameInterventionList\x12S\n\rgame_packages\x18\x01 \x03(\x0b\x32<.perfetto.protos.AndroidGameInterventionList.GamePackageInfo\x12\x13\n\x0bparse_error\x18\x02 \x01(\x08\x12\x12\n\nread_error\x18\x03 \x01(\x08\x1aZ\n\x0cGameModeInfo\x12\x0c\n\x04mode\x18\x01 \x01(\r\x12\x11\n\tuse_angle\x18\x02 \x01(\x08\x12\x1c\n\x14resolution_downscale\x18\x03 \x01(\x02\x12\x0b\n\x03\x66ps\x18\x04 \x01(\x02\x1a\x95\x01\n\x0fGamePackageInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03uid\x18\x02 \x01(\x04\x12\x14\n\x0c\x63urrent_mode\x18\x03 \x01(\r\x12Q\n\x0egame_mode_info\x18\x04 \x03(\x0b\x32\x39.perfetto.protos.AndroidGameInterventionList.GameModeInfo\"\xb2\x04\n\x10\x41ndroidLogPacket\x12:\n\x06\x65vents\x18\x01 \x03(\x0b\x32*.perfetto.protos.AndroidLogPacket.LogEvent\x12\x36\n\x05stats\x18\x02 \x01(\x0b\x32\'.perfetto.protos.AndroidLogPacket.Stats\x1a\xe4\x02\n\x08LogEvent\x12-\n\x06log_id\x18\x01 \x01(\x0e\x32\x1d.perfetto.protos.AndroidLogId\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x0b\n\x03tid\x18\x03 \x01(\x05\x12\x0b\n\x03uid\x18\x04 \x01(\x05\x12\x11\n\ttimestamp\x18\x05 \x01(\x04\x12\x0b\n\x03tag\x18\x06 \x01(\t\x12\x31\n\x04prio\x18\x07 \x01(\x0e\x32#.perfetto.protos.AndroidLogPriority\x12\x0f\n\x07message\x18\x08 \x01(\t\x12<\n\x04\x61rgs\x18\t \x03(\x0b\x32..perfetto.protos.AndroidLogPacket.LogEvent.Arg\x1a`\n\x03\x41rg\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\tint_value\x18\x02 \x01(\x03H\x00\x12\x15\n\x0b\x66loat_value\x18\x03 \x01(\x02H\x00\x12\x16\n\x0cstring_value\x18\x04 \x01(\tH\x00\x42\x07\n\x05value\x1a\x43\n\x05Stats\x12\x11\n\tnum_total\x18\x01 \x01(\x04\x12\x12\n\nnum_failed\x18\x02 \x01(\x04\x12\x13\n\x0bnum_skipped\x18\x03 \x01(\x04\"\x8b\x01\n\x15\x41ndroidSystemProperty\x12\x44\n\x06values\x18\x01 \x03(\x0b\x32\x34.perfetto.protos.AndroidSystemProperty.PropertyValue\x1a,\n\rPropertyValue\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"r\n\x0f\x41ppWakelockInfo\x12\x0b\n\x03iid\x18\x01 \x01(\x05\x12\x0b\n\x03tag\x18\x02 \x01(\t\x12\r\n\x05\x66lags\x18\x03 \x01(\x05\x12\x11\n\towner_pid\x18\x04 \x01(\x05\x12\x11\n\towner_uid\x18\x05 \x01(\x05\x12\x10\n\x08work_uid\x18\x06 \x01(\x05\"\x84\x01\n\x11\x41ppWakelockBundle\x12\x15\n\tintern_id\x18\x01 \x03(\rB\x02\x10\x01\x12\x16\n\nencoded_ts\x18\x02 \x03(\x04\x42\x02\x10\x01\x12.\n\x04info\x18\x03 \x01(\x0b\x32 .perfetto.protos.AppWakelockInfo\x12\x10\n\x08\x61\x63quired\x18\x04 \x01(\x08\"\xdd\x01\n\x13\x42luetoothTraceEvent\x12>\n\x0bpacket_type\x18\x01 \x01(\x0e\x32).perfetto.protos.BluetoothTracePacketType\x12\r\n\x05\x63ount\x18\x02 \x01(\r\x12\x0e\n\x06length\x18\x03 \x01(\r\x12\x10\n\x08\x64uration\x18\x04 \x01(\r\x12\x0f\n\x07op_code\x18\x05 \x01(\r\x12\x12\n\nevent_code\x18\x06 \x01(\r\x12\x15\n\rsubevent_code\x18\x07 \x01(\r\x12\x19\n\x11\x63onnection_handle\x18\x08 \x01(\r\"\x82\x07\n\x17\x41ndroidCameraFrameEvent\x12\x12\n\nsession_id\x18\x01 \x01(\x04\x12\x11\n\tcamera_id\x18\x02 \x01(\r\x12\x14\n\x0c\x66rame_number\x18\x03 \x01(\x03\x12\x12\n\nrequest_id\x18\x04 \x01(\x03\x12\x1b\n\x13request_received_ns\x18\x05 \x01(\x03\x12%\n\x1drequest_processing_started_ns\x18\x06 \x01(\x03\x12\x1c\n\x14start_of_exposure_ns\x18\x07 \x01(\x03\x12\x19\n\x11start_of_frame_ns\x18\x08 \x01(\x03\x12\x1d\n\x15responses_all_sent_ns\x18\t \x01(\x03\x12[\n\x15\x63\x61pture_result_status\x18\n \x01(\x0e\x32<.perfetto.protos.AndroidCameraFrameEvent.CaptureResultStatus\x12\x1d\n\x15skipped_sensor_frames\x18\x0b \x01(\x05\x12\x16\n\x0e\x63\x61pture_intent\x18\x0c \x01(\x05\x12\x13\n\x0bnum_streams\x18\r \x01(\x05\x12\x65\n\x17node_processing_details\x18\x0e \x03(\x0b\x32\x44.perfetto.protos.AndroidCameraFrameEvent.CameraNodeProcessingDetails\x12\x1b\n\x13vendor_data_version\x18\x0f \x01(\x05\x12\x13\n\x0bvendor_data\x18\x10 \x01(\x0c\x1a\x85\x01\n\x1b\x43\x61meraNodeProcessingDetails\x12\x0f\n\x07node_id\x18\x01 \x01(\x03\x12\x1b\n\x13start_processing_ns\x18\x02 \x01(\x03\x12\x19\n\x11\x65nd_processing_ns\x18\x03 \x01(\x03\x12\x1d\n\x15scheduling_latency_ns\x18\x04 \x01(\x03\"\xaf\x01\n\x13\x43\x61ptureResultStatus\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\r\n\tSTATUS_OK\x10\x01\x12\x1f\n\x1bSTATUS_EARLY_METADATA_ERROR\x10\x02\x12\x1f\n\x1bSTATUS_FINAL_METADATA_ERROR\x10\x03\x12\x17\n\x13STATUS_BUFFER_ERROR\x10\x04\x12\x16\n\x12STATUS_FLUSH_ERROR\x10\x05\"\xb7\x04\n\x19\x41ndroidCameraSessionStats\x12\x12\n\nsession_id\x18\x01 \x01(\x04\x12\x45\n\x05graph\x18\x02 \x01(\x0b\x32\x36.perfetto.protos.AndroidCameraSessionStats.CameraGraph\x1a\xbe\x03\n\x0b\x43\x61meraGraph\x12P\n\x05nodes\x18\x01 \x03(\x0b\x32\x41.perfetto.protos.AndroidCameraSessionStats.CameraGraph.CameraNode\x12P\n\x05\x65\x64ges\x18\x02 \x03(\x0b\x32\x41.perfetto.protos.AndroidCameraSessionStats.CameraGraph.CameraEdge\x1av\n\nCameraNode\x12\x0f\n\x07node_id\x18\x01 \x01(\x03\x12\x11\n\tinput_ids\x18\x02 \x03(\x03\x12\x12\n\noutput_ids\x18\x03 \x03(\x03\x12\x1b\n\x13vendor_data_version\x18\x04 \x01(\x05\x12\x13\n\x0bvendor_data\x18\x05 \x01(\x0c\x1a\x92\x01\n\nCameraEdge\x12\x16\n\x0eoutput_node_id\x18\x01 \x01(\x03\x12\x11\n\toutput_id\x18\x02 \x01(\x03\x12\x15\n\rinput_node_id\x18\x03 \x01(\x03\x12\x10\n\x08input_id\x18\x04 \x01(\x03\x12\x1b\n\x13vendor_data_version\x18\x05 \x01(\x05\x12\x13\n\x0bvendor_data\x18\x06 \x01(\x0c\"R\n\rCpuPerUidData\x12\x15\n\rcluster_count\x18\x01 \x01(\r\x12\x0f\n\x03uid\x18\x02 \x03(\rB\x02\x10\x01\x12\x19\n\rtotal_time_ms\x18\x03 \x03(\x04\x42\x02\x10\x01\"\xeb\x14\n\x12\x46rameTimelineEvent\x12\x65\n\x1c\x65xpected_display_frame_start\x18\x01 \x01(\x0b\x32=.perfetto.protos.FrameTimelineEvent.ExpectedDisplayFrameStartH\x00\x12\x61\n\x1a\x61\x63tual_display_frame_start\x18\x02 \x01(\x0b\x32;.perfetto.protos.FrameTimelineEvent.ActualDisplayFrameStartH\x00\x12\x65\n\x1c\x65xpected_surface_frame_start\x18\x03 \x01(\x0b\x32=.perfetto.protos.FrameTimelineEvent.ExpectedSurfaceFrameStartH\x00\x12\x61\n\x1a\x61\x63tual_surface_frame_start\x18\x04 \x01(\x0b\x32;.perfetto.protos.FrameTimelineEvent.ActualSurfaceFrameStartH\x00\x12\x41\n\tframe_end\x18\x05 \x01(\x0b\x32,.perfetto.protos.FrameTimelineEvent.FrameEndH\x00\x1ax\n\x19\x45xpectedSurfaceFrameStart\x12\x0e\n\x06\x63ookie\x18\x01 \x01(\x03\x12\r\n\x05token\x18\x02 \x01(\x03\x12\x1b\n\x13\x64isplay_frame_token\x18\x03 \x01(\x03\x12\x0b\n\x03pid\x18\x04 \x01(\x05\x12\x12\n\nlayer_name\x18\x05 \x01(\t\x1a\x88\x05\n\x17\x41\x63tualSurfaceFrameStart\x12\x0e\n\x06\x63ookie\x18\x01 \x01(\x03\x12\r\n\x05token\x18\x02 \x01(\x03\x12\x1b\n\x13\x64isplay_frame_token\x18\x03 \x01(\x03\x12\x0b\n\x03pid\x18\x04 \x01(\x05\x12\x12\n\nlayer_name\x18\x05 \x01(\t\x12\x45\n\x0cpresent_type\x18\x06 \x01(\x0e\x32/.perfetto.protos.FrameTimelineEvent.PresentType\x12\x16\n\x0eon_time_finish\x18\x07 \x01(\x08\x12\x17\n\x0fgpu_composition\x18\x08 \x01(\x08\x12\x11\n\tjank_type\x18\t \x01(\x05\x12K\n\x0fprediction_type\x18\n \x01(\x0e\x32\x32.perfetto.protos.FrameTimelineEvent.PredictionType\x12\x11\n\tis_buffer\x18\x0b \x01(\x08\x12P\n\x12jank_severity_type\x18\x0c \x01(\x0e\x32\x34.perfetto.protos.FrameTimelineEvent.JankSeverityType\x12\x1c\n\x14present_delay_millis\x18\r \x01(\x02\x12$\n\x1cvsync_resynced_jitter_millis\x18\x0e \x01(\x02\x12\x1b\n\x13jank_severity_score\x18\x0f \x01(\x02\x12\x1e\n\x16jank_type_experimental\x18\x10 \x01(\x05\x12R\n\x19present_type_experimental\x18\x11 \x01(\x0e\x32/.perfetto.protos.FrameTimelineEvent.PresentType\x1aG\n\x19\x45xpectedDisplayFrameStart\x12\x0e\n\x06\x63ookie\x18\x01 \x01(\x03\x12\r\n\x05token\x18\x02 \x01(\x03\x12\x0b\n\x03pid\x18\x03 \x01(\x05\x1a\x9e\x04\n\x17\x41\x63tualDisplayFrameStart\x12\x0e\n\x06\x63ookie\x18\x01 \x01(\x03\x12\r\n\x05token\x18\x02 \x01(\x03\x12\x0b\n\x03pid\x18\x03 \x01(\x05\x12\x45\n\x0cpresent_type\x18\x04 \x01(\x0e\x32/.perfetto.protos.FrameTimelineEvent.PresentType\x12\x16\n\x0eon_time_finish\x18\x05 \x01(\x08\x12\x17\n\x0fgpu_composition\x18\x06 \x01(\x08\x12\x11\n\tjank_type\x18\x07 \x01(\x05\x12K\n\x0fprediction_type\x18\x08 \x01(\x0e\x32\x32.perfetto.protos.FrameTimelineEvent.PredictionType\x12P\n\x12jank_severity_type\x18\t \x01(\x0e\x32\x34.perfetto.protos.FrameTimelineEvent.JankSeverityType\x12\x1c\n\x14present_delay_millis\x18\n \x01(\x02\x12\x1b\n\x13jank_severity_score\x18\x0b \x01(\x02\x12\x1e\n\x16jank_type_experimental\x18\x0c \x01(\x05\x12R\n\x19present_type_experimental\x18\r \x01(\x0e\x32/.perfetto.protos.FrameTimelineEvent.PresentType\x1a\x1a\n\x08\x46rameEnd\x12\x0e\n\x06\x63ookie\x18\x01 \x01(\x03\"\x82\x03\n\x08JankType\x12\x14\n\x10JANK_UNSPECIFIED\x10\x00\x12\r\n\tJANK_NONE\x10\x01\x12\x16\n\x12JANK_SF_SCHEDULING\x10\x02\x12\x19\n\x15JANK_PREDICTION_ERROR\x10\x04\x12\x14\n\x10JANK_DISPLAY_HAL\x10\x08\x12\x1f\n\x1bJANK_SF_CPU_DEADLINE_MISSED\x10\x10\x12\x1f\n\x1bJANK_SF_GPU_DEADLINE_MISSED\x10 \x12\x1c\n\x18JANK_APP_DEADLINE_MISSED\x10@\x12\x19\n\x14JANK_BUFFER_STUFFING\x10\x80\x01\x12\x11\n\x0cJANK_UNKNOWN\x10\x80\x02\x12\x15\n\x10JANK_SF_STUFFING\x10\x80\x04\x12\x11\n\x0cJANK_DROPPED\x10\x80\x08\x12\x17\n\x12JANK_NON_ANIMATING\x10\x80\x10\x12\x1d\n\x18JANK_APP_RESYNCED_JITTER\x10\x80 \x12\x18\n\x13JANK_DISPLAY_NOT_ON\x10\x80@\"d\n\x10JankSeverityType\x12\x14\n\x10SEVERITY_UNKNOWN\x10\x00\x12\x11\n\rSEVERITY_NONE\x10\x01\x12\x14\n\x10SEVERITY_PARTIAL\x10\x02\x12\x11\n\rSEVERITY_FULL\x10\x03\"\x8a\x01\n\x0bPresentType\x12\x17\n\x13PRESENT_UNSPECIFIED\x10\x00\x12\x13\n\x0fPRESENT_ON_TIME\x10\x01\x12\x10\n\x0cPRESENT_LATE\x10\x02\x12\x11\n\rPRESENT_EARLY\x10\x03\x12\x13\n\x0fPRESENT_DROPPED\x10\x04\x12\x13\n\x0fPRESENT_UNKNOWN\x10\x05\"r\n\x0ePredictionType\x12\x1a\n\x16PREDICTION_UNSPECIFIED\x10\x00\x12\x14\n\x10PREDICTION_VALID\x10\x01\x12\x16\n\x12PREDICTION_EXPIRED\x10\x02\x12\x16\n\x12PREDICTION_UNKNOWN\x10\x03\x42\x07\n\x05\x65vent\"=\n\x10GpuMemTotalEvent\x12\x0e\n\x06gpu_id\x18\x01 \x01(\r\x12\x0b\n\x03pid\x18\x02 \x01(\r\x12\x0c\n\x04size\x18\x03 \x01(\x04\"\xf1\x03\n\x12GraphicsFrameEvent\x12\x45\n\x0c\x62uffer_event\x18\x01 \x01(\x0b\x32/.perfetto.protos.GraphicsFrameEvent.BufferEvent\x1a\xa2\x01\n\x0b\x42ufferEvent\x12\x14\n\x0c\x66rame_number\x18\x01 \x01(\r\x12\x41\n\x04type\x18\x02 \x01(\x0e\x32\x33.perfetto.protos.GraphicsFrameEvent.BufferEventType\x12\x12\n\nlayer_name\x18\x03 \x01(\t\x12\x13\n\x0b\x64uration_ns\x18\x04 \x01(\x04\x12\x11\n\tbuffer_id\x18\x05 \x01(\r\"\xee\x01\n\x0f\x42ufferEventType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07\x44\x45QUEUE\x10\x01\x12\t\n\x05QUEUE\x10\x02\x12\x08\n\x04POST\x10\x03\x12\x11\n\rACQUIRE_FENCE\x10\x04\x12\t\n\x05LATCH\x10\x05\x12\x1a\n\x16HWC_COMPOSITION_QUEUED\x10\x06\x12\x18\n\x14\x46\x41LLBACK_COMPOSITION\x10\x07\x12\x11\n\rPRESENT_FENCE\x10\x08\x12\x11\n\rRELEASE_FENCE\x10\t\x12\n\n\x06MODIFY\x10\n\x12\n\n\x06\x44\x45TACH\x10\x0b\x12\n\n\x06\x41TTACH\x10\x0c\x12\n\n\x06\x43\x41NCEL\x10\r\"@\n\x13InitialDisplayState\x12\x15\n\rdisplay_state\x18\x01 \x01(\x05\x12\x12\n\nbrightness\x18\x02 \x01(\x01\"\xfa\x02\n\x12KernelWakelockData\x12>\n\x08wakelock\x18\x01 \x03(\x0b\x32,.perfetto.protos.KernelWakelockData.Wakelock\x12\x17\n\x0bwakelock_id\x18\x02 \x03(\rB\x02\x10\x01\x12\x1c\n\x10time_held_millis\x18\x03 \x03(\x04\x42\x02\x10\x01\x12\x13\n\x0b\x65rror_flags\x18\x04 \x01(\x04\x1a\xd7\x01\n\x08Wakelock\x12\x13\n\x0bwakelock_id\x18\x01 \x01(\r\x12\x15\n\rwakelock_name\x18\x02 \x01(\t\x12H\n\rwakelock_type\x18\x03 \x01(\x0e\x32\x31.perfetto.protos.KernelWakelockData.Wakelock.Type\"U\n\x04Type\x12\x19\n\x15WAKELOCK_TYPE_UNKNOWN\x10\x00\x12\x18\n\x14WAKELOCK_TYPE_KERNEL\x10\x01\x12\x18\n\x14WAKELOCK_TYPE_NATIVE\x10\x02\"\x83\x02\n\x12NetworkPacketEvent\x12\x34\n\tdirection\x18\x01 \x01(\x0e\x32!.perfetto.protos.TrafficDirection\x12\x19\n\x11network_interface\x18\x02 \x01(\t\x12\x0e\n\x06length\x18\x03 \x01(\r\x12\x0b\n\x03uid\x18\x04 \x01(\r\x12\x0b\n\x03tag\x18\x05 \x01(\r\x12\x10\n\x08ip_proto\x18\x06 \x01(\r\x12\x11\n\ttcp_flags\x18\x07 \x01(\r\x12\x12\n\nlocal_port\x18\x08 \x01(\r\x12\x13\n\x0bremote_port\x18\t \x01(\r\x12\x11\n\ticmp_type\x18\n \x01(\r\x12\x11\n\ticmp_code\x18\x0b \x01(\r\"\xea\x01\n\x13NetworkPacketBundle\x12\r\n\x03iid\x18\x01 \x01(\x04H\x00\x12\x32\n\x03\x63tx\x18\x02 \x01(\x0b\x32#.perfetto.protos.NetworkPacketEventH\x00\x12\x1d\n\x11packet_timestamps\x18\x03 \x03(\x04\x42\x02\x10\x01\x12\x1a\n\x0epacket_lengths\x18\x04 \x03(\rB\x02\x10\x01\x12\x15\n\rtotal_packets\x18\x05 \x01(\r\x12\x16\n\x0etotal_duration\x18\x06 \x01(\x04\x12\x14\n\x0ctotal_length\x18\x07 \x01(\x04\x42\x10\n\x0epacket_context\"U\n\x14NetworkPacketContext\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x30\n\x03\x63tx\x18\x02 \x01(\x0b\x32#.perfetto.protos.NetworkPacketEvent\"\xe8\x01\n\x0cPackagesList\x12;\n\x08packages\x18\x01 \x03(\x0b\x32).perfetto.protos.PackagesList.PackageInfo\x12\x13\n\x0bparse_error\x18\x02 \x01(\x08\x12\x12\n\nread_error\x18\x03 \x01(\x08\x1ar\n\x0bPackageInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03uid\x18\x02 \x01(\x04\x12\x12\n\ndebuggable\x18\x03 \x01(\x08\x12\x1e\n\x16profileable_from_shell\x18\x04 \x01(\x08\x12\x14\n\x0cversion_code\x18\x05 \x01(\x03\"<\n\x10PixelModemEvents\x12\x0e\n\x06\x65vents\x18\x01 \x03(\x0c\x12\x18\n\x10\x65vent_time_nanos\x18\x02 \x03(\x04\"+\n\x17PixelModemTokenDatabase\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\x0c\"\x9b\x01\n\x0fProtoLogMessage\x12\x12\n\nmessage_id\x18\x01 \x01(\x06\x12\x16\n\x0estr_param_iids\x18\x02 \x03(\r\x12\x15\n\rsint64_params\x18\x03 \x03(\x12\x12\x15\n\rdouble_params\x18\x04 \x03(\x01\x12\x16\n\x0e\x62oolean_params\x18\x05 \x03(\x05\x12\x16\n\x0estacktrace_iid\x18\x06 \x01(\r\"\xd0\x02\n\x14ProtoLogViewerConfig\x12\x43\n\x08messages\x18\x01 \x03(\x0b\x32\x31.perfetto.protos.ProtoLogViewerConfig.MessageData\x12;\n\x06groups\x18\x02 \x03(\x0b\x32+.perfetto.protos.ProtoLogViewerConfig.Group\x1a\x85\x01\n\x0bMessageData\x12\x12\n\nmessage_id\x18\x01 \x01(\x06\x12\x0f\n\x07message\x18\x02 \x01(\t\x12-\n\x05level\x18\x03 \x01(\x0e\x32\x1e.perfetto.protos.ProtoLogLevel\x12\x10\n\x08group_id\x18\x04 \x01(\r\x12\x10\n\x08location\x18\x05 \x01(\t\x1a.\n\x05Group\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0b\n\x03tag\x18\x03 \x01(\t\"\x99\x04\n\x0fShellTransition\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x16\n\x0e\x63reate_time_ns\x18\x02 \x01(\x03\x12\x14\n\x0csend_time_ns\x18\x03 \x01(\x03\x12\x18\n\x10\x64ispatch_time_ns\x18\x04 \x01(\x03\x12\x15\n\rmerge_time_ns\x18\x05 \x01(\x03\x12\x1d\n\x15merge_request_time_ns\x18\x06 \x01(\x03\x12\x1b\n\x13shell_abort_time_ns\x18\x07 \x01(\x03\x12\x18\n\x10wm_abort_time_ns\x18\x08 \x01(\x03\x12\x16\n\x0e\x66inish_time_ns\x18\t \x01(\x03\x12\x1c\n\x14start_transaction_id\x18\n \x01(\x04\x12\x1d\n\x15\x66inish_transaction_id\x18\x0b \x01(\x04\x12\x0f\n\x07handler\x18\x0c \x01(\x05\x12\x0c\n\x04type\x18\r \x01(\x05\x12\x38\n\x07targets\x18\x0e \x03(\x0b\x32\'.perfetto.protos.ShellTransition.Target\x12\x14\n\x0cmerge_target\x18\x0f \x01(\x05\x12\r\n\x05\x66lags\x18\x10 \x01(\x05\x12&\n\x1estarting_window_remove_time_ns\x18\x11 \x01(\x03\x1aJ\n\x06Target\x12\x0c\n\x04mode\x18\x01 \x01(\x05\x12\x10\n\x08layer_id\x18\x02 \x01(\x05\x12\x11\n\twindow_id\x18\x03 \x01(\x05\x12\r\n\x05\x66lags\x18\x04 \x01(\x05\"M\n\x14ShellHandlerMappings\x12\x35\n\x07mapping\x18\x01 \x03(\x0b\x32$.perfetto.protos.ShellHandlerMapping\"/\n\x13ShellHandlerMapping\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\"E\n\tRectProto\x12\x0c\n\x04left\x18\x01 \x01(\x05\x12\x0b\n\x03top\x18\x02 \x01(\x05\x12\r\n\x05right\x18\x03 \x01(\x05\x12\x0e\n\x06\x62ottom\x18\x04 \x01(\x05\"=\n\x0bRegionProto\x12(\n\x04rect\x18\x02 \x03(\x0b\x32\x1a.perfetto.protos.RectProtoJ\x04\x08\x01\x10\x02\"!\n\tSizeProto\x12\t\n\x01w\x18\x01 \x01(\x05\x12\t\n\x01h\x18\x02 \x01(\x05\"V\n\x0eTransformProto\x12\x0c\n\x04\x64sdx\x18\x01 \x01(\x02\x12\x0c\n\x04\x64tdx\x18\x02 \x01(\x02\x12\x0c\n\x04\x64sdy\x18\x03 \x01(\x02\x12\x0c\n\x04\x64tdy\x18\x04 \x01(\x02\x12\x0c\n\x04type\x18\x05 \x01(\x05\"8\n\nColorProto\x12\t\n\x01r\x18\x01 \x01(\x02\x12\t\n\x01g\x18\x02 \x01(\x02\x12\t\n\x01\x62\x18\x03 \x01(\x02\x12\t\n\x01\x61\x18\x04 \x01(\x02\"\xbf\x04\n\x14InputWindowInfoProto\x12\x1b\n\x13layout_params_flags\x18\x01 \x01(\r\x12\x1a\n\x12layout_params_type\x18\x02 \x01(\x05\x12)\n\x05\x66rame\x18\x03 \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12\x36\n\x10touchable_region\x18\x04 \x01(\x0b\x32\x1c.perfetto.protos.RegionProto\x12\x15\n\rsurface_inset\x18\x05 \x01(\x05\x12\x0f\n\x07visible\x18\x06 \x01(\x08\x12\x1c\n\x10\x63\x61n_receive_keys\x18\x07 \x01(\x08\x42\x02\x18\x01\x12\x11\n\tfocusable\x18\x08 \x01(\x08\x12\x15\n\rhas_wallpaper\x18\t \x01(\x08\x12\x1b\n\x13global_scale_factor\x18\n \x01(\x02\x12\x1a\n\x0ewindow_x_scale\x18\x0b \x01(\x02\x42\x02\x18\x01\x12\x1a\n\x0ewindow_y_scale\x18\x0c \x01(\x02\x42\x02\x18\x01\x12\x15\n\rcrop_layer_id\x18\r \x01(\x05\x12*\n\"replace_touchable_region_with_crop\x18\x0e \x01(\x08\x12\x39\n\x15touchable_region_crop\x18\x0f \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12\x32\n\ttransform\x18\x10 \x01(\x0b\x32\x1f.perfetto.protos.TransformProto\x12\x14\n\x0cinput_config\x18\x11 \x01(\r\"\xba\x03\n\nBlurRegion\x12\x13\n\x0b\x62lur_radius\x18\x01 \x01(\r\x12\x1c\n\x10\x63orner_radius_tl\x18\x02 \x01(\rB\x02\x18\x01\x12\x1c\n\x10\x63orner_radius_tr\x18\x03 \x01(\rB\x02\x18\x01\x12\x1c\n\x10\x63orner_radius_bl\x18\x04 \x01(\rB\x02\x18\x01\x12\x1c\n\x10\x63orner_radius_br\x18\x05 \x01(\x02\x42\x02\x18\x01\x12\x19\n\x11\x63orner_radius_tlx\x18\x0b \x01(\x02\x12\x19\n\x11\x63orner_radius_tly\x18\x0c \x01(\x02\x12\x19\n\x11\x63orner_radius_trx\x18\r \x01(\x02\x12\x19\n\x11\x63orner_radius_try\x18\x0e \x01(\x02\x12\x19\n\x11\x63orner_radius_blx\x18\x0f \x01(\x02\x12\x19\n\x11\x63orner_radius_bly\x18\x10 \x01(\x02\x12\x19\n\x11\x63orner_radius_brx\x18\x11 \x01(\x02\x12\x19\n\x11\x63orner_radius_bry\x18\x12 \x01(\x02\x12\r\n\x05\x61lpha\x18\x06 \x01(\x02\x12\x0c\n\x04left\x18\x07 \x01(\x05\x12\x0b\n\x03top\x18\x08 \x01(\x05\x12\r\n\x05right\x18\t \x01(\x05\x12\x0e\n\x06\x62ottom\x18\n \x01(\x05\"&\n\x13\x43olorTransformProto\x12\x0f\n\x03val\x18\x01 \x03(\x02\x42\x02\x10\x01\"\xce\x01\n\x11\x42oxShadowSettings\x12G\n\x0b\x62ox_shadows\x18\x01 \x03(\x0b\x32\x32.perfetto.protos.BoxShadowSettings.BoxShadowParams\x1ap\n\x0f\x42oxShadowParams\x12\x13\n\x0b\x62lur_radius\x18\x01 \x01(\x02\x12\x15\n\rspread_radius\x18\x02 \x01(\x02\x12\r\n\x05\x63olor\x18\x03 \x01(\x05\x12\x10\n\x08offset_x\x18\x04 \x01(\x02\x12\x10\n\x08offset_y\x18\x05 \x01(\x02\"5\n\x0e\x42orderSettings\x12\x14\n\x0cstroke_width\x18\x01 \x01(\x02\x12\r\n\x05\x63olor\x18\x02 \x01(\x05\"\xd8\x01\n\x14LayersTraceFileProto\x12\x14\n\x0cmagic_number\x18\x01 \x01(\x06\x12\x33\n\x05\x65ntry\x18\x02 \x03(\x0b\x32$.perfetto.protos.LayersSnapshotProto\x12)\n!real_to_elapsed_time_offset_nanos\x18\x03 \x01(\x06\"J\n\x0bMagicNumber\x12\x0b\n\x07INVALID\x10\x00\x12\x16\n\x0eMAGIC_NUMBER_L\x10\xcc\xb2\xc9\xa2\x05\x12\x16\n\x0eMAGIC_NUMBER_H\x10\xd2\x82\x8d\xaa\x04\"\x83\x02\n\x13LayersSnapshotProto\x12\x1e\n\x16\x65lapsed_realtime_nanos\x18\x01 \x01(\x10\x12\r\n\x05where\x18\x02 \x01(\t\x12,\n\x06layers\x18\x03 \x01(\x0b\x32\x1c.perfetto.protos.LayersProto\x12\x10\n\x08hwc_blob\x18\x04 \x01(\t\x12\"\n\x1a\x65xcludes_composition_state\x18\x05 \x01(\x08\x12\x16\n\x0emissed_entries\x18\x06 \x01(\r\x12/\n\x08\x64isplays\x18\x07 \x03(\x0b\x32\x1d.perfetto.protos.DisplayProto\x12\x10\n\x08vsync_id\x18\x08 \x01(\x03\":\n\x0bLayersProto\x12+\n\x06layers\x18\x01 \x03(\x0b\x32\x1b.perfetto.protos.LayerProto\"\x89\x02\n\x0c\x44isplayProto\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0blayer_stack\x18\x03 \x01(\r\x12(\n\x04size\x18\x04 \x01(\x0b\x32\x1a.perfetto.protos.SizeProto\x12:\n\x16layer_stack_space_rect\x18\x05 \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12\x32\n\ttransform\x18\x06 \x01(\x0b\x32\x1f.perfetto.protos.TransformProto\x12\x12\n\nis_virtual\x18\x07 \x01(\x08\x12\r\n\x05\x64pi_x\x18\x08 \x01(\x01\x12\r\n\x05\x64pi_y\x18\t \x01(\x01\"\xcb\x15\n\nLayerProto\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x14\n\x08\x63hildren\x18\x03 \x03(\x05\x42\x02\x10\x01\x12\x15\n\trelatives\x18\x04 \x03(\x05\x42\x02\x10\x01\x12\x0c\n\x04type\x18\x05 \x01(\t\x12\x38\n\x12transparent_region\x18\x06 \x01(\x0b\x32\x1c.perfetto.protos.RegionProto\x12\x34\n\x0evisible_region\x18\x07 \x01(\x0b\x32\x1c.perfetto.protos.RegionProto\x12\x33\n\rdamage_region\x18\x08 \x01(\x0b\x32\x1c.perfetto.protos.RegionProto\x12\x13\n\x0blayer_stack\x18\t \x01(\r\x12\t\n\x01z\x18\n \x01(\x05\x12\x30\n\x08position\x18\x0b \x01(\x0b\x32\x1e.perfetto.protos.PositionProto\x12:\n\x12requested_position\x18\x0c \x01(\x0b\x32\x1e.perfetto.protos.PositionProto\x12(\n\x04size\x18\r \x01(\x0b\x32\x1a.perfetto.protos.SizeProto\x12(\n\x04\x63rop\x18\x0e \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12\x32\n\nfinal_crop\x18\x0f \x01(\x0b\x32\x1a.perfetto.protos.RectProtoB\x02\x18\x01\x12\x11\n\tis_opaque\x18\x10 \x01(\x08\x12\x12\n\ninvalidate\x18\x11 \x01(\x08\x12\x11\n\tdataspace\x18\x12 \x01(\t\x12\x14\n\x0cpixel_format\x18\x13 \x01(\t\x12*\n\x05\x63olor\x18\x14 \x01(\x0b\x32\x1b.perfetto.protos.ColorProto\x12\x34\n\x0frequested_color\x18\x15 \x01(\x0b\x32\x1b.perfetto.protos.ColorProto\x12\r\n\x05\x66lags\x18\x16 \x01(\r\x12\x32\n\ttransform\x18\x17 \x01(\x0b\x32\x1f.perfetto.protos.TransformProto\x12<\n\x13requested_transform\x18\x18 \x01(\x0b\x32\x1f.perfetto.protos.TransformProto\x12\x0e\n\x06parent\x18\x19 \x01(\x05\x12\x1b\n\x13z_order_relative_of\x18\x1a \x01(\x05\x12\x39\n\ractive_buffer\x18\x1b \x01(\x0b\x32\".perfetto.protos.ActiveBufferProto\x12\x15\n\rqueued_frames\x18\x1c \x01(\x05\x12\x17\n\x0frefresh_pending\x18\x1d \x01(\x08\x12-\n\thwc_frame\x18\x1e \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12\x31\n\x08hwc_crop\x18\x1f \x01(\x0b\x32\x1f.perfetto.protos.FloatRectProto\x12\x15\n\rhwc_transform\x18  \x01(\x05\x12\x17\n\x0bwindow_type\x18! \x01(\x05\x42\x02\x18\x01\x12\x12\n\x06\x61pp_id\x18\" \x01(\x05\x42\x02\x18\x01\x12\x41\n\x14hwc_composition_type\x18# \x01(\x0e\x32#.perfetto.protos.HwcCompositionType\x12\x14\n\x0cis_protected\x18$ \x01(\x08\x12\x12\n\ncurr_frame\x18% \x01(\x04\x12\x39\n\rbarrier_layer\x18& \x03(\x0b\x32\".perfetto.protos.BarrierLayerProto\x12\x39\n\x10\x62uffer_transform\x18\' \x01(\x0b\x32\x1f.perfetto.protos.TransformProto\x12\x1e\n\x16\x65\x66\x66\x65\x63tive_scaling_mode\x18( \x01(\x05\x12\x19\n\rcorner_radius\x18) \x01(\x02\x42\x02\x18\x01\x12;\n\x08metadata\x18* \x03(\x0b\x32).perfetto.protos.LayerProto.MetadataEntry\x12<\n\x13\x65\x66\x66\x65\x63tive_transform\x18+ \x01(\x0b\x32\x1f.perfetto.protos.TransformProto\x12\x36\n\rsource_bounds\x18, \x01(\x0b\x32\x1f.perfetto.protos.FloatRectProto\x12/\n\x06\x62ounds\x18- \x01(\x0b\x32\x1f.perfetto.protos.FloatRectProto\x12\x36\n\rscreen_bounds\x18. \x01(\x0b\x32\x1f.perfetto.protos.FloatRectProto\x12@\n\x11input_window_info\x18/ \x01(\x0b\x32%.perfetto.protos.InputWindowInfoProto\x12;\n\x12\x63orner_radius_crop\x18\x30 \x01(\x0b\x32\x1f.perfetto.protos.FloatRectProto\x12\x15\n\rshadow_radius\x18\x31 \x01(\x02\x12=\n\x0f\x63olor_transform\x18\x32 \x01(\x0b\x32$.perfetto.protos.ColorTransformProto\x12\x16\n\x0eis_relative_of\x18\x33 \x01(\x08\x12\x1e\n\x16\x62\x61\x63kground_blur_radius\x18\x34 \x01(\x05\x12\x11\n\towner_uid\x18\x35 \x01(\r\x12\x31\n\x0c\x62lur_regions\x18\x36 \x03(\x0b\x32\x1b.perfetto.protos.BlurRegion\x12\x1a\n\x12is_trusted_overlay\x18\x37 \x01(\x08\x12#\n\x17requested_corner_radius\x18\x38 \x01(\x02\x42\x02\x18\x01\x12\x35\n\x11\x64\x65stination_frame\x18\x39 \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12\x13\n\x0boriginal_id\x18: \x01(\r\x12\x38\n\x0ftrusted_overlay\x18; \x01(\x0e\x32\x1f.perfetto.protos.TrustedOverlay\x12\x1d\n\x15\x62\x61\x63kground_blur_scale\x18< \x01(\x02\x12\x37\n\x0c\x63orner_radii\x18= \x01(\x0b\x32!.perfetto.protos.CornerRadiiProto\x12\x41\n\x16requested_corner_radii\x18> \x01(\x0b\x32!.perfetto.protos.CornerRadiiProto\x12\x44\n\x19\x63lient_drawn_corner_radii\x18? \x01(\x0b\x32!.perfetto.protos.CornerRadiiProto\x12\x1f\n\x17system_content_priority\x18@ \x01(\x05\x12?\n\x13\x62ox_shadow_settings\x18\x41 \x01(\x0b\x32\".perfetto.protos.BoxShadowSettings\x12\x38\n\x0f\x62order_settings\x18\x42 \x01(\x0b\x32\x1f.perfetto.protos.BorderSettings\x12:\n\x0f\x65\x66\x66\x65\x63tive_radii\x18\x43 \x01(\x0b\x32!.perfetto.protos.CornerRadiiProto\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"%\n\rPositionProto\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02\"J\n\x0e\x46loatRectProto\x12\x0c\n\x04left\x18\x01 \x01(\x02\x12\x0b\n\x03top\x18\x02 \x01(\x02\x12\r\n\x05right\x18\x03 \x01(\x02\x12\x0e\n\x06\x62ottom\x18\x04 \x01(\x02\"B\n\x10\x43ornerRadiiProto\x12\n\n\x02tl\x18\x01 \x01(\x02\x12\n\n\x02tr\x18\x02 \x01(\x02\x12\n\n\x02\x62l\x18\x03 \x01(\x02\x12\n\n\x02\x62r\x18\x04 \x01(\x02\"a\n\x11\x41\x63tiveBufferProto\x12\r\n\x05width\x18\x01 \x01(\r\x12\x0e\n\x06height\x18\x02 \x01(\r\x12\x0e\n\x06stride\x18\x03 \x01(\r\x12\x0e\n\x06\x66ormat\x18\x04 \x01(\x05\x12\r\n\x05usage\x18\x05 \x01(\x04\"5\n\x11\x42\x61rrierLayerProto\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x14\n\x0c\x66rame_number\x18\x02 \x01(\x04\"\xeb\x01\n\x14TransactionTraceFile\x12\x14\n\x0cmagic_number\x18\x01 \x01(\x06\x12\x35\n\x05\x65ntry\x18\x02 \x03(\x0b\x32&.perfetto.protos.TransactionTraceEntry\x12)\n!real_to_elapsed_time_offset_nanos\x18\x03 \x01(\x06\x12\x0f\n\x07version\x18\x04 \x01(\r\"J\n\x0bMagicNumber\x12\x0b\n\x07INVALID\x10\x00\x12\x16\n\x0eMAGIC_NUMBER_L\x10\xd4\x9c\xe1\xa2\x05\x12\x16\n\x0eMAGIC_NUMBER_H\x10\xd2\x82\x8d\xaa\x04\"\x92\x03\n\x15TransactionTraceEntry\x12\x1e\n\x16\x65lapsed_realtime_nanos\x18\x01 \x01(\x03\x12\x10\n\x08vsync_id\x18\x02 \x01(\x03\x12\x37\n\x0ctransactions\x18\x03 \x03(\x0b\x32!.perfetto.protos.TransactionState\x12\x38\n\x0c\x61\x64\x64\x65\x64_layers\x18\x04 \x03(\x0b\x32\".perfetto.protos.LayerCreationArgs\x12\x18\n\x10\x64\x65stroyed_layers\x18\x05 \x03(\r\x12\x35\n\x0e\x61\x64\x64\x65\x64_displays\x18\x06 \x03(\x0b\x32\x1d.perfetto.protos.DisplayState\x12\x18\n\x10removed_displays\x18\x07 \x03(\x05\x12\x1f\n\x17\x64\x65stroyed_layer_handles\x18\x08 \x03(\r\x12\x18\n\x10\x64isplays_changed\x18\t \x01(\x08\x12.\n\x08\x64isplays\x18\n \x03(\x0b\x32\x1c.perfetto.protos.DisplayInfo\"\xce\x02\n\x0b\x44isplayInfo\x12\x13\n\x0blayer_stack\x18\x01 \x01(\r\x12\x12\n\ndisplay_id\x18\x02 \x01(\x05\x12\x15\n\rlogical_width\x18\x03 \x01(\x05\x12\x16\n\x0elogical_height\x18\x04 \x01(\x05\x12\x35\n\x11transform_inverse\x18\x05 \x01(\x0b\x32\x1a.perfetto.protos.Transform\x12-\n\ttransform\x18\x06 \x01(\x0b\x32\x1a.perfetto.protos.Transform\x12\x16\n\x0ereceives_input\x18\x07 \x01(\x08\x12\x11\n\tis_secure\x18\x08 \x01(\x08\x12\x12\n\nis_primary\x18\t \x01(\x08\x12\x12\n\nis_virtual\x18\n \x01(\x08\x12\x16\n\x0erotation_flags\x18\x0b \x01(\x05\x12\x16\n\x0etransform_hint\x18\x0c \x01(\x05\"\xa1\x01\n\x11LayerCreationArgs\x12\x10\n\x08layer_id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x11\n\tparent_id\x18\x04 \x01(\r\x12\x16\n\x0emirror_from_id\x18\x05 \x01(\r\x12\x13\n\x0b\x61\x64\x64_to_root\x18\x06 \x01(\x08\x12\x1d\n\x15layer_stack_to_mirror\x18\x07 \x01(\r\"[\n\tTransform\x12\x0c\n\x04\x64sdx\x18\x01 \x01(\x02\x12\x0c\n\x04\x64tdx\x18\x02 \x01(\x02\x12\x0c\n\x04\x64tdy\x18\x03 \x01(\x02\x12\x0c\n\x04\x64sdy\x18\x04 \x01(\x02\x12\n\n\x02tx\x18\x05 \x01(\x02\x12\n\n\x02ty\x18\x06 \x01(\x02\"9\n\x12TransactionBarrier\x12\x15\n\rbarrier_token\x18\x01 \x01(\t\x12\x0c\n\x04kind\x18\x02 \x01(\r\"\xe5\x02\n\x10TransactionState\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x0b\n\x03uid\x18\x02 \x01(\x05\x12\x10\n\x08vsync_id\x18\x03 \x01(\x03\x12\x16\n\x0einput_event_id\x18\x04 \x01(\x05\x12\x11\n\tpost_time\x18\x05 \x01(\x03\x12\x16\n\x0etransaction_id\x18\x06 \x01(\x04\x12\x32\n\rlayer_changes\x18\x07 \x03(\x0b\x32\x1b.perfetto.protos.LayerState\x12\x36\n\x0f\x64isplay_changes\x18\x08 \x03(\x0b\x32\x1d.perfetto.protos.DisplayState\x12\x1e\n\x16merged_transaction_ids\x18\t \x03(\x04\x12\x13\n\x0b\x61pply_token\x18\n \x01(\x04\x12\x41\n\x14transaction_barriers\x18\x0b \x03(\x0b\x32#.perfetto.protos.TransactionBarrier\"\xd4$\n\nLayerState\x12\x10\n\x08layer_id\x18\x01 \x01(\r\x12\x0c\n\x04what\x18\x02 \x01(\x04\x12\t\n\x01x\x18\x03 \x01(\x02\x12\t\n\x01y\x18\x04 \x01(\x02\x12\t\n\x01z\x18\x05 \x01(\x05\x12\t\n\x01w\x18\x06 \x01(\r\x12\t\n\x01h\x18\x07 \x01(\r\x12\x13\n\x0blayer_stack\x18\x08 \x01(\r\x12\r\n\x05\x66lags\x18\t \x01(\r\x12\x0c\n\x04mask\x18\n \x01(\r\x12\x34\n\x06matrix\x18\x0b \x01(\x0b\x32$.perfetto.protos.LayerState.Matrix22\x12\x19\n\rcorner_radius\x18\x0c \x01(\x02\x42\x02\x18\x01\x12\x1e\n\x16\x62\x61\x63kground_blur_radius\x18\r \x01(\r\x12\x11\n\tparent_id\x18\x0e \x01(\r\x12\x1a\n\x12relative_parent_id\x18\x0f \x01(\r\x12\r\n\x05\x61lpha\x18\x10 \x01(\x02\x12\x31\n\x05\x63olor\x18\x11 \x01(\x0b\x32\".perfetto.protos.LayerState.Color3\x12\x38\n\x12transparent_region\x18\x12 \x01(\x0b\x32\x1c.perfetto.protos.RegionProto\x12\x11\n\ttransform\x18\x13 \x01(\r\x12$\n\x1ctransform_to_display_inverse\x18\x14 \x01(\x08\x12(\n\x04\x63rop\x18\x15 \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12;\n\x0b\x62uffer_data\x18\x16 \x01(\x0b\x32&.perfetto.protos.LayerState.BufferData\x12\x0b\n\x03\x61pi\x18\x17 \x01(\x05\x12\x1b\n\x13has_sideband_stream\x18\x18 \x01(\x08\x12=\n\x0f\x63olor_transform\x18\x19 \x01(\x0b\x32$.perfetto.protos.ColorTransformProto\x12\x31\n\x0c\x62lur_regions\x18\x1a \x03(\x0b\x32\x1b.perfetto.protos.BlurRegion\x12\x42\n\x12window_info_handle\x18\x1b \x01(\x0b\x32&.perfetto.protos.LayerState.WindowInfo\x12\x16\n\x0e\x62g_color_alpha\x18\x1c \x01(\x02\x12\x1a\n\x12\x62g_color_dataspace\x18\x1d \x01(\x05\x12\x1c\n\x14\x63olor_space_agnostic\x18\x1e \x01(\x08\x12\x15\n\rshadow_radius\x18\x1f \x01(\x02\x12%\n\x1d\x66rame_rate_selection_priority\x18  \x01(\x05\x12\x12\n\nframe_rate\x18! \x01(\x02\x12 \n\x18\x66rame_rate_compatibility\x18\" \x01(\x05\x12\"\n\x1a\x63hange_frame_rate_strategy\x18# \x01(\x05\x12\x1c\n\x14\x66ixed_transform_hint\x18$ \x01(\r\x12\x14\n\x0c\x66rame_number\x18% \x01(\x04\x12\x14\n\x0c\x61uto_refresh\x18& \x01(\x08\x12\x1a\n\x12is_trusted_overlay\x18\' \x01(\x08\x12/\n\x0b\x62uffer_crop\x18( \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12\x35\n\x11\x64\x65stination_frame\x18) \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12\x42\n\x0f\x64rop_input_mode\x18* \x01(\x0e\x32).perfetto.protos.LayerState.DropInputMode\x12\x38\n\x0ftrusted_overlay\x18+ \x01(\x0e\x32\x1f.perfetto.protos.TrustedOverlay\x12\x1d\n\x15\x62\x61\x63kground_blur_scale\x18, \x01(\x02\x12=\n\x0c\x63orner_radii\x18- \x01(\x0b\x32\'.perfetto.protos.LayerState.CornerRadii\x12J\n\x19\x63lient_drawn_corner_radii\x18. \x01(\x0b\x32\'.perfetto.protos.LayerState.CornerRadii\x12\x1f\n\x17system_content_priority\x18/ \x01(\x05\x12?\n\x13\x62ox_shadow_settings\x18\x30 \x01(\x0b\x32\".perfetto.protos.BoxShadowSettings\x12\x38\n\x0f\x62order_settings\x18\x31 \x01(\x0b\x32\x1f.perfetto.protos.BorderSettings\x1a\x42\n\x08Matrix22\x12\x0c\n\x04\x64sdx\x18\x01 \x01(\x02\x12\x0c\n\x04\x64tdx\x18\x02 \x01(\x02\x12\x0c\n\x04\x64tdy\x18\x03 \x01(\x02\x12\x0c\n\x04\x64sdy\x18\x04 \x01(\x02\x1a=\n\x0b\x43ornerRadii\x12\n\n\x02tl\x18\x01 \x01(\x02\x12\n\n\x02tr\x18\x02 \x01(\x02\x12\n\n\x02\x62l\x18\x03 \x01(\x02\x12\n\n\x02\x62r\x18\x04 \x01(\x02\x1a)\n\x06\x43olor3\x12\t\n\x01r\x18\x01 \x01(\x02\x12\t\n\x01g\x18\x02 \x01(\x02\x12\t\n\x01\x62\x18\x03 \x01(\x02\x1a\x94\x06\n\nBufferData\x12\x11\n\tbuffer_id\x18\x01 \x01(\x04\x12\r\n\x05width\x18\x02 \x01(\r\x12\x0e\n\x06height\x18\x03 \x01(\r\x12\x14\n\x0c\x66rame_number\x18\x04 \x01(\x04\x12\r\n\x05\x66lags\x18\x05 \x01(\r\x12\x18\n\x10\x63\x61\x63hed_buffer_id\x18\x06 \x01(\x04\x12H\n\x0cpixel_format\x18\x07 \x01(\x0e\x32\x32.perfetto.protos.LayerState.BufferData.PixelFormat\x12\r\n\x05usage\x18\x08 \x01(\x04\"o\n\x10\x42ufferDataChange\x12\x18\n\x14\x42ufferDataChangeNone\x10\x00\x12\x10\n\x0c\x66\x65nceChanged\x10\x01\x12\x16\n\x12\x66rameNumberChanged\x10\x02\x12\x17\n\x13\x63\x61\x63hedBufferChanged\x10\x04\"\xca\x03\n\x0bPixelFormat\x12\x18\n\x14PIXEL_FORMAT_UNKNOWN\x10\x00\x12 \n\x13PIXEL_FORMAT_CUSTOM\x10\xfc\xff\xff\xff\xff\xff\xff\xff\xff\x01\x12%\n\x18PIXEL_FORMAT_TRANSLUCENT\x10\xfd\xff\xff\xff\xff\xff\xff\xff\xff\x01\x12%\n\x18PIXEL_FORMAT_TRANSPARENT\x10\xfe\xff\xff\xff\xff\xff\xff\xff\xff\x01\x12 \n\x13PIXEL_FORMAT_OPAQUE\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x12\x1a\n\x16PIXEL_FORMAT_RGBA_8888\x10\x01\x12\x1a\n\x16PIXEL_FORMAT_RGBX_8888\x10\x02\x12\x18\n\x14PIXEL_FORMAT_RGB_888\x10\x03\x12\x18\n\x14PIXEL_FORMAT_RGB_565\x10\x04\x12\x1a\n\x16PIXEL_FORMAT_BGRA_8888\x10\x05\x12\x1a\n\x16PIXEL_FORMAT_RGBA_5551\x10\x06\x12\x1a\n\x16PIXEL_FORMAT_RGBA_4444\x10\x07\x12\x1a\n\x16PIXEL_FORMAT_RGBA_FP16\x10\x16\x12\x1d\n\x19PIXEL_FORMAT_RGBA_1010102\x10+\x12\x14\n\x10PIXEL_FORMAT_R_8\x10\x38\x1a\x9e\x03\n\nWindowInfo\x12\x1b\n\x13layout_params_flags\x18\x01 \x01(\r\x12\x1a\n\x12layout_params_type\x18\x02 \x01(\x05\x12\x36\n\x10touchable_region\x18\x03 \x01(\x0b\x32\x1c.perfetto.protos.RegionProto\x12\x15\n\rsurface_inset\x18\x04 \x01(\x05\x12\x11\n\tfocusable\x18\x05 \x01(\x08\x12\x15\n\rhas_wallpaper\x18\x06 \x01(\x08\x12\x1b\n\x13global_scale_factor\x18\x07 \x01(\x02\x12\x15\n\rcrop_layer_id\x18\x08 \x01(\r\x12*\n\"replace_touchable_region_with_crop\x18\t \x01(\x08\x12\x39\n\x15touchable_region_crop\x18\n \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12-\n\ttransform\x18\x0b \x01(\x0b\x32\x1a.perfetto.protos.Transform\x12\x14\n\x0cinput_config\x18\x0c \x01(\r\"\xf8\x05\n\nChangesLsb\x12\x13\n\x0f\x65\x43hangesLsbNone\x10\x00\x12\x14\n\x10\x65PositionChanged\x10\x01\x12\x11\n\reLayerChanged\x10\x02\x12\x11\n\reAlphaChanged\x10\x08\x12\x12\n\x0e\x65MatrixChanged\x10\x10\x12\x1d\n\x19\x65TransparentRegionChanged\x10 \x12\x11\n\reFlagsChanged\x10@\x12\x17\n\x12\x65LayerStackChanged\x10\x80\x01\x12\"\n\x1d\x65ReleaseBufferListenerChanged\x10\x80\x08\x12\x19\n\x14\x65ShadowRadiusChanged\x10\x80\x10\x12\x17\n\x12\x65\x42ufferCropChanged\x10\x80@\x12\x1b\n\x15\x65RelativeLayerChanged\x10\x80\x80\x01\x12\x0f\n\teReparent\x10\x80\x80\x02\x12\x13\n\reColorChanged\x10\x80\x80\x04\x12\x1d\n\x17\x65\x42ufferTransformChanged\x10\x80\x80\x10\x12\'\n!eTransformToDisplayInverseChanged\x10\x80\x80 \x12\x12\n\x0c\x65\x43ropChanged\x10\x80\x80@\x12\x15\n\x0e\x65\x42ufferChanged\x10\x80\x80\x80\x01\x12\x1b\n\x14\x65\x41\x63quireFenceChanged\x10\x80\x80\x80\x02\x12\x18\n\x11\x65\x44\x61taspaceChanged\x10\x80\x80\x80\x04\x12\x1a\n\x13\x65HdrMetadataChanged\x10\x80\x80\x80\x08\x12\"\n\x1b\x65SurfaceDamageRegionChanged\x10\x80\x80\x80\x10\x12\x12\n\x0b\x65\x41piChanged\x10\x80\x80\x80 \x12\x1d\n\x16\x65SidebandStreamChanged\x10\x80\x80\x80@\x12\x1e\n\x16\x65\x43olorTransformChanged\x10\x80\x80\x80\x80\x01\x12$\n\x1c\x65HasListenerCallbacksChanged\x10\x80\x80\x80\x80\x02\x12\x19\n\x11\x65InputInfoChanged\x10\x80\x80\x80\x80\x04\x12!\n\x14\x65\x43ornerRadiusChanged\x10\x80\x80\x80\x80\xf8\xff\xff\xff\xff\x01\"\xec\x04\n\nChangesMsb\x12\x13\n\x0f\x65\x43hangesMsbNone\x10\x00\x12\x1c\n\x18\x65\x44\x65stinationFrameChanged\x10\x01\x12\x18\n\x14\x65\x43\x61\x63hedBufferChanged\x10\x02\x12\x1b\n\x17\x65\x42\x61\x63kgroundColorChanged\x10\x04\x12\x14\n\x10\x65MetadataChanged\x10\x08\x12\x1e\n\x1a\x65\x43olorSpaceAgnosticChanged\x10\x10\x12\x1f\n\x1b\x65\x46rameRateSelectionPriority\x10 \x12\x15\n\x11\x65\x46rameRateChanged\x10@\x12!\n\x1c\x65\x42\x61\x63kgroundBlurRadiusChanged\x10\x80\x01\x12\x18\n\x13\x65ProducerDisconnect\x10\x80\x02\x12\x1f\n\x1a\x65\x46ixedTransformHintChanged\x10\x80\x04\x12\x18\n\x13\x65\x46rameNumberChanged\x10\x80\x08\x12\x18\n\x13\x65\x42lurRegionsChanged\x10\x80\x10\x12\x18\n\x13\x65\x41utoRefreshChanged\x10\x80 \x12\x14\n\x0f\x65StretchChanged\x10\x80@\x12\x1c\n\x16\x65TrustedOverlayChanged\x10\x80\x80\x01\x12\x1b\n\x15\x65\x44ropInputModeChanged\x10\x80\x80\x02\x12%\n\x1f\x65\x43lientDrawnCornerRadiusChanged\x10\x80\x80\x04\x12#\n\x1d\x65SystemContentPriorityChanged\x10\x80\x80\x08\x12\x1f\n\x19\x65\x42oxShadowSettingsChanged\x10\x80\x80\x10\x12\x1c\n\x16\x65\x42orderSettingsChanged\x10\x80\x80 \"\xa2\x01\n\x05\x46lags\x12\x0e\n\neFlagsNone\x10\x00\x12\x10\n\x0c\x65LayerHidden\x10\x01\x12\x10\n\x0c\x65LayerOpaque\x10\x02\x12\x18\n\x14\x65LayerSkipScreenshot\x10@\x12\x11\n\x0c\x65LayerSecure\x10\x80\x01\x12\x18\n\x13\x65\x45nableBackpressure\x10\x80\x02\x12\x1e\n\x19\x65LayerIsDisplayDecoration\x10\x80\x04\"0\n\rDropInputMode\x12\x08\n\x04NONE\x10\x00\x12\x07\n\x03\x41LL\x10\x01\x12\x0c\n\x08OBSCURED\x10\x02\"\x93\x03\n\x0c\x44isplayState\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04what\x18\x02 \x01(\r\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x13\n\x0blayer_stack\x18\x04 \x01(\r\x12\x13\n\x0borientation\x18\x05 \x01(\r\x12:\n\x16layer_stack_space_rect\x18\x06 \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12?\n\x1boriented_display_space_rect\x18\x07 \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12\r\n\x05width\x18\x08 \x01(\r\x12\x0e\n\x06height\x18\t \x01(\r\"\x93\x01\n\x07\x43hanges\x12\x10\n\x0c\x65\x43hangesNone\x10\x00\x12\x13\n\x0f\x65SurfaceChanged\x10\x01\x12\x16\n\x12\x65LayerStackChanged\x10\x02\x12\x1d\n\x19\x65\x44isplayProjectionChanged\x10\x04\x12\x17\n\x13\x65\x44isplaySizeChanged\x10\x08\x12\x11\n\reFlagsChanged\x10\x10\"\x81\x01\n\x0f\x41ndroidUserList\x12\x38\n\x05users\x18\x01 \x03(\x0b\x32).perfetto.protos.AndroidUserList.UserInfo\x12\r\n\x05\x65rror\x18\x02 \x01(\x05\x1a%\n\x08UserInfo\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x0b\n\x03uid\x18\x02 \x01(\x05\"\x1a\n\x12WinscopeExtensions*\x04\x08\x01\x10\x07\"\xf2\x01\n\x17\x43hromeBenchmarkMetadata\x12\x1f\n\x17\x62\x65nchmark_start_time_us\x18\x01 \x01(\x03\x12\x19\n\x11story_run_time_us\x18\x02 \x01(\x03\x12\x16\n\x0e\x62\x65nchmark_name\x18\x03 \x01(\t\x12\x1d\n\x15\x62\x65nchmark_description\x18\x04 \x01(\t\x12\r\n\x05label\x18\x05 \x01(\t\x12\x12\n\nstory_name\x18\x06 \x01(\t\x12\x12\n\nstory_tags\x18\x07 \x03(\t\x12\x17\n\x0fstory_run_index\x18\x08 \x01(\x05\x12\x14\n\x0chad_failures\x18\t \x01(\x08\"\x97\x02\n\x14\x43hromeMetadataPacket\x12O\n\x1b\x62\x61\x63kground_tracing_metadata\x18\x01 \x01(\x0b\x32*.perfetto.protos.BackgroundTracingMetadata\x12\x1b\n\x13\x63hrome_version_code\x18\x02 \x01(\x05\x12\x1a\n\x12\x65nabled_categories\x18\x03 \x01(\t\x12K\n\x12\x66ield_trial_hashes\x18\x04 \x03(\x0b\x32/.perfetto.protos.ChromeMetadataPacket.FinchHash\x1a(\n\tFinchHash\x12\x0c\n\x04name\x18\x01 \x01(\r\x12\r\n\x05group\x18\x02 \x01(\r\"\x95\x08\n\x19\x42\x61\x63kgroundTracingMetadata\x12N\n\x0etriggered_rule\x18\x01 \x01(\x0b\x32\x36.perfetto.protos.BackgroundTracingMetadata.TriggerRule\x12L\n\x0c\x61\x63tive_rules\x18\x02 \x03(\x0b\x32\x36.perfetto.protos.BackgroundTracingMetadata.TriggerRule\x12\x1a\n\x12scenario_name_hash\x18\x03 \x01(\x07\x1a\xbd\x06\n\x0bTriggerRule\x12X\n\x0ctrigger_type\x18\x01 \x01(\x0e\x32\x42.perfetto.protos.BackgroundTracingMetadata.TriggerRule.TriggerType\x12\\\n\x0ehistogram_rule\x18\x02 \x01(\x0b\x32\x44.perfetto.protos.BackgroundTracingMetadata.TriggerRule.HistogramRule\x12T\n\nnamed_rule\x18\x03 \x01(\x0b\x32@.perfetto.protos.BackgroundTracingMetadata.TriggerRule.NamedRule\x12\x11\n\tname_hash\x18\x04 \x01(\x07\x1aj\n\rHistogramRule\x12\x1b\n\x13histogram_name_hash\x18\x01 \x01(\x06\x12\x1d\n\x15histogram_min_trigger\x18\x02 \x01(\x03\x12\x1d\n\x15histogram_max_trigger\x18\x03 \x01(\x03\x1a\x96\x02\n\tNamedRule\x12^\n\nevent_type\x18\x01 \x01(\x0e\x32J.perfetto.protos.BackgroundTracingMetadata.TriggerRule.NamedRule.EventType\x12!\n\x19\x63ontent_trigger_name_hash\x18\x02 \x01(\x06\"\x85\x01\n\tEventType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x13\n\x0fSESSION_RESTORE\x10\x01\x12\x0e\n\nNAVIGATION\x10\x02\x12\x0b\n\x07STARTUP\x10\x03\x12\x10\n\x0cREACHED_CODE\x10\x04\x12\x13\n\x0f\x43ONTENT_TRIGGER\x10\x05\x12\x0e\n\tTEST_RULE\x10\xe8\x07\"\x87\x01\n\x0bTriggerType\x12\x17\n\x13TRIGGER_UNSPECIFIED\x10\x00\x12\x36\n2MONITOR_AND_DUMP_WHEN_SPECIFIC_HISTOGRAM_AND_VALUE\x10\x01\x12\'\n#MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED\x10\x02\"\xd3\x02\n\x11\x43hromeTracedValue\x12\x42\n\x0bnested_type\x18\x01 \x01(\x0e\x32-.perfetto.protos.ChromeTracedValue.NestedType\x12\x11\n\tdict_keys\x18\x02 \x03(\t\x12\x37\n\x0b\x64ict_values\x18\x03 \x03(\x0b\x32\".perfetto.protos.ChromeTracedValue\x12\x38\n\x0c\x61rray_values\x18\x04 \x03(\x0b\x32\".perfetto.protos.ChromeTracedValue\x12\x11\n\tint_value\x18\x05 \x01(\x05\x12\x14\n\x0c\x64ouble_value\x18\x06 \x01(\x01\x12\x12\n\nbool_value\x18\x07 \x01(\x08\x12\x14\n\x0cstring_value\x18\x08 \x01(\t\"!\n\nNestedType\x12\x08\n\x04\x44ICT\x10\x00\x12\t\n\x05\x41RRAY\x10\x01\"6\n\x16\x43hromeStringTableEntry\x12\r\n\x05value\x18\x01 \x01(\t\x12\r\n\x05index\x18\x02 \x01(\x05\"\x81\x05\n\x10\x43hromeTraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\x12\r\n\x05phase\x18\x03 \x01(\x05\x12\x11\n\tthread_id\x18\x04 \x01(\x05\x12\x10\n\x08\x64uration\x18\x05 \x01(\x03\x12\x17\n\x0fthread_duration\x18\x06 \x01(\x03\x12\r\n\x05scope\x18\x07 \x01(\t\x12\n\n\x02id\x18\x08 \x01(\x04\x12\r\n\x05\x66lags\x18\t \x01(\r\x12\x1b\n\x13\x63\x61tegory_group_name\x18\n \x01(\t\x12\x12\n\nprocess_id\x18\x0b \x01(\x05\x12\x18\n\x10thread_timestamp\x18\x0c \x01(\x03\x12\x0f\n\x07\x62ind_id\x18\r \x01(\x04\x12\x33\n\x04\x61rgs\x18\x0e \x03(\x0b\x32%.perfetto.protos.ChromeTraceEvent.Arg\x12\x12\n\nname_index\x18\x0f \x01(\r\x12!\n\x19\x63\x61tegory_group_name_index\x18\x10 \x01(\r\x1a\x8c\x02\n\x03\x41rg\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\nbool_value\x18\x02 \x01(\x08H\x00\x12\x14\n\nuint_value\x18\x03 \x01(\x04H\x00\x12\x13\n\tint_value\x18\x04 \x01(\x03H\x00\x12\x16\n\x0c\x64ouble_value\x18\x05 \x01(\x01H\x00\x12\x16\n\x0cstring_value\x18\x06 \x01(\tH\x00\x12\x17\n\rpointer_value\x18\x07 \x01(\x04H\x00\x12\x14\n\njson_value\x18\x08 \x01(\tH\x00\x12:\n\x0ctraced_value\x18\n \x01(\x0b\x32\".perfetto.protos.ChromeTracedValueH\x00\x12\x12\n\nname_index\x18\t \x01(\rB\x07\n\x05value\"\x80\x01\n\x0e\x43hromeMetadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x16\n\x0cstring_value\x18\x02 \x01(\tH\x00\x12\x14\n\nbool_value\x18\x03 \x01(\x08H\x00\x12\x13\n\tint_value\x18\x04 \x01(\x03H\x00\x12\x14\n\njson_value\x18\x05 \x01(\tH\x00\x42\x07\n\x05value\"\x94\x01\n\x15\x43hromeLegacyJsonTrace\x12>\n\x04type\x18\x01 \x01(\x0e\x32\x30.perfetto.protos.ChromeLegacyJsonTrace.TraceType\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\t\"-\n\tTraceType\x12\x0e\n\nUSER_TRACE\x10\x00\x12\x10\n\x0cSYSTEM_TRACE\x10\x01\"\xa7\x02\n\x11\x43hromeEventBundle\x12;\n\x0ctrace_events\x18\x01 \x03(\x0b\x32!.perfetto.protos.ChromeTraceEventB\x02\x18\x01\x12\x31\n\x08metadata\x18\x02 \x03(\x0b\x32\x1f.perfetto.protos.ChromeMetadata\x12\x1c\n\x14legacy_ftrace_output\x18\x04 \x03(\t\x12\x41\n\x11legacy_json_trace\x18\x05 \x03(\x0b\x32&.perfetto.protos.ChromeLegacyJsonTrace\x12\x41\n\x0cstring_table\x18\x03 \x03(\x0b\x32\'.perfetto.protos.ChromeStringTableEntryB\x02\x18\x01\"Q\n\rChromeTrigger\x12\x14\n\x0ctrigger_name\x18\x01 \x01(\t\x12\x19\n\x11trigger_name_hash\x18\x02 \x01(\x07\x12\x0f\n\x07\x66low_id\x18\x03 \x01(\x06\"V\n\x08V8String\x12\x10\n\x06latin1\x18\x01 \x01(\x0cH\x00\x12\x12\n\x08utf16_le\x18\x02 \x01(\x0cH\x00\x12\x12\n\x08utf16_be\x18\x03 \x01(\x0cH\x00\x42\x10\n\x0e\x65ncoded_string\"k\n\x10InternedV8String\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x10\n\x06latin1\x18\x02 \x01(\x0cH\x00\x12\x12\n\x08utf16_le\x18\x03 \x01(\x0cH\x00\x12\x12\n\x08utf16_be\x18\x04 \x01(\x0cH\x00\x42\x10\n\x0e\x65ncoded_string\"\xc5\x02\n\x12InternedV8JsScript\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x11\n\tscript_id\x18\x02 \x01(\x05\x12\x36\n\x04type\x18\x03 \x01(\x0e\x32(.perfetto.protos.InternedV8JsScript.Type\x12\'\n\x04name\x18\x04 \x01(\x0b\x32\x19.perfetto.protos.V8String\x12)\n\x06source\x18\x05 \x01(\x0b\x32\x19.perfetto.protos.V8String\"\x82\x01\n\x04Type\x12\x10\n\x0cTYPE_UNKNOWN\x10\x00\x12\x0f\n\x0bTYPE_NORMAL\x10\x01\x12\r\n\tTYPE_EVAL\x10\x02\x12\x0f\n\x0bTYPE_MODULE\x10\x03\x12\x0f\n\x0bTYPE_NATIVE\x10\x04\x12\x12\n\x0eTYPE_EXTENSION\x10\x05\x12\x12\n\x0eTYPE_INSPECTOR\x10\x06\"W\n\x14InternedV8WasmScript\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x11\n\tscript_id\x18\x02 \x01(\x05\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x12\n\nwire_bytes\x18\x04 \x01(\x0c\"\xd5\x08\n\x14InternedV8JsFunction\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x1f\n\x17v8_js_function_name_iid\x18\x02 \x01(\x04\x12\x18\n\x10v8_js_script_iid\x18\x03 \x01(\x04\x12\x13\n\x0bis_toplevel\x18\x04 \x01(\x08\x12\x38\n\x04kind\x18\x05 \x01(\x0e\x32*.perfetto.protos.InternedV8JsFunction.Kind\x12\x13\n\x0b\x62yte_offset\x18\x06 \x01(\r\x12\x0c\n\x04line\x18\x07 \x01(\r\x12\x0e\n\x06\x63olumn\x18\x08 \x01(\r\"\xf2\x06\n\x04Kind\x12\x10\n\x0cKIND_UNKNOWN\x10\x00\x12\x18\n\x14KIND_NORMAL_FUNCTION\x10\x01\x12\x0f\n\x0bKIND_MODULE\x10\x02\x12\x15\n\x11KIND_ASYNC_MODULE\x10\x03\x12\x19\n\x15KIND_BASE_CONSTRUCTOR\x10\x04\x12!\n\x1dKIND_DEFAULT_BASE_CONSTRUCTOR\x10\x05\x12$\n KIND_DEFAULT_DERIVED_CONSTRUCTOR\x10\x06\x12\x1c\n\x18KIND_DERIVED_CONSTRUCTOR\x10\x07\x12\x18\n\x14KIND_GETTER_FUNCTION\x10\x08\x12\x1f\n\x1bKIND_STATIC_GETTER_FUNCTION\x10\t\x12\x18\n\x14KIND_SETTER_FUNCTION\x10\n\x12\x1f\n\x1bKIND_STATIC_SETTER_FUNCTION\x10\x0b\x12\x17\n\x13KIND_ARROW_FUNCTION\x10\x0c\x12\x1d\n\x19KIND_ASYNC_ARROW_FUNCTION\x10\r\x12\x17\n\x13KIND_ASYNC_FUNCTION\x10\x0e\x12\x1d\n\x19KIND_ASYNC_CONCISE_METHOD\x10\x0f\x12$\n KIND_STATIC_ASYNC_CONCISE_METHOD\x10\x10\x12\'\n#KIND_ASYNC_CONCISE_GENERATOR_METHOD\x10\x11\x12.\n*KIND_STATIC_ASYNC_CONCISE_GENERATOR_METHOD\x10\x12\x12!\n\x1dKIND_ASYNC_GENERATOR_FUNCTION\x10\x13\x12\x1b\n\x17KIND_GENERATOR_FUNCTION\x10\x14\x12!\n\x1dKIND_CONCISE_GENERATOR_METHOD\x10\x15\x12(\n$KIND_STATIC_CONCISE_GENERATOR_METHOD\x10\x16\x12\x17\n\x13KIND_CONCISE_METHOD\x10\x17\x12\x1e\n\x1aKIND_STATIC_CONCISE_METHOD\x10\x18\x12+\n\'KIND_CLASS_MEMBERS_INITIALIZER_FUNCTION\x10\x19\x12*\n&KIND_CLASS_STATIC_INITIALIZER_FUNCTION\x10\x1a\x12\x10\n\x0cKIND_INVALID\x10\x1b\"\xc7\x02\n\x11InternedV8Isolate\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x0b\n\x03pid\x18\x02 \x01(\r\x12\x12\n\nisolate_id\x18\x03 \x01(\x05\x12@\n\ncode_range\x18\x04 \x01(\x0b\x32,.perfetto.protos.InternedV8Isolate.CodeRange\x12(\n embedded_blob_code_start_address\x18\x05 \x01(\x04\x12\x1f\n\x17\x65mbedded_blob_code_size\x18\x06 \x01(\x04\x1aw\n\tCodeRange\x12\x14\n\x0c\x62\x61se_address\x18\x01 \x01(\x04\x12\x0c\n\x04size\x18\x02 \x01(\x04\x12-\n%embedded_blob_code_copy_start_address\x18\x03 \x01(\x04\x12\x17\n\x0fis_process_wide\x18\x04 \x01(\x08\"\xea\x02\n\x08V8JsCode\x12\x16\n\x0ev8_isolate_iid\x18\x01 \x01(\x04\x12\x0b\n\x03tid\x18\x02 \x01(\r\x12\x1a\n\x12v8_js_function_iid\x18\x03 \x01(\x04\x12,\n\x04tier\x18\x04 \x01(\x0e\x32\x1e.perfetto.protos.V8JsCode.Tier\x12\x19\n\x11instruction_start\x18\x05 \x01(\x04\x12\x1e\n\x16instruction_size_bytes\x18\x06 \x01(\x04\x12\x16\n\x0cmachine_code\x18\x07 \x01(\x0cH\x00\x12\x12\n\x08\x62ytecode\x18\x08 \x01(\x0cH\x00\"x\n\x04Tier\x12\x10\n\x0cTIER_UNKNOWN\x10\x00\x12\x11\n\rTIER_IGNITION\x10\x01\x12\x12\n\x0eTIER_SPARKPLUG\x10\x02\x12\x0f\n\x0bTIER_MAGLEV\x10\x03\x12\x13\n\x0fTIER_TURBOSHAFT\x10\x04\x12\x11\n\rTIER_TURBOFAN\x10\x05\x42\x0e\n\x0cinstructions\"\xe1\x03\n\x0eV8InternalCode\x12\x16\n\x0ev8_isolate_iid\x18\x01 \x01(\x04\x12\x0b\n\x03tid\x18\x02 \x01(\r\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x32\n\x04type\x18\x04 \x01(\x0e\x32$.perfetto.protos.V8InternalCode.Type\x12\x12\n\nbuiltin_id\x18\x05 \x01(\x05\x12\x19\n\x11instruction_start\x18\x06 \x01(\x04\x12\x1e\n\x16instruction_size_bytes\x18\x07 \x01(\x04\x12\x14\n\x0cmachine_code\x18\x08 \x01(\x0c\"\x82\x02\n\x04Type\x12\x10\n\x0cTYPE_UNKNOWN\x10\x00\x12\x19\n\x15TYPE_BYTECODE_HANDLER\x10\x01\x12\x14\n\x10TYPE_FOR_TESTING\x10\x02\x12\x10\n\x0cTYPE_BUILTIN\x10\x03\x12\x16\n\x12TYPE_WASM_FUNCTION\x10\x04\x12\x1e\n\x1aTYPE_WASM_TO_CAPI_FUNCTION\x10\x05\x12\x1c\n\x18TYPE_WASM_TO_JS_FUNCTION\x10\x06\x12\x1c\n\x18TYPE_JS_TO_WASM_FUNCTION\x10\x07\x12\x1a\n\x16TYPE_JS_TO_JS_FUNCTION\x10\x08\x12\x15\n\x11TYPE_C_WASM_ENTRY\x10\t\"\xc3\x02\n\nV8WasmCode\x12\x16\n\x0ev8_isolate_iid\x18\x01 \x01(\x04\x12\x0b\n\x03tid\x18\x02 \x01(\r\x12\x1a\n\x12v8_wasm_script_iid\x18\x03 \x01(\x04\x12\x15\n\rfunction_name\x18\x04 \x01(\t\x12.\n\x04tier\x18\x05 \x01(\x0e\x32 .perfetto.protos.V8WasmCode.Tier\x12\x1d\n\x15\x63ode_offset_in_module\x18\x06 \x01(\x05\x12\x19\n\x11instruction_start\x18\x07 \x01(\x04\x12\x1e\n\x16instruction_size_bytes\x18\x08 \x01(\x04\x12\x14\n\x0cmachine_code\x18\t \x01(\x0c\"=\n\x04Tier\x12\x10\n\x0cTIER_UNKNOWN\x10\x00\x12\x10\n\x0cTIER_LIFTOFF\x10\x01\x12\x11\n\rTIER_TURBOFAN\x10\x02\"\xb0\x01\n\x0cV8RegExpCode\x12\x16\n\x0ev8_isolate_iid\x18\x01 \x01(\x04\x12\x0b\n\x03tid\x18\x02 \x01(\r\x12*\n\x07pattern\x18\x03 \x01(\x0b\x32\x19.perfetto.protos.V8String\x12\x19\n\x11instruction_start\x18\x04 \x01(\x04\x12\x1e\n\x16instruction_size_bytes\x18\x05 \x01(\x04\x12\x14\n\x0cmachine_code\x18\x06 \x01(\x0c\"\xe1\x01\n\nV8CodeMove\x12\x13\n\x0bisolate_iid\x18\x01 \x01(\x04\x12\x0b\n\x03tid\x18\x02 \x01(\r\x12&\n\x1e\x66rom_instruction_start_address\x18\x03 \x01(\x04\x12$\n\x1cto_instruction_start_address\x18\x04 \x01(\x04\x12\x1e\n\x16instruction_size_bytes\x18\x05 \x01(\x04\x12\x19\n\x0fto_machine_code\x18\x06 \x01(\x0cH\x00\x12\x15\n\x0bto_bytecode\x18\x07 \x01(\x0cH\x00\x42\x11\n\x0fto_instructions\"\x1d\n\x0eV8CodeDefaults\x12\x0b\n\x03tid\x18\x01 \x01(\r\"\x92\x03\n\rClockSnapshot\x12\x34\n\x06\x63locks\x18\x01 \x03(\x0b\x32$.perfetto.protos.ClockSnapshot.Clock\x12:\n\x13primary_trace_clock\x18\x02 \x01(\x0e\x32\x1d.perfetto.protos.BuiltinClock\x1a\x8e\x02\n\x05\x43lock\x12\x10\n\x08\x63lock_id\x18\x01 \x01(\r\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\x12\x16\n\x0eis_incremental\x18\x03 \x01(\x08\x12\x1a\n\x12unit_multiplier_ns\x18\x04 \x01(\x04\"\xab\x01\n\rBuiltinClocks\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0c\n\x08REALTIME\x10\x01\x12\x13\n\x0fREALTIME_COARSE\x10\x02\x12\r\n\tMONOTONIC\x10\x03\x12\x14\n\x10MONOTONIC_COARSE\x10\x04\x12\x11\n\rMONOTONIC_RAW\x10\x05\x12\x0c\n\x08\x42OOTTIME\x10\x06\x12\x18\n\x14\x42UILTIN_CLOCK_MAX_ID\x10?\"\x04\x08\x07\x10\x07\"\x04\x08\x08\x10\x08\"\xd2\x0c\n\x0f\x43SwitchEtwEvent\x12\x15\n\rnew_thread_id\x18\x01 \x01(\r\x12\x15\n\rold_thread_id\x18\x02 \x01(\r\x12\x1b\n\x13new_thread_priority\x18\x03 \x01(\x11\x12\x1b\n\x13old_thread_priority\x18\x04 \x01(\x11\x12\x18\n\x10previous_c_state\x18\x05 \x01(\r\x12V\n\x16old_thread_wait_reason\x18\x06 \x01(\x0e\x32\x34.perfetto.protos.CSwitchEtwEvent.OldThreadWaitReasonH\x00\x12$\n\x1aold_thread_wait_reason_int\x18\x0b \x01(\x05H\x00\x12R\n\x14old_thread_wait_mode\x18\x07 \x01(\x0e\x32\x32.perfetto.protos.CSwitchEtwEvent.OldThreadWaitModeH\x01\x12\"\n\x18old_thread_wait_mode_int\x18\x0c \x01(\x05H\x01\x12K\n\x10old_thread_state\x18\x08 \x01(\x0e\x32/.perfetto.protos.CSwitchEtwEvent.OldThreadStateH\x02\x12\x1e\n\x14old_thread_state_int\x18\r \x01(\x11H\x02\x12\'\n\x1fold_thread_wait_ideal_processor\x18\t \x01(\x11\x12\x1c\n\x14new_thread_wait_time\x18\n \x01(\r\"\xe9\x05\n\x13OldThreadWaitReason\x12\r\n\tEXECUTIVE\x10\x00\x12\r\n\tFREE_PAGE\x10\x01\x12\x0b\n\x07PAGE_IN\x10\x02\x12\x13\n\x0fPOOL_ALLOCATION\x10\x03\x12\x13\n\x0f\x44\x45LAY_EXECUTION\x10\x04\x12\x0b\n\x07SUSPEND\x10\x05\x12\x10\n\x0cUSER_REQUEST\x10\x06\x12\x10\n\x0cWR_EXECUTIVE\x10\x07\x12\x10\n\x0cWR_FREE_PAGE\x10\x08\x12\x0e\n\nWR_PAGE_IN\x10\t\x12\x16\n\x12WR_POOL_ALLOCATION\x10\n\x12\x16\n\x12WR_DELAY_EXECUTION\x10\x0b\x12\x10\n\x0cWR_SUSPENDED\x10\x0c\x12\x13\n\x0fWR_USER_REQUEST\x10\r\x12\x11\n\rWR_EVENT_PAIR\x10\x0e\x12\x0c\n\x08WR_QUEUE\x10\x0f\x12\x13\n\x0fWR_LPC_RECEIVER\x10\x10\x12\x10\n\x0cWR_LPC_REPLY\x10\x11\x12\x15\n\x11WR_VIRTUAL_MEMORY\x10\x12\x12\x0f\n\x0bWR_PAGE_OUT\x10\x13\x12\x12\n\x0eWR_RENDEZ_VOUS\x10\x14\x12\x12\n\x0eWR_KEYED_EVENT\x10\x15\x12\x11\n\rWR_TERMINATED\x10\x16\x12\x16\n\x12WR_PROCESS_IN_SWAP\x10\x17\x12\x17\n\x13WR_CPU_RATE_CONTROL\x10\x18\x12\x14\n\x10WR_CALLOUT_STACK\x10\x19\x12\r\n\tWR_KERNEL\x10\x1a\x12\x0f\n\x0bWR_RESOURCE\x10\x1b\x12\x10\n\x0cWR_PUSH_LOCK\x10\x1c\x12\x0c\n\x08WR_MUTEX\x10\x1d\x12\x12\n\x0eWR_QUANTUM_END\x10\x1e\x12\x13\n\x0fWR_DISPATCH_INT\x10\x1f\x12\x10\n\x0cWR_PREEMPTED\x10 \x12\x16\n\x12WR_YIELD_EXECUTION\x10!\x12\x11\n\rWR_FAST_MUTEX\x10\"\x12\x12\n\x0eWR_GUARD_MUTEX\x10#\x12\x0e\n\nWR_RUNDOWN\x10$\x12\x17\n\x13MAXIMUM_WAIT_REASON\x10%\"3\n\x11OldThreadWaitMode\x12\x0f\n\x0bKERNEL_MODE\x10\x00\x12\r\n\tUSER_MODE\x10\x01\"\x87\x01\n\x0eOldThreadState\x12\x0f\n\x0bINITIALIZED\x10\x00\x12\t\n\x05READY\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\x0b\n\x07STANDBY\x10\x03\x12\x0e\n\nTERMINATED\x10\x04\x12\x0b\n\x07WAITING\x10\x05\x12\x0e\n\nTRANSITION\x10\x06\x12\x12\n\x0e\x44\x45\x46\x45RRED_READY\x10\x07\x42$\n\"old_thread_wait_reason_enum_or_intB\"\n old_thread_wait_mode_enum_or_intB\x1e\n\x1cold_thread_state_enum_or_int\"\x88\x04\n\x13ReadyThreadEtwEvent\x12\x13\n\x0bt_thread_id\x18\x01 \x01(\r\x12J\n\radjust_reason\x18\x02 \x01(\x0e\x32\x31.perfetto.protos.ReadyThreadEtwEvent.AdjustReasonH\x00\x12\x1b\n\x11\x61\x64just_reason_int\x18\x05 \x01(\x05H\x00\x12\x18\n\x10\x61\x64just_increment\x18\x03 \x01(\x11\x12>\n\x04\x66lag\x18\x04 \x01(\x0e\x32..perfetto.protos.ReadyThreadEtwEvent.TraceFlagH\x01\x12\x12\n\x08\x66lag_int\x18\x06 \x01(\x05H\x01\"X\n\x0c\x41\x64justReason\x12\x18\n\x14IGNORE_THE_INCREMENT\x10\x00\x12\x13\n\x0f\x41PPLY_INCREMENT\x10\x01\x12\x19\n\x15\x41PPLY_INCREMENT_BOOST\x10\x02\"z\n\tTraceFlag\x12\x1a\n\x16TRACE_FLAG_UNSPECIFIED\x10\x00\x12\x12\n\x0eTHREAD_READIED\x10\x01\x12\x1c\n\x18KERNEL_STACK_SWAPPED_OUT\x10\x02\x12\x1f\n\x1bPROCESS_ADDRESS_SWAPPED_OUT\x10\x04\x42\x1b\n\x19\x61\x64just_reason_enum_or_intB\x12\n\x10\x66lag_enum_or_int\"\x90\x03\n\x0fMemInfoEtwEvent\x12\x17\n\x0fpriority_levels\x18\x01 \x01(\r\x12\x17\n\x0fzero_page_count\x18\x02 \x01(\x04\x12\x17\n\x0f\x66ree_page_count\x18\x03 \x01(\x04\x12\x1b\n\x13modified_page_count\x18\x04 \x01(\x04\x12$\n\x1cmodified_no_write_page_count\x18\x05 \x01(\x04\x12\x16\n\x0e\x62\x61\x64_page_count\x18\x06 \x01(\x04\x12\x1b\n\x13standby_page_counts\x18\x07 \x03(\x04\x12\x1e\n\x16repurposed_page_counts\x18\x08 \x03(\x04\x12%\n\x1dmodified_page_count_page_file\x18\t \x01(\x04\x12\x1d\n\x15paged_pool_page_count\x18\n \x01(\x04\x12!\n\x19non_paged_pool_page_count\x18\x0b \x01(\x04\x12\x16\n\x0emdl_page_count\x18\x0c \x01(\x04\x12\x19\n\x11\x63ommit_page_count\x18\r \x01(\x04\"\xa4\x01\n\x14\x46ileIoCreateEtwEvent\x12\x0f\n\x07irp_ptr\x18\x01 \x01(\x04\x12\x13\n\x0b\x66ile_object\x18\x02 \x01(\x04\x12\x0c\n\x04ttid\x18\x03 \x01(\r\x12\x16\n\x0e\x63reate_options\x18\x04 \x01(\r\x12\x17\n\x0f\x66ile_attributes\x18\x05 \x01(\r\x12\x14\n\x0cshare_access\x18\x06 \x01(\r\x12\x11\n\topen_path\x18\x07 \x01(\t\"\xa8\x01\n\x15\x46ileIoDirEnumEtwEvent\x12\x0f\n\x07irp_ptr\x18\x01 \x01(\x04\x12\x13\n\x0b\x66ile_object\x18\x02 \x01(\x04\x12\x10\n\x08\x66ile_key\x18\x03 \x01(\x04\x12\x0c\n\x04ttid\x18\x04 \x01(\r\x12\x0e\n\x06length\x18\x05 \x01(\r\x12\x12\n\ninfo_class\x18\x06 \x01(\r\x12\x12\n\nfile_index\x18\x07 \x01(\r\x12\x11\n\tfile_name\x18\x08 \x01(\t\"\x82\x01\n\x12\x46ileIoInfoEtwEvent\x12\x0f\n\x07irp_ptr\x18\x01 \x01(\x04\x12\x13\n\x0b\x66ile_object\x18\x02 \x01(\x04\x12\x10\n\x08\x66ile_key\x18\x03 \x01(\x04\x12\x12\n\nextra_info\x18\x04 \x01(\x04\x12\x0c\n\x04ttid\x18\x05 \x01(\r\x12\x12\n\ninfo_class\x18\x06 \x01(\r\"\x92\x01\n\x17\x46ileIoReadWriteEtwEvent\x12\x0e\n\x06offset\x18\x01 \x01(\x04\x12\x0f\n\x07irp_ptr\x18\x02 \x01(\x04\x12\x13\n\x0b\x66ile_object\x18\x03 \x01(\x04\x12\x10\n\x08\x66ile_key\x18\x04 \x01(\x04\x12\x0c\n\x04ttid\x18\x05 \x01(\r\x12\x0f\n\x07io_size\x18\x06 \x01(\r\x12\x10\n\x08io_flags\x18\x07 \x01(\r\"^\n\x16\x46ileIoSimpleOpEtwEvent\x12\x0f\n\x07irp_ptr\x18\x01 \x01(\x04\x12\x13\n\x0b\x66ile_object\x18\x02 \x01(\x04\x12\x10\n\x08\x66ile_key\x18\x03 \x01(\x04\x12\x0c\n\x04ttid\x18\x04 \x01(\r\"M\n\x13\x46ileIoOpEndEtwEvent\x12\x0f\n\x07irp_ptr\x18\x01 \x01(\x04\x12\x12\n\nextra_info\x18\x02 \x01(\x04\x12\x11\n\tnt_status\x18\x03 \x01(\r\"\x85\x05\n\rEtwTraceEvent\x12\x11\n\ttimestamp\x18\x01 \x01(\x04\x12\x0b\n\x03\x63pu\x18\x04 \x01(\r\x12\x11\n\tthread_id\x18\x05 \x01(\r\x12\x34\n\x08\x63_switch\x18\x02 \x01(\x0b\x32 .perfetto.protos.CSwitchEtwEventH\x00\x12<\n\x0cready_thread\x18\x03 \x01(\x0b\x32$.perfetto.protos.ReadyThreadEtwEventH\x00\x12\x34\n\x08mem_info\x18\x06 \x01(\x0b\x32 .perfetto.protos.MemInfoEtwEventH\x00\x12?\n\x0e\x66ile_io_create\x18\x07 \x01(\x0b\x32%.perfetto.protos.FileIoCreateEtwEventH\x00\x12\x42\n\x10\x66ile_io_dir_enum\x18\x08 \x01(\x0b\x32&.perfetto.protos.FileIoDirEnumEtwEventH\x00\x12;\n\x0c\x66ile_io_info\x18\t \x01(\x0b\x32#.perfetto.protos.FileIoInfoEtwEventH\x00\x12\x46\n\x12\x66ile_io_read_write\x18\n \x01(\x0b\x32(.perfetto.protos.FileIoReadWriteEtwEventH\x00\x12\x44\n\x11\x66ile_io_simple_op\x18\x0b \x01(\x0b\x32\'.perfetto.protos.FileIoSimpleOpEtwEventH\x00\x12>\n\x0e\x66ile_io_op_end\x18\x0c \x01(\x0b\x32$.perfetto.protos.FileIoOpEndEtwEventH\x00\x42\x07\n\x05\x65vent\"Q\n\x13\x45twTraceEventBundle\x12\x0b\n\x03\x63pu\x18\x01 \x01(\r\x12-\n\x05\x65vent\x18\x02 \x03(\x0b\x32\x1e.perfetto.protos.EtwTraceEvent\"\xba\x01\n\nEvdevEvent\x12\x11\n\tdevice_id\x18\x01 \x01(\r\x12=\n\x0binput_event\x18\x02 \x01(\x0b\x32&.perfetto.protos.EvdevEvent.InputEventH\x00\x1aQ\n\nInputEvent\x12\x18\n\x10kernel_timestamp\x18\x01 \x01(\x04\x12\x0c\n\x04type\x18\x02 \x01(\r\x12\x0c\n\x04\x63ode\x18\x03 \x01(\r\x12\r\n\x05value\x18\x04 \x01(\x11\x42\x07\n\x05\x65vent\"G\n\x11\x46ileDescriptorSet\x12\x32\n\x04\x66ile\x18\x01 \x03(\x0b\x32$.perfetto.protos.FileDescriptorProto\"\xbf\x02\n\x13\x46ileDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07package\x18\x02 \x01(\t\x12\x12\n\ndependency\x18\x03 \x03(\t\x12\x19\n\x11public_dependency\x18\n \x03(\x05\x12\x17\n\x0fweak_dependency\x18\x0b \x03(\x05\x12\x36\n\x0cmessage_type\x18\x04 \x03(\x0b\x32 .perfetto.protos.DescriptorProto\x12\x37\n\tenum_type\x18\x05 \x03(\x0b\x32$.perfetto.protos.EnumDescriptorProto\x12\x38\n\textension\x18\x07 \x03(\x0b\x32%.perfetto.protos.FieldDescriptorProtoJ\x04\x08\x06\x10\x07J\x04\x08\x08\x10\tJ\x04\x08\t\x10\nJ\x04\x08\x0c\x10\r\"\xd2\x03\n\x0f\x44\x65scriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x05\x66ield\x18\x02 \x03(\x0b\x32%.perfetto.protos.FieldDescriptorProto\x12\x38\n\textension\x18\x06 \x03(\x0b\x32%.perfetto.protos.FieldDescriptorProto\x12\x35\n\x0bnested_type\x18\x03 \x03(\x0b\x32 .perfetto.protos.DescriptorProto\x12\x37\n\tenum_type\x18\x04 \x03(\x0b\x32$.perfetto.protos.EnumDescriptorProto\x12\x39\n\noneof_decl\x18\x08 \x03(\x0b\x32%.perfetto.protos.OneofDescriptorProto\x12\x46\n\x0ereserved_range\x18\t \x03(\x0b\x32..perfetto.protos.DescriptorProto.ReservedRange\x12\x15\n\rreserved_name\x18\n \x03(\t\x1a+\n\rReservedRange\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05J\x04\x08\x05\x10\x06J\x04\x08\x07\x10\x08\"\x9e\x02\n\x13UninterpretedOption\x12;\n\x04name\x18\x02 \x03(\x0b\x32-.perfetto.protos.UninterpretedOption.NamePart\x12\x18\n\x10identifier_value\x18\x03 \x01(\t\x12\x1a\n\x12positive_int_value\x18\x04 \x01(\x04\x12\x1a\n\x12negative_int_value\x18\x05 \x01(\x03\x12\x14\n\x0c\x64ouble_value\x18\x06 \x01(\x01\x12\x14\n\x0cstring_value\x18\x07 \x01(\x0c\x12\x17\n\x0f\x61ggregate_value\x18\x08 \x01(\t\x1a\x33\n\x08NamePart\x12\x11\n\tname_part\x18\x01 \x01(\t\x12\x14\n\x0cis_extension\x18\x02 \x01(\x08\"c\n\x0c\x46ieldOptions\x12\x0e\n\x06packed\x18\x02 \x01(\x08\x12\x43\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32$.perfetto.protos.UninterpretedOption\"\xaf\x05\n\x14\x46ieldDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06number\x18\x03 \x01(\x05\x12:\n\x05label\x18\x04 \x01(\x0e\x32+.perfetto.protos.FieldDescriptorProto.Label\x12\x38\n\x04type\x18\x05 \x01(\x0e\x32*.perfetto.protos.FieldDescriptorProto.Type\x12\x11\n\ttype_name\x18\x06 \x01(\t\x12\x10\n\x08\x65xtendee\x18\x02 \x01(\t\x12\x15\n\rdefault_value\x18\x07 \x01(\t\x12.\n\x07options\x18\x08 \x01(\x0b\x32\x1d.perfetto.protos.FieldOptions\x12\x13\n\x0boneof_index\x18\t \x01(\x05\"\xb6\x02\n\x04Type\x12\x0f\n\x0bTYPE_DOUBLE\x10\x01\x12\x0e\n\nTYPE_FLOAT\x10\x02\x12\x0e\n\nTYPE_INT64\x10\x03\x12\x0f\n\x0bTYPE_UINT64\x10\x04\x12\x0e\n\nTYPE_INT32\x10\x05\x12\x10\n\x0cTYPE_FIXED64\x10\x06\x12\x10\n\x0cTYPE_FIXED32\x10\x07\x12\r\n\tTYPE_BOOL\x10\x08\x12\x0f\n\x0bTYPE_STRING\x10\t\x12\x0e\n\nTYPE_GROUP\x10\n\x12\x10\n\x0cTYPE_MESSAGE\x10\x0b\x12\x0e\n\nTYPE_BYTES\x10\x0c\x12\x0f\n\x0bTYPE_UINT32\x10\r\x12\r\n\tTYPE_ENUM\x10\x0e\x12\x11\n\rTYPE_SFIXED32\x10\x0f\x12\x11\n\rTYPE_SFIXED64\x10\x10\x12\x0f\n\x0bTYPE_SINT32\x10\x11\x12\x0f\n\x0bTYPE_SINT64\x10\x12\"C\n\x05Label\x12\x12\n\x0eLABEL_OPTIONAL\x10\x01\x12\x12\n\x0eLABEL_REQUIRED\x10\x02\x12\x12\n\x0eLABEL_REPEATED\x10\x03J\x04\x08\n\x10\x0b\"T\n\x14OneofDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12.\n\x07options\x18\x02 \x01(\x0b\x32\x1d.perfetto.protos.OneofOptions\"\x80\x01\n\x13\x45numDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x38\n\x05value\x18\x02 \x03(\x0b\x32).perfetto.protos.EnumValueDescriptorProto\x12\x15\n\rreserved_name\x18\x05 \x03(\tJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05\">\n\x18\x45numValueDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06number\x18\x02 \x01(\x05J\x04\x08\x03\x10\x04\"!\n\x0cOneofOptions*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x06\x08\xe7\x07\x10\xe8\x07\"P\n\x13\x45xtensionDescriptor\x12\x39\n\rextension_set\x18\x01 \x01(\x0b\x32\".perfetto.protos.FileDescriptorSet\"\x88\x02\n\x0cInodeFileMap\x12\x17\n\x0f\x62lock_device_id\x18\x01 \x01(\x04\x12\x14\n\x0cmount_points\x18\x02 \x03(\t\x12\x34\n\x07\x65ntries\x18\x03 \x03(\x0b\x32#.perfetto.protos.InodeFileMap.Entry\x1a\x92\x01\n\x05\x45ntry\x12\x14\n\x0cinode_number\x18\x01 \x01(\x04\x12\r\n\x05paths\x18\x02 \x03(\t\x12\x36\n\x04type\x18\x03 \x01(\x0e\x32(.perfetto.protos.InodeFileMap.Entry.Type\",\n\x04Type\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04\x46ILE\x10\x01\x12\r\n\tDIRECTORY\x10\x02\"M\n\x1f\x41ndroidFsDatareadEndFtraceEvent\x12\r\n\x05\x62ytes\x18\x01 \x01(\x05\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06offset\x18\x03 \x01(\x03\"\x8e\x01\n!AndroidFsDatareadStartFtraceEvent\x12\r\n\x05\x62ytes\x18\x01 \x01(\x05\x12\x0f\n\x07\x63mdline\x18\x02 \x01(\t\x12\x0e\n\x06i_size\x18\x03 \x01(\x03\x12\x0b\n\x03ino\x18\x04 \x01(\x04\x12\x0e\n\x06offset\x18\x05 \x01(\x03\x12\x0f\n\x07pathbuf\x18\x06 \x01(\t\x12\x0b\n\x03pid\x18\x07 \x01(\x05\"N\n AndroidFsDatawriteEndFtraceEvent\x12\r\n\x05\x62ytes\x18\x01 \x01(\x05\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06offset\x18\x03 \x01(\x03\"\x8f\x01\n\"AndroidFsDatawriteStartFtraceEvent\x12\r\n\x05\x62ytes\x18\x01 \x01(\x05\x12\x0f\n\x07\x63mdline\x18\x02 \x01(\t\x12\x0e\n\x06i_size\x18\x03 \x01(\x03\x12\x0b\n\x03ino\x18\x04 \x01(\x04\x12\x0e\n\x06offset\x18\x05 \x01(\x03\x12\x0f\n\x07pathbuf\x18\x06 \x01(\t\x12\x0b\n\x03pid\x18\x07 \x01(\x05\"J\n\x1c\x41ndroidFsFsyncEndFtraceEvent\x12\r\n\x05\x62ytes\x18\x01 \x01(\x05\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06offset\x18\x03 \x01(\x03\"l\n\x1e\x41ndroidFsFsyncStartFtraceEvent\x12\x0f\n\x07\x63mdline\x18\x01 \x01(\t\x12\x0e\n\x06i_size\x18\x02 \x01(\x03\x12\x0b\n\x03ino\x18\x03 \x01(\x04\x12\x0f\n\x07pathbuf\x18\x04 \x01(\t\x12\x0b\n\x03pid\x18\x05 \x01(\x05\"\xbd\x01\n\x18\x42\x63lIrqTriggerFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x10\n\x08throttle\x18\x02 \x01(\x05\x12\x12\n\ncpu0_limit\x18\x03 \x01(\x05\x12\x12\n\ncpu1_limit\x18\x04 \x01(\x05\x12\x12\n\ncpu2_limit\x18\x05 \x01(\x05\x12\x11\n\ttpu_limit\x18\x06 \x01(\x05\x12\x11\n\tgpu_limit\x18\x07 \x01(\x05\x12\x0f\n\x07voltage\x18\x08 \x01(\x05\x12\x10\n\x08\x63\x61pacity\x18\t \x01(\x05\"\x95\x01\n\x1c\x42inderTransactionFtraceEvent\x12\x10\n\x08\x64\x65\x62ug_id\x18\x01 \x01(\x05\x12\x13\n\x0btarget_node\x18\x02 \x01(\x05\x12\x0f\n\x07to_proc\x18\x03 \x01(\x05\x12\x11\n\tto_thread\x18\x04 \x01(\x05\x12\r\n\x05reply\x18\x05 \x01(\x05\x12\x0c\n\x04\x63ode\x18\x06 \x01(\r\x12\r\n\x05\x66lags\x18\x07 \x01(\r\"8\n$BinderTransactionReceivedFtraceEvent\x12\x10\n\x08\x64\x65\x62ug_id\x18\x01 \x01(\x05\"v\n\x1c\x42inderSetPriorityFtraceEvent\x12\x0c\n\x04proc\x18\x01 \x01(\x05\x12\x0e\n\x06thread\x18\x02 \x01(\x05\x12\x10\n\x08old_prio\x18\x03 \x01(\r\x12\x10\n\x08new_prio\x18\x04 \x01(\r\x12\x14\n\x0c\x64\x65sired_prio\x18\x05 \x01(\r\"$\n\x15\x42inderLockFtraceEvent\x12\x0b\n\x03tag\x18\x01 \x01(\t\"&\n\x17\x42inderLockedFtraceEvent\x12\x0b\n\x03tag\x18\x01 \x01(\t\"&\n\x17\x42inderUnlockFtraceEvent\x12\x0b\n\x03tag\x18\x01 \x01(\t\"}\n$BinderTransactionAllocBufFtraceEvent\x12\x11\n\tdata_size\x18\x01 \x01(\x04\x12\x10\n\x08\x64\x65\x62ug_id\x18\x02 \x01(\x05\x12\x14\n\x0coffsets_size\x18\x03 \x01(\x04\x12\x1a\n\x12\x65xtra_buffers_size\x18\x04 \x01(\x04\"\'\n\x18\x42inderCommandFtraceEvent\x12\x0b\n\x03\x63md\x18\x01 \x01(\r\"&\n\x17\x42inderReturnFtraceEvent\x12\x0b\n\x03\x63md\x18\x01 \x01(\r\"\x81\x01\n\x17\x42lockRqIssueFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\r\n\x05\x62ytes\x18\x04 \x01(\r\x12\x0c\n\x04rwbs\x18\x05 \x01(\t\x12\x0c\n\x04\x63omm\x18\x06 \x01(\t\x12\x0b\n\x03\x63md\x18\x07 \x01(\t\"j\n\x1c\x42lockBioBackmergeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\x0c\n\x04rwbs\x18\x04 \x01(\t\x12\x0c\n\x04\x63omm\x18\x05 \x01(\t\"g\n\x19\x42lockBioBounceFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\x0c\n\x04rwbs\x18\x04 \x01(\t\x12\x0c\n\x04\x63omm\x18\x05 \x01(\t\"j\n\x1b\x42lockBioCompleteFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\r\n\x05\x65rror\x18\x04 \x01(\x05\x12\x0c\n\x04rwbs\x18\x05 \x01(\t\"k\n\x1d\x42lockBioFrontmergeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\x0c\n\x04rwbs\x18\x04 \x01(\t\x12\x0c\n\x04\x63omm\x18\x05 \x01(\t\"f\n\x18\x42lockBioQueueFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\x0c\n\x04rwbs\x18\x04 \x01(\t\x12\x0c\n\x04\x63omm\x18\x05 \x01(\t\"}\n\x18\x42lockBioRemapFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\x0f\n\x07old_dev\x18\x04 \x01(\x04\x12\x12\n\nold_sector\x18\x05 \x01(\x04\x12\x0c\n\x04rwbs\x18\x06 \x01(\t\"H\n\x1b\x42lockDirtyBufferFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x0c\n\x04size\x18\x03 \x01(\x04\"c\n\x15\x42lockGetrqFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\x0c\n\x04rwbs\x18\x04 \x01(\t\x12\x0c\n\x04\x63omm\x18\x05 \x01(\t\"$\n\x14\x42lockPlugFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\"t\n\x17\x42lockRqAbortFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\x0e\n\x06\x65rrors\x18\x04 \x01(\x05\x12\x0c\n\x04rwbs\x18\x05 \x01(\t\x12\x0b\n\x03\x63md\x18\x06 \x01(\t\"\x86\x01\n\x1a\x42lockRqCompleteFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\x0e\n\x06\x65rrors\x18\x04 \x01(\x05\x12\x0c\n\x04rwbs\x18\x05 \x01(\t\x12\x0b\n\x03\x63md\x18\x06 \x01(\t\x12\r\n\x05\x65rror\x18\x07 \x01(\x05\"\x82\x01\n\x18\x42lockRqInsertFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\r\n\x05\x62ytes\x18\x04 \x01(\r\x12\x0c\n\x04rwbs\x18\x05 \x01(\t\x12\x0c\n\x04\x63omm\x18\x06 \x01(\t\x12\x0b\n\x03\x63md\x18\x07 \x01(\t\"\x8d\x01\n\x17\x42lockRqRemapFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\x0f\n\x07old_dev\x18\x04 \x01(\x04\x12\x12\n\nold_sector\x18\x05 \x01(\x04\x12\x0f\n\x07nr_bios\x18\x06 \x01(\r\x12\x0c\n\x04rwbs\x18\x07 \x01(\t\"v\n\x19\x42lockRqRequeueFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\x0e\n\x06\x65rrors\x18\x04 \x01(\x05\x12\x0c\n\x04rwbs\x18\x05 \x01(\t\x12\x0b\n\x03\x63md\x18\x06 \x01(\t\"e\n\x17\x42lockSleeprqFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\x0c\n\x04rwbs\x18\x04 \x01(\t\x12\x0c\n\x04\x63omm\x18\x05 \x01(\t\"d\n\x15\x42lockSplitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x12\n\nnew_sector\x18\x03 \x01(\x04\x12\x0c\n\x04rwbs\x18\x04 \x01(\t\x12\x0c\n\x04\x63omm\x18\x05 \x01(\t\"H\n\x1b\x42lockTouchBufferFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x0c\n\x04size\x18\x03 \x01(\x04\"5\n\x16\x42lockUnplugFtraceEvent\x12\r\n\x05nr_rq\x18\x01 \x01(\x05\x12\x0c\n\x04\x63omm\x18\x02 \x01(\t\"\x91\x01\n\x17\x42lockIoStartFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\r\n\x05\x62ytes\x18\x04 \x01(\r\x12\x0e\n\x06ioprio\x18\x05 \x01(\r\x12\x0c\n\x04rwbs\x18\x06 \x01(\t\x12\x0c\n\x04\x63omm\x18\x07 \x01(\t\x12\x0b\n\x03\x63md\x18\x08 \x01(\t\"\x90\x01\n\x16\x42lockIoDoneFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\r\n\x05\x62ytes\x18\x04 \x01(\r\x12\x0e\n\x06ioprio\x18\x05 \x01(\r\x12\x0c\n\x04rwbs\x18\x06 \x01(\t\x12\x0c\n\x04\x63omm\x18\x07 \x01(\t\x12\x0b\n\x03\x63md\x18\x08 \x01(\t\"\x8e\x01\n\x1b\x43groupAttachTaskFtraceEvent\x12\x10\n\x08\x64st_root\x18\x01 \x01(\x05\x12\x0e\n\x06\x64st_id\x18\x02 \x01(\x05\x12\x0b\n\x03pid\x18\x03 \x01(\x05\x12\x0c\n\x04\x63omm\x18\x04 \x01(\t\x12\r\n\x05\x63name\x18\x05 \x01(\t\x12\x11\n\tdst_level\x18\x06 \x01(\x05\x12\x10\n\x08\x64st_path\x18\x07 \x01(\t\"^\n\x16\x43groupMkdirFtraceEvent\x12\x0c\n\x04root\x18\x01 \x01(\x05\x12\n\n\x02id\x18\x02 \x01(\x05\x12\r\n\x05\x63name\x18\x03 \x01(\t\x12\r\n\x05level\x18\x04 \x01(\x05\x12\x0c\n\x04path\x18\x05 \x01(\t\"G\n\x18\x43groupRemountFtraceEvent\x12\x0c\n\x04root\x18\x01 \x01(\x05\x12\x0f\n\x07ss_mask\x18\x02 \x01(\r\x12\x0c\n\x04name\x18\x03 \x01(\t\"^\n\x16\x43groupRmdirFtraceEvent\x12\x0c\n\x04root\x18\x01 \x01(\x05\x12\n\n\x02id\x18\x02 \x01(\x05\x12\r\n\x05\x63name\x18\x03 \x01(\t\x12\r\n\x05level\x18\x04 \x01(\x05\x12\x0c\n\x04path\x18\x05 \x01(\t\"\x91\x01\n\x1e\x43groupTransferTasksFtraceEvent\x12\x10\n\x08\x64st_root\x18\x01 \x01(\x05\x12\x0e\n\x06\x64st_id\x18\x02 \x01(\x05\x12\x0b\n\x03pid\x18\x03 \x01(\x05\x12\x0c\n\x04\x63omm\x18\x04 \x01(\t\x12\r\n\x05\x63name\x18\x05 \x01(\t\x12\x11\n\tdst_level\x18\x06 \x01(\x05\x12\x10\n\x08\x64st_path\x18\x07 \x01(\t\"K\n\x1c\x43groupDestroyRootFtraceEvent\x12\x0c\n\x04root\x18\x01 \x01(\x05\x12\x0f\n\x07ss_mask\x18\x02 \x01(\r\x12\x0c\n\x04name\x18\x03 \x01(\t\"`\n\x18\x43groupReleaseFtraceEvent\x12\x0c\n\x04root\x18\x01 \x01(\x05\x12\n\n\x02id\x18\x02 \x01(\x05\x12\r\n\x05\x63name\x18\x03 \x01(\t\x12\r\n\x05level\x18\x04 \x01(\x05\x12\x0c\n\x04path\x18\x05 \x01(\t\"_\n\x17\x43groupRenameFtraceEvent\x12\x0c\n\x04root\x18\x01 \x01(\x05\x12\n\n\x02id\x18\x02 \x01(\x05\x12\r\n\x05\x63name\x18\x03 \x01(\t\x12\r\n\x05level\x18\x04 \x01(\x05\x12\x0c\n\x04path\x18\x05 \x01(\t\"I\n\x1a\x43groupSetupRootFtraceEvent\x12\x0c\n\x04root\x18\x01 \x01(\x05\x12\x0f\n\x07ss_mask\x18\x02 \x01(\r\x12\x0c\n\x04name\x18\x03 \x01(\t\"$\n\x14\x43lkEnableFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\"%\n\x15\x43lkDisableFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\"3\n\x15\x43lkSetRateFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04rate\x18\x02 \x01(\x04\"F\n\x18\x43maAllocStartFtraceEvent\x12\r\n\x05\x61lign\x18\x01 \x01(\r\x12\r\n\x05\x63ount\x18\x02 \x01(\r\x12\x0c\n\x04name\x18\x03 \x01(\t\"\xc4\x01\n\x17\x43maAllocInfoFtraceEvent\x12\r\n\x05\x61lign\x18\x01 \x01(\r\x12\r\n\x05\x63ount\x18\x02 \x01(\r\x12\x0f\n\x07\x65rr_iso\x18\x03 \x01(\r\x12\x0f\n\x07\x65rr_mig\x18\x04 \x01(\r\x12\x10\n\x08\x65rr_test\x18\x05 \x01(\r\x12\x0c\n\x04name\x18\x06 \x01(\t\x12\x11\n\tnr_mapped\x18\x07 \x01(\x04\x12\x13\n\x0bnr_migrated\x18\x08 \x01(\x04\x12\x14\n\x0cnr_reclaimed\x18\t \x01(\x04\x12\x0b\n\x03pfn\x18\n \x01(\x04\"s\n\x19\x43maAllocFinishFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03pfn\x18\x02 \x01(\x04\x12\x0c\n\x04page\x18\x03 \x01(\x04\x12\r\n\x05\x63ount\x18\x04 \x01(\x04\x12\r\n\x05\x61lign\x18\x05 \x01(\r\x12\x0f\n\x07\x65rrorno\x18\x06 \x01(\x05\"y\n\x1cMmCompactionBeginFtraceEvent\x12\x12\n\nzone_start\x18\x01 \x01(\x04\x12\x13\n\x0bmigrate_pfn\x18\x02 \x01(\x04\x12\x10\n\x08\x66ree_pfn\x18\x03 \x01(\x04\x12\x10\n\x08zone_end\x18\x04 \x01(\x04\x12\x0c\n\x04sync\x18\x05 \x01(\r\"\x90\x01\n&MmCompactionDeferCompactionFtraceEvent\x12\x0b\n\x03nid\x18\x01 \x01(\x05\x12\x0b\n\x03idx\x18\x02 \x01(\r\x12\r\n\x05order\x18\x03 \x01(\x05\x12\x12\n\nconsidered\x18\x04 \x01(\r\x12\x13\n\x0b\x64\x65\x66\x65r_shift\x18\x05 \x01(\r\x12\x14\n\x0corder_failed\x18\x06 \x01(\x05\"\x89\x01\n\x1fMmCompactionDeferredFtraceEvent\x12\x0b\n\x03nid\x18\x01 \x01(\x05\x12\x0b\n\x03idx\x18\x02 \x01(\r\x12\r\n\x05order\x18\x03 \x01(\x05\x12\x12\n\nconsidered\x18\x04 \x01(\r\x12\x13\n\x0b\x64\x65\x66\x65r_shift\x18\x05 \x01(\r\x12\x14\n\x0corder_failed\x18\x06 \x01(\x05\"\x8b\x01\n!MmCompactionDeferResetFtraceEvent\x12\x0b\n\x03nid\x18\x01 \x01(\x05\x12\x0b\n\x03idx\x18\x02 \x01(\r\x12\r\n\x05order\x18\x03 \x01(\x05\x12\x12\n\nconsidered\x18\x04 \x01(\r\x12\x13\n\x0b\x64\x65\x66\x65r_shift\x18\x05 \x01(\r\x12\x14\n\x0corder_failed\x18\x06 \x01(\x05\"\x87\x01\n\x1aMmCompactionEndFtraceEvent\x12\x12\n\nzone_start\x18\x01 \x01(\x04\x12\x13\n\x0bmigrate_pfn\x18\x02 \x01(\x04\x12\x10\n\x08\x66ree_pfn\x18\x03 \x01(\x04\x12\x10\n\x08zone_end\x18\x04 \x01(\x04\x12\x0c\n\x04sync\x18\x05 \x01(\r\x12\x0e\n\x06status\x18\x06 \x01(\x05\"W\n\x1fMmCompactionFinishedFtraceEvent\x12\x0b\n\x03nid\x18\x01 \x01(\x05\x12\x0b\n\x03idx\x18\x02 \x01(\r\x12\r\n\x05order\x18\x03 \x01(\x05\x12\x0b\n\x03ret\x18\x04 \x01(\x05\"s\n\'MmCompactionIsolateFreepagesFtraceEvent\x12\x11\n\tstart_pfn\x18\x01 \x01(\x04\x12\x0f\n\x07\x65nd_pfn\x18\x02 \x01(\x04\x12\x12\n\nnr_scanned\x18\x03 \x01(\x04\x12\x10\n\x08nr_taken\x18\x04 \x01(\x04\"v\n*MmCompactionIsolateMigratepagesFtraceEvent\x12\x11\n\tstart_pfn\x18\x01 \x01(\x04\x12\x0f\n\x07\x65nd_pfn\x18\x02 \x01(\x04\x12\x12\n\nnr_scanned\x18\x03 \x01(\x04\x12\x10\n\x08nr_taken\x18\x04 \x01(\x04\"4\n%MmCompactionKcompactdSleepFtraceEvent\x12\x0b\n\x03nid\x18\x01 \x01(\x05\"r\n$MmCompactionKcompactdWakeFtraceEvent\x12\x0b\n\x03nid\x18\x01 \x01(\x05\x12\r\n\x05order\x18\x02 \x01(\x05\x12\x15\n\rclasszone_idx\x18\x03 \x01(\r\x12\x17\n\x0fhighest_zoneidx\x18\x04 \x01(\r\"M\n#MmCompactionMigratepagesFtraceEvent\x12\x13\n\x0bnr_migrated\x18\x01 \x01(\x04\x12\x11\n\tnr_failed\x18\x02 \x01(\x04\"W\n\x1fMmCompactionSuitableFtraceEvent\x12\x0b\n\x03nid\x18\x01 \x01(\x05\x12\x0b\n\x03idx\x18\x02 \x01(\r\x12\r\n\x05order\x18\x03 \x01(\x05\x12\x0b\n\x03ret\x18\x04 \x01(\x05\"g\n(MmCompactionTryToCompactPagesFtraceEvent\x12\r\n\x05order\x18\x01 \x01(\x05\x12\x10\n\x08gfp_mask\x18\x02 \x01(\r\x12\x0c\n\x04mode\x18\x03 \x01(\r\x12\x0c\n\x04prio\x18\x04 \x01(\x05\"t\n&MmCompactionWakeupKcompactdFtraceEvent\x12\x0b\n\x03nid\x18\x01 \x01(\x05\x12\r\n\x05order\x18\x02 \x01(\x05\x12\x15\n\rclasszone_idx\x18\x03 \x01(\r\x12\x17\n\x0fhighest_zoneidx\x18\x04 \x01(\r\"M\n\x1bParamSetValueCpmFtraceEvent\x12\x0c\n\x04\x62ody\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r\x12\x11\n\ttimestamp\x18\x03 \x01(\x03\"L\n\x14\x43puhpExitFtraceEvent\x12\x0b\n\x03\x63pu\x18\x01 \x01(\r\x12\x0b\n\x03idx\x18\x02 \x01(\x05\x12\x0b\n\x03ret\x18\x03 \x01(\x05\x12\r\n\x05state\x18\x04 \x01(\x05\"S\n\x1a\x43puhpMultiEnterFtraceEvent\x12\x0b\n\x03\x63pu\x18\x01 \x01(\r\x12\x0b\n\x03\x66un\x18\x02 \x01(\x04\x12\x0b\n\x03idx\x18\x03 \x01(\x05\x12\x0e\n\x06target\x18\x04 \x01(\x05\"N\n\x15\x43puhpEnterFtraceEvent\x12\x0b\n\x03\x63pu\x18\x01 \x01(\r\x12\x0b\n\x03\x66un\x18\x02 \x01(\x04\x12\x0b\n\x03idx\x18\x03 \x01(\x05\x12\x0e\n\x06target\x18\x04 \x01(\x05\"P\n\x17\x43puhpLatencyFtraceEvent\x12\x0b\n\x03\x63pu\x18\x01 \x01(\r\x12\x0b\n\x03ret\x18\x02 \x01(\x05\x12\r\n\x05state\x18\x03 \x01(\r\x12\x0c\n\x04time\x18\x04 \x01(\x04\"W\n\x15\x43puhpPauseFtraceEvent\x12\x13\n\x0b\x61\x63tive_cpus\x18\x01 \x01(\r\x12\x0c\n\x04\x63pus\x18\x02 \x01(\r\x12\r\n\x05pause\x18\x03 \x01(\r\x12\x0c\n\x04time\x18\x04 \x01(\r\"\xaa\x01\n\x1e\x43rosEcSensorhubDataFtraceEvent\x12\x14\n\x0c\x63urrent_time\x18\x01 \x01(\x03\x12\x19\n\x11\x63urrent_timestamp\x18\x02 \x01(\x03\x12\r\n\x05\x64\x65lta\x18\x03 \x01(\x03\x12\x19\n\x11\x65\x63_fifo_timestamp\x18\x04 \x01(\r\x12\x15\n\rec_sensor_num\x18\x05 \x01(\r\x12\x16\n\x0e\x66ifo_timestamp\x18\x06 \x01(\x03\"1\n\x14\x44\x63vshFreqFtraceEvent\x12\x0b\n\x03\x63pu\x18\x01 \x01(\x04\x12\x0c\n\x04\x66req\x18\x02 \x01(\x04\"w\n\x1b\x44\x65vfreqFrequencyFtraceEvent\x12\x10\n\x08\x64\x65v_name\x18\x01 \x01(\t\x12\x0c\n\x04\x66req\x18\x02 \x01(\x04\x12\x11\n\tprev_freq\x18\x03 \x01(\x04\x12\x11\n\tbusy_time\x18\x04 \x01(\x04\x12\x12\n\ntotal_time\x18\x05 \x01(\x04\"[\n\x17\x44maFenceInitFtraceEvent\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\r\x12\x0e\n\x06\x64river\x18\x02 \x01(\t\x12\r\n\x05seqno\x18\x03 \x01(\r\x12\x10\n\x08timeline\x18\x04 \x01(\t\"[\n\x17\x44maFenceEmitFtraceEvent\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\r\x12\x0e\n\x06\x64river\x18\x02 \x01(\t\x12\r\n\x05seqno\x18\x03 \x01(\r\x12\x10\n\x08timeline\x18\x04 \x01(\t\"_\n\x1b\x44maFenceSignaledFtraceEvent\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\r\x12\x0e\n\x06\x64river\x18\x02 \x01(\t\x12\r\n\x05seqno\x18\x03 \x01(\r\x12\x10\n\x08timeline\x18\x04 \x01(\t\"`\n\x1c\x44maFenceWaitStartFtraceEvent\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\r\x12\x0e\n\x06\x64river\x18\x02 \x01(\t\x12\r\n\x05seqno\x18\x03 \x01(\r\x12\x10\n\x08timeline\x18\x04 \x01(\t\"^\n\x1a\x44maFenceWaitEndFtraceEvent\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\r\x12\x0e\n\x06\x64river\x18\x02 \x01(\t\x12\r\n\x05seqno\x18\x03 \x01(\r\x12\x10\n\x08timeline\x18\x04 \x01(\t\"M\n\x16\x44maHeapStatFtraceEvent\x12\r\n\x05inode\x18\x01 \x01(\x04\x12\x0b\n\x03len\x18\x02 \x01(\x03\x12\x17\n\x0ftotal_allocated\x18\x03 \x01(\x04\"\x81\x01\n\x1e\x44puTracingMarkWriteFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x12\n\ntrace_name\x18\x02 \x01(\t\x12\x13\n\x0btrace_begin\x18\x03 \x01(\r\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x0c\n\x04type\x18\x05 \x01(\r\x12\r\n\x05value\x18\x06 \x01(\x05\"A\n\x1e\x44puDsiCmdFifoStatusFtraceEvent\x12\x0e\n\x06header\x18\x01 \x01(\r\x12\x0f\n\x07payload\x18\x02 \x01(\r\"2\n\x13\x44puDsiRxFtraceEvent\x12\x0b\n\x03\x63md\x18\x01 \x01(\r\x12\x0e\n\x06rx_buf\x18\x02 \x01(\r\"S\n\x13\x44puDsiTxFtraceEvent\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x0e\n\x06tx_buf\x18\x02 \x01(\r\x12\x0c\n\x04last\x18\x03 \x01(\r\x12\x10\n\x08\x64\x65lay_ms\x18\x04 \x01(\r\"X\n\x1d\x44puDispDpuUnderrunFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x16\n\x0e\x66rames_pending\x18\x02 \x01(\x05\x12\x13\n\x0bvsync_count\x18\x03 \x01(\x05\"R\n!DpuDispVblankIrqEnableFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x11\n\toutput_id\x18\x02 \x01(\x05\x12\x0e\n\x06\x65nable\x18\x03 \x01(\x05\"W\n\x19\x44rmVblankEventFtraceEvent\x12\x0c\n\x04\x63rtc\x18\x01 \x01(\x05\x12\x11\n\thigh_prec\x18\x02 \x01(\r\x12\x0b\n\x03seq\x18\x03 \x01(\r\x12\x0c\n\x04time\x18\x04 \x01(\x03\"M\n\"DrmVblankEventDeliveredFtraceEvent\x12\x0c\n\x04\x63rtc\x18\x01 \x01(\x05\x12\x0c\n\x04\x66ile\x18\x02 \x01(\x04\x12\x0b\n\x03seq\x18\x03 \x01(\r\"\xa2\x01\n\x1b\x44wc3AllocRequestFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03req\x18\x02 \x01(\x04\x12\x0e\n\x06\x61\x63tual\x18\x03 \x01(\r\x12\x0e\n\x06length\x18\x04 \x01(\r\x12\x0e\n\x06status\x18\x05 \x01(\x05\x12\x0c\n\x04zero\x18\x06 \x01(\x05\x12\x14\n\x0cshort_not_ok\x18\x07 \x01(\x05\x12\x14\n\x0cno_interrupt\x18\x08 \x01(\x05\"\xc0\x01\n\x1a\x44wc3CompleteTrbFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03trb\x18\x02 \x01(\x04\x12\x11\n\tallocated\x18\x03 \x01(\r\x12\x0e\n\x06queued\x18\x04 \x01(\r\x12\x0b\n\x03\x62pl\x18\x05 \x01(\r\x12\x0b\n\x03\x62ph\x18\x06 \x01(\r\x12\x0c\n\x04size\x18\x07 \x01(\r\x12\x0c\n\x04\x63trl\x18\x08 \x01(\r\x12\x0c\n\x04type\x18\t \x01(\r\x12\x0f\n\x07\x65nqueue\x18\n \x01(\r\x12\x0f\n\x07\x64\x65queue\x18\x0b \x01(\r\"~\n\x16\x44wc3CtrlReqFtraceEvent\x12\x14\n\x0c\x62RequestType\x18\x01 \x01(\r\x12\x10\n\x08\x62Request\x18\x02 \x01(\r\x12\x0e\n\x06wValue\x18\x03 \x01(\r\x12\x0e\n\x06wIndex\x18\x04 \x01(\r\x12\x0f\n\x07wLength\x18\x05 \x01(\r\x12\x0b\n\x03str\x18\x06 \x01(\t\"\x9f\x01\n\x18\x44wc3EpDequeueFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03req\x18\x02 \x01(\x04\x12\x0e\n\x06\x61\x63tual\x18\x03 \x01(\r\x12\x0e\n\x06length\x18\x04 \x01(\r\x12\x0e\n\x06status\x18\x05 \x01(\x05\x12\x0c\n\x04zero\x18\x06 \x01(\x05\x12\x14\n\x0cshort_not_ok\x18\x07 \x01(\x05\x12\x14\n\x0cno_interrupt\x18\x08 \x01(\x05\"\x9d\x01\n\x16\x44wc3EpQueueFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03req\x18\x02 \x01(\x04\x12\x0e\n\x06\x61\x63tual\x18\x03 \x01(\r\x12\x0e\n\x06length\x18\x04 \x01(\r\x12\x0e\n\x06status\x18\x05 \x01(\x05\x12\x0c\n\x04zero\x18\x06 \x01(\x05\x12\x14\n\x0cshort_not_ok\x18\x07 \x01(\x05\x12\x14\n\x0cno_interrupt\x18\x08 \x01(\x05\"D\n\x14\x44wc3EventFtraceEvent\x12\r\n\x05\x65vent\x18\x01 \x01(\r\x12\x10\n\x08\x65p0state\x18\x02 \x01(\r\x12\x0b\n\x03str\x18\x03 \x01(\t\"\xa1\x01\n\x1a\x44wc3FreeRequestFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03req\x18\x02 \x01(\x04\x12\x0e\n\x06\x61\x63tual\x18\x03 \x01(\r\x12\x0e\n\x06length\x18\x04 \x01(\r\x12\x0e\n\x06status\x18\x05 \x01(\x05\x12\x0c\n\x04zero\x18\x06 \x01(\x05\x12\x14\n\x0cshort_not_ok\x18\x07 \x01(\x05\x12\x14\n\x0cno_interrupt\x18\x08 \x01(\x05\"{\n\x1a\x44wc3GadgetEpCmdFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03\x63md\x18\x02 \x01(\r\x12\x0e\n\x06param0\x18\x03 \x01(\r\x12\x0e\n\x06param1\x18\x04 \x01(\r\x12\x0e\n\x06param2\x18\x05 \x01(\r\x12\x12\n\ncmd_status\x18\x06 \x01(\x05\"\xcd\x01\n\x1e\x44wc3GadgetEpDisableFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tmaxpacket\x18\x02 \x01(\r\x12\x17\n\x0fmaxpacket_limit\x18\x03 \x01(\r\x12\x13\n\x0bmax_streams\x18\x04 \x01(\r\x12\x10\n\x08maxburst\x18\x05 \x01(\r\x12\r\n\x05\x66lags\x18\x06 \x01(\r\x12\x11\n\tdirection\x18\x07 \x01(\r\x12\x13\n\x0btrb_enqueue\x18\x08 \x01(\r\x12\x13\n\x0btrb_dequeue\x18\t \x01(\r\"\xcc\x01\n\x1d\x44wc3GadgetEpEnableFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tmaxpacket\x18\x02 \x01(\r\x12\x17\n\x0fmaxpacket_limit\x18\x03 \x01(\r\x12\x13\n\x0bmax_streams\x18\x04 \x01(\r\x12\x10\n\x08maxburst\x18\x05 \x01(\r\x12\r\n\x05\x66lags\x18\x06 \x01(\r\x12\x11\n\tdirection\x18\x07 \x01(\r\x12\x13\n\x0btrb_enqueue\x18\x08 \x01(\r\x12\x13\n\x0btrb_dequeue\x18\t \x01(\r\"M\n\x1f\x44wc3GadgetGenericCmdFtraceEvent\x12\x0b\n\x03\x63md\x18\x01 \x01(\r\x12\r\n\x05param\x18\x02 \x01(\r\x12\x0e\n\x06status\x18\x03 \x01(\x05\"\xa4\x01\n\x1d\x44wc3GadgetGivebackFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03req\x18\x02 \x01(\x04\x12\x0e\n\x06\x61\x63tual\x18\x03 \x01(\r\x12\x0e\n\x06length\x18\x04 \x01(\r\x12\x0e\n\x06status\x18\x05 \x01(\x05\x12\x0c\n\x04zero\x18\x06 \x01(\x05\x12\x14\n\x0cshort_not_ok\x18\x07 \x01(\x05\x12\x14\n\x0cno_interrupt\x18\x08 \x01(\x05\"\xbf\x01\n\x19\x44wc3PrepareTrbFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03trb\x18\x02 \x01(\x04\x12\x11\n\tallocated\x18\x03 \x01(\r\x12\x0e\n\x06queued\x18\x04 \x01(\r\x12\x0b\n\x03\x62pl\x18\x05 \x01(\r\x12\x0b\n\x03\x62ph\x18\x06 \x01(\r\x12\x0c\n\x04size\x18\x07 \x01(\r\x12\x0c\n\x04\x63trl\x18\x08 \x01(\r\x12\x0c\n\x04type\x18\t \x01(\r\x12\x0f\n\x07\x65nqueue\x18\n \x01(\r\x12\x0f\n\x07\x64\x65queue\x18\x0b \x01(\r\"P\n\x14\x44wc3ReadlFtraceEvent\x12\x0c\n\x04\x62\x61se\x18\x01 \x01(\x04\x12\x0e\n\x06offset\x18\x02 \x01(\r\x12\r\n\x05value\x18\x03 \x01(\r\x12\x0b\n\x03msg\x18\x04 \x01(\t\"Q\n\x15\x44wc3WritelFtraceEvent\x12\x0c\n\x04\x62\x61se\x18\x01 \x01(\x04\x12\x0e\n\x06offset\x18\x02 \x01(\r\x12\r\n\x05value\x18\x03 \x01(\r\x12\x0b\n\x03msg\x18\x04 \x01(\t\"`\n\x1b\x45xt4DaWriteBeginFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03pos\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\r\n\x05\x66lags\x18\x05 \x01(\r\"_\n\x19\x45xt4DaWriteEndFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03pos\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\x0e\n\x06\x63opied\x18\x05 \x01(\r\"Z\n\x1c\x45xt4SyncFileEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06parent\x18\x03 \x01(\x04\x12\x10\n\x08\x64\x61tasync\x18\x04 \x01(\x05\"D\n\x1b\x45xt4SyncFileExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03ret\x18\x03 \x01(\x05\"b\n\x1c\x45xt4AllocDaBlocksFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x13\n\x0b\x64\x61ta_blocks\x18\x03 \x01(\r\x12\x13\n\x0bmeta_blocks\x18\x04 \x01(\r\"\xc1\x01\n\x1d\x45xt4AllocateBlocksFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05\x62lock\x18\x03 \x01(\x04\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\x0f\n\x07logical\x18\x05 \x01(\r\x12\r\n\x05lleft\x18\x06 \x01(\r\x12\x0e\n\x06lright\x18\x07 \x01(\r\x12\x0c\n\x04goal\x18\x08 \x01(\x04\x12\r\n\x05pleft\x18\t \x01(\x04\x12\x0e\n\x06pright\x18\n \x01(\x04\x12\r\n\x05\x66lags\x18\x0b \x01(\r\"S\n\x1c\x45xt4AllocateInodeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03\x64ir\x18\x03 \x01(\x04\x12\x0c\n\x04mode\x18\x04 \x01(\r\"Q\n#Ext4BeginOrderedTruncateFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x10\n\x08new_size\x18\x03 \x01(\x03\"U\n\x1c\x45xt4CollapseRangeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06offset\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\x03\"\xca\x01\n\x1d\x45xt4DaReleaseSpaceFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x10\n\x08i_blocks\x18\x03 \x01(\x04\x12\x14\n\x0c\x66reed_blocks\x18\x04 \x01(\x05\x12\x1c\n\x14reserved_data_blocks\x18\x05 \x01(\x05\x12\x1c\n\x14reserved_meta_blocks\x18\x06 \x01(\x05\x12\x1d\n\x15\x61llocated_meta_blocks\x18\x07 \x01(\x05\x12\x0c\n\x04mode\x18\x08 \x01(\r\"\xa8\x01\n\x1d\x45xt4DaReserveSpaceFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x10\n\x08i_blocks\x18\x03 \x01(\x04\x12\x1c\n\x14reserved_data_blocks\x18\x04 \x01(\x05\x12\x1c\n\x14reserved_meta_blocks\x18\x05 \x01(\x05\x12\x0c\n\x04mode\x18\x06 \x01(\r\x12\x11\n\tmd_needed\x18\x07 \x01(\x05\"\xe4\x01\n#Ext4DaUpdateReserveSpaceFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x10\n\x08i_blocks\x18\x03 \x01(\x04\x12\x13\n\x0bused_blocks\x18\x04 \x01(\x05\x12\x1c\n\x14reserved_data_blocks\x18\x05 \x01(\x05\x12\x1c\n\x14reserved_meta_blocks\x18\x06 \x01(\x05\x12\x1d\n\x15\x61llocated_meta_blocks\x18\x07 \x01(\x05\x12\x13\n\x0bquota_claim\x18\x08 \x01(\x05\x12\x0c\n\x04mode\x18\t \x01(\r\"\xcf\x01\n\x1b\x45xt4DaWritePagesFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x12\n\nfirst_page\x18\x03 \x01(\x04\x12\x13\n\x0bnr_to_write\x18\x04 \x01(\x03\x12\x11\n\tsync_mode\x18\x05 \x01(\x05\x12\x11\n\tb_blocknr\x18\x06 \x01(\x04\x12\x0e\n\x06\x62_size\x18\x07 \x01(\r\x12\x0f\n\x07\x62_state\x18\x08 \x01(\r\x12\x0f\n\x07io_done\x18\t \x01(\x05\x12\x15\n\rpages_written\x18\n \x01(\x05\"g\n!Ext4DaWritePagesExtentFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\x04\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\r\n\x05\x66lags\x18\x05 \x01(\r\"^\n\x1c\x45xt4DirectIOEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03pos\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\x04\x12\n\n\x02rw\x18\x05 \x01(\x05\"j\n\x1b\x45xt4DirectIOExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03pos\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\x04\x12\n\n\x02rw\x18\x05 \x01(\x05\x12\x0b\n\x03ret\x18\x06 \x01(\x05\"G\n\x1c\x45xt4DiscardBlocksFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03\x62lk\x18\x02 \x01(\x04\x12\r\n\x05\x63ount\x18\x03 \x01(\x04\"]\n$Ext4DiscardPreallocationsFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03len\x18\x03 \x01(\r\x12\x0e\n\x06needed\x18\x04 \x01(\r\"B\n\x18\x45xt4DropInodeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04\x64rop\x18\x03 \x01(\x05\"q\n\x1c\x45xt4EsCacheExtentFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\r\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\x0c\n\x04pblk\x18\x05 \x01(\x04\x12\x0e\n\x06status\x18\x06 \x01(\r\"V\n,Ext4EsFindDelayedExtentRangeEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\r\"\x80\x01\n+Ext4EsFindDelayedExtentRangeExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\r\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\x0c\n\x04pblk\x18\x05 \x01(\x04\x12\x0e\n\x06status\x18\x06 \x01(\x04\"r\n\x1d\x45xt4EsInsertExtentFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\r\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\x0c\n\x04pblk\x18\x05 \x01(\x04\x12\x0e\n\x06status\x18\x06 \x01(\x04\"L\n\"Ext4EsLookupExtentEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\r\"\x85\x01\n!Ext4EsLookupExtentExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\r\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\x0c\n\x04pblk\x18\x05 \x01(\x04\x12\x0e\n\x06status\x18\x06 \x01(\x04\x12\r\n\x05\x66ound\x18\x07 \x01(\x05\"T\n\x1d\x45xt4EsRemoveExtentFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\x03\"q\n\x17\x45xt4EsShrinkFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x11\n\tnr_shrunk\x18\x02 \x01(\x05\x12\x11\n\tscan_time\x18\x03 \x01(\x04\x12\x12\n\nnr_skipped\x18\x04 \x01(\x05\x12\x0f\n\x07retried\x18\x05 \x01(\x05\"R\n\x1c\x45xt4EsShrinkCountFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x12\n\nnr_to_scan\x18\x02 \x01(\x05\x12\x11\n\tcache_cnt\x18\x03 \x01(\x05\"V\n Ext4EsShrinkScanEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x12\n\nnr_to_scan\x18\x02 \x01(\x05\x12\x11\n\tcache_cnt\x18\x03 \x01(\x05\"T\n\x1f\x45xt4EsShrinkScanExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x11\n\tnr_shrunk\x18\x02 \x01(\x05\x12\x11\n\tcache_cnt\x18\x03 \x01(\x05\"D\n\x19\x45xt4EvictInodeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05nlink\x18\x03 \x01(\x05\"\x95\x01\n+Ext4ExtConvertToInitializedEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06m_lblk\x18\x03 \x01(\r\x12\r\n\x05m_len\x18\x04 \x01(\r\x12\x0e\n\x06u_lblk\x18\x05 \x01(\r\x12\r\n\x05u_len\x18\x06 \x01(\r\x12\x0e\n\x06u_pblk\x18\x07 \x01(\x04\"\xc7\x01\n.Ext4ExtConvertToInitializedFastpathFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06m_lblk\x18\x03 \x01(\r\x12\r\n\x05m_len\x18\x04 \x01(\r\x12\x0e\n\x06u_lblk\x18\x05 \x01(\r\x12\r\n\x05u_len\x18\x06 \x01(\r\x12\x0e\n\x06u_pblk\x18\x07 \x01(\x04\x12\x0e\n\x06i_lblk\x18\x08 \x01(\r\x12\r\n\x05i_len\x18\t \x01(\r\x12\x0e\n\x06i_pblk\x18\n \x01(\x04\"\x9f\x01\n(Ext4ExtHandleUnwrittenExtentsFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05\x66lags\x18\x03 \x01(\x05\x12\x0c\n\x04lblk\x18\x04 \x01(\r\x12\x0c\n\x04pblk\x18\x05 \x01(\x04\x12\x0b\n\x03len\x18\x06 \x01(\r\x12\x11\n\tallocated\x18\x07 \x01(\r\x12\x0e\n\x06newblk\x18\x08 \x01(\x04\"P\n\x19\x45xt4ExtInCacheFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\r\x12\x0b\n\x03ret\x18\x04 \x01(\x05\"T\n\x1c\x45xt4ExtLoadExtentFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04pblk\x18\x03 \x01(\x04\x12\x0c\n\x04lblk\x18\x04 \x01(\r\"f\n Ext4ExtMapBlocksEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\r\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\r\n\x05\x66lags\x18\x05 \x01(\r\"\x90\x01\n\x1f\x45xt4ExtMapBlocksExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x0c\n\x04pblk\x18\x04 \x01(\x04\x12\x0c\n\x04lblk\x18\x05 \x01(\r\x12\x0b\n\x03len\x18\x06 \x01(\r\x12\x0e\n\x06mflags\x18\x07 \x01(\r\x12\x0b\n\x03ret\x18\x08 \x01(\x05\"b\n\x1c\x45xt4ExtPutInCacheFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\r\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\r\n\x05start\x18\x05 \x01(\x04\"d\n\x1d\x45xt4ExtRemoveSpaceFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05start\x18\x03 \x01(\r\x12\x0b\n\x03\x65nd\x18\x04 \x01(\r\x12\r\n\x05\x64\x65pth\x18\x05 \x01(\x05\"\xc1\x01\n!Ext4ExtRemoveSpaceDoneFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05start\x18\x03 \x01(\r\x12\x0b\n\x03\x65nd\x18\x04 \x01(\r\x12\r\n\x05\x64\x65pth\x18\x05 \x01(\x05\x12\x0f\n\x07partial\x18\x06 \x01(\x03\x12\x12\n\neh_entries\x18\x07 \x01(\r\x12\x0f\n\x07pc_lblk\x18\x08 \x01(\r\x12\x0f\n\x07pc_pclu\x18\t \x01(\x04\x12\x10\n\x08pc_state\x18\n \x01(\x05\"A\n\x17\x45xt4ExtRmIdxFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04pblk\x18\x03 \x01(\x04\"\xba\x01\n\x18\x45xt4ExtRmLeafFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0f\n\x07partial\x18\x03 \x01(\x03\x12\r\n\x05start\x18\x04 \x01(\r\x12\x0f\n\x07\x65\x65_lblk\x18\x05 \x01(\r\x12\x0f\n\x07\x65\x65_pblk\x18\x06 \x01(\x04\x12\x0e\n\x06\x65\x65_len\x18\x07 \x01(\x05\x12\x0f\n\x07pc_lblk\x18\x08 \x01(\r\x12\x0f\n\x07pc_pclu\x18\t \x01(\x04\x12\x10\n\x08pc_state\x18\n \x01(\x05\"a\n\x1c\x45xt4ExtShowExtentFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04pblk\x18\x03 \x01(\x04\x12\x0c\n\x04lblk\x18\x04 \x01(\r\x12\x0b\n\x03len\x18\x05 \x01(\r\"q\n\x1d\x45xt4FallocateEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06offset\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\x03\x12\x0c\n\x04mode\x18\x05 \x01(\x05\x12\x0b\n\x03pos\x18\x06 \x01(\x03\"b\n\x1c\x45xt4FallocateExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03pos\x18\x03 \x01(\x03\x12\x0e\n\x06\x62locks\x18\x04 \x01(\r\x12\x0b\n\x03ret\x18\x05 \x01(\x05\"\x89\x01\n Ext4FindDelallocRangeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04\x66rom\x18\x03 \x01(\r\x12\n\n\x02to\x18\x04 \x01(\r\x12\x0f\n\x07reverse\x18\x05 \x01(\x05\x12\r\n\x05\x66ound\x18\x06 \x01(\x05\x12\x11\n\tfound_blk\x18\x07 \x01(\r\"c\n\x15\x45xt4ForgetFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05\x62lock\x18\x03 \x01(\x04\x12\x13\n\x0bis_metadata\x18\x04 \x01(\x05\x12\x0c\n\x04mode\x18\x05 \x01(\r\"p\n\x19\x45xt4FreeBlocksFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05\x62lock\x18\x03 \x01(\x04\x12\r\n\x05\x63ount\x18\x04 \x01(\x04\x12\r\n\x05\x66lags\x18\x05 \x01(\x05\x12\x0c\n\x04mode\x18\x06 \x01(\r\"l\n\x18\x45xt4FreeInodeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03uid\x18\x03 \x01(\r\x12\x0b\n\x03gid\x18\x04 \x01(\r\x12\x0e\n\x06\x62locks\x18\x05 \x01(\x04\x12\x0c\n\x04mode\x18\x06 \x01(\r\"}\n)Ext4GetImpliedClusterAllocExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\r\n\x05\x66lags\x18\x02 \x01(\r\x12\x0c\n\x04lblk\x18\x03 \x01(\r\x12\x0c\n\x04pblk\x18\x04 \x01(\x04\x12\x0b\n\x03len\x18\x05 \x01(\r\x12\x0b\n\x03ret\x18\x06 \x01(\x05\"]\n&Ext4GetReservedClusterAllocFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\r\x12\x0b\n\x03len\x18\x04 \x01(\r\"f\n Ext4IndMapBlocksEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\r\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\r\n\x05\x66lags\x18\x05 \x01(\r\"\x90\x01\n\x1f\x45xt4IndMapBlocksExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x0c\n\x04pblk\x18\x04 \x01(\x04\x12\x0c\n\x04lblk\x18\x05 \x01(\r\x12\x0b\n\x03len\x18\x06 \x01(\r\x12\x0e\n\x06mflags\x18\x07 \x01(\r\x12\x0b\n\x03ret\x18\x08 \x01(\x05\"S\n\x1a\x45xt4InsertRangeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06offset\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\x03\"h\n\x1d\x45xt4InvalidatepageFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05index\x18\x03 \x01(\x04\x12\x0e\n\x06offset\x18\x04 \x01(\x04\x12\x0e\n\x06length\x18\x05 \x01(\r\"\x81\x01\n\x1b\x45xt4JournalStartFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\n\n\x02ip\x18\x02 \x01(\x04\x12\x0e\n\x06\x62locks\x18\x03 \x01(\x05\x12\x12\n\nrsv_blocks\x18\x04 \x01(\x05\x12\x0f\n\x07nblocks\x18\x05 \x01(\x05\x12\x14\n\x0crevoke_creds\x18\x06 \x01(\x05\"N\n#Ext4JournalStartReservedFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\n\n\x02ip\x18\x02 \x01(\x04\x12\x0e\n\x06\x62locks\x18\x03 \x01(\x05\"r\n\'Ext4JournalledInvalidatepageFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05index\x18\x03 \x01(\x04\x12\x0e\n\x06offset\x18\x04 \x01(\x04\x12\x0e\n\x06length\x18\x05 \x01(\r\"g\n!Ext4JournalledWriteEndFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03pos\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\x0e\n\x06\x63opied\x18\x05 \x01(\r\"4\n\x18\x45xt4LoadInodeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\"<\n\x1e\x45xt4LoadInodeBitmapFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\r\n\x05group\x18\x02 \x01(\r\"E\n\x1d\x45xt4MarkInodeDirtyFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\n\n\x02ip\x18\x03 \x01(\x04\"9\n\x1b\x45xt4MbBitmapLoadFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\r\n\x05group\x18\x02 \x01(\r\">\n Ext4MbBuddyBitmapLoadFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\r\n\x05group\x18\x02 \x01(\r\"E\n&Ext4MbDiscardPreallocationsFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06needed\x18\x02 \x01(\x05\"m\n\x1b\x45xt4MbNewGroupPaFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x11\n\tpa_pstart\x18\x03 \x01(\x04\x12\x11\n\tpa_lstart\x18\x04 \x01(\x04\x12\x0e\n\x06pa_len\x18\x05 \x01(\r\"m\n\x1b\x45xt4MbNewInodePaFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x11\n\tpa_pstart\x18\x03 \x01(\x04\x12\x11\n\tpa_lstart\x18\x04 \x01(\x04\x12\x0e\n\x06pa_len\x18\x05 \x01(\r\"Q\n\x1f\x45xt4MbReleaseGroupPaFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x11\n\tpa_pstart\x18\x02 \x01(\x04\x12\x0e\n\x06pa_len\x18\x03 \x01(\r\"Y\n\x1f\x45xt4MbReleaseInodePaFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05\x62lock\x18\x03 \x01(\x04\x12\r\n\x05\x63ount\x18\x04 \x01(\r\"\x86\x03\n\x1b\x45xt4MballocAllocFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x14\n\x0corig_logical\x18\x03 \x01(\r\x12\x12\n\norig_start\x18\x04 \x01(\x05\x12\x12\n\norig_group\x18\x05 \x01(\r\x12\x10\n\x08orig_len\x18\x06 \x01(\x05\x12\x14\n\x0cgoal_logical\x18\x07 \x01(\r\x12\x12\n\ngoal_start\x18\x08 \x01(\x05\x12\x12\n\ngoal_group\x18\t \x01(\r\x12\x10\n\x08goal_len\x18\n \x01(\x05\x12\x16\n\x0eresult_logical\x18\x0b \x01(\r\x12\x14\n\x0cresult_start\x18\x0c \x01(\x05\x12\x14\n\x0cresult_group\x18\r \x01(\r\x12\x12\n\nresult_len\x18\x0e \x01(\x05\x12\r\n\x05\x66ound\x18\x0f \x01(\r\x12\x0e\n\x06groups\x18\x10 \x01(\r\x12\r\n\x05\x62uddy\x18\x11 \x01(\r\x12\r\n\x05\x66lags\x18\x12 \x01(\r\x12\x0c\n\x04tail\x18\x13 \x01(\r\x12\n\n\x02\x63r\x18\x14 \x01(\r\"y\n\x1d\x45xt4MballocDiscardFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x14\n\x0cresult_start\x18\x03 \x01(\x05\x12\x14\n\x0cresult_group\x18\x04 \x01(\r\x12\x12\n\nresult_len\x18\x05 \x01(\x05\"v\n\x1a\x45xt4MballocFreeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x14\n\x0cresult_start\x18\x03 \x01(\x05\x12\x14\n\x0cresult_group\x18\x04 \x01(\r\x12\x12\n\nresult_len\x18\x05 \x01(\x05\"\xe2\x01\n\x1e\x45xt4MballocPreallocFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x14\n\x0corig_logical\x18\x03 \x01(\r\x12\x12\n\norig_start\x18\x04 \x01(\x05\x12\x12\n\norig_group\x18\x05 \x01(\r\x12\x10\n\x08orig_len\x18\x06 \x01(\x05\x12\x16\n\x0eresult_logical\x18\x07 \x01(\r\x12\x14\n\x0cresult_start\x18\x08 \x01(\x05\x12\x14\n\x0cresult_group\x18\t \x01(\r\x12\x12\n\nresult_len\x18\n \x01(\x05\"y\n#Ext4OtherInodeUpdateTimeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x10\n\x08orig_ino\x18\x03 \x01(\x04\x12\x0b\n\x03uid\x18\x04 \x01(\r\x12\x0b\n\x03gid\x18\x05 \x01(\r\x12\x0c\n\x04mode\x18\x06 \x01(\r\"_\n\x18\x45xt4PunchHoleFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06offset\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\x03\x12\x0c\n\x04mode\x18\x05 \x01(\x05\"R\n\"Ext4ReadBlockBitmapLoadFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\r\n\x05group\x18\x02 \x01(\r\x12\x10\n\x08prefetch\x18\x03 \x01(\r\"B\n\x17\x45xt4ReadpageFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05index\x18\x03 \x01(\x04\"E\n\x1a\x45xt4ReleasepageFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05index\x18\x03 \x01(\x04\"\xc8\x01\n\x1b\x45xt4RemoveBlocksFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04\x66rom\x18\x03 \x01(\r\x12\n\n\x02to\x18\x04 \x01(\r\x12\x0f\n\x07partial\x18\x05 \x01(\x03\x12\x0f\n\x07\x65\x65_pblk\x18\x06 \x01(\x04\x12\x0f\n\x07\x65\x65_lblk\x18\x07 \x01(\r\x12\x0e\n\x06\x65\x65_len\x18\x08 \x01(\r\x12\x0f\n\x07pc_lblk\x18\t \x01(\r\x12\x0f\n\x07pc_pclu\x18\n \x01(\x04\x12\x10\n\x08pc_state\x18\x0b \x01(\x05\"\xb1\x01\n\x1c\x45xt4RequestBlocksFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03len\x18\x03 \x01(\r\x12\x0f\n\x07logical\x18\x04 \x01(\r\x12\r\n\x05lleft\x18\x05 \x01(\r\x12\x0e\n\x06lright\x18\x06 \x01(\r\x12\x0c\n\x04goal\x18\x07 \x01(\x04\x12\r\n\x05pleft\x18\x08 \x01(\x04\x12\x0e\n\x06pright\x18\t \x01(\x04\x12\r\n\x05\x66lags\x18\n \x01(\r\"E\n\x1b\x45xt4RequestInodeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03\x64ir\x18\x02 \x01(\x04\x12\x0c\n\x04mode\x18\x03 \x01(\r\"2\n\x15\x45xt4SyncFsFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0c\n\x04wait\x18\x02 \x01(\x05\"m\n\x1a\x45xt4TrimAllFreeFtraceEvent\x12\x11\n\tdev_major\x18\x01 \x01(\x05\x12\x11\n\tdev_minor\x18\x02 \x01(\x05\x12\r\n\x05group\x18\x03 \x01(\r\x12\r\n\x05start\x18\x04 \x01(\x05\x12\x0b\n\x03len\x18\x05 \x01(\x05\"l\n\x19\x45xt4TrimExtentFtraceEvent\x12\x11\n\tdev_major\x18\x01 \x01(\x05\x12\x11\n\tdev_minor\x18\x02 \x01(\x05\x12\r\n\x05group\x18\x03 \x01(\r\x12\r\n\x05start\x18\x04 \x01(\x05\x12\x0b\n\x03len\x18\x05 \x01(\x05\"H\n\x1c\x45xt4TruncateEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06\x62locks\x18\x03 \x01(\x04\"G\n\x1b\x45xt4TruncateExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06\x62locks\x18\x03 \x01(\x04\"T\n\x1a\x45xt4UnlinkEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06parent\x18\x03 \x01(\x04\x12\x0c\n\x04size\x18\x04 \x01(\x03\"B\n\x19\x45xt4UnlinkExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03ret\x18\x03 \x01(\x05\"^\n\x19\x45xt4WriteBeginFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03pos\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\r\n\x05\x66lags\x18\x05 \x01(\r\"]\n\x17\x45xt4WriteEndFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03pos\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\x0e\n\x06\x63opied\x18\x05 \x01(\r\"C\n\x18\x45xt4WritepageFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05index\x18\x03 \x01(\x04\"\xe0\x01\n\x19\x45xt4WritepagesFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x13\n\x0bnr_to_write\x18\x03 \x01(\x03\x12\x15\n\rpages_skipped\x18\x04 \x01(\x03\x12\x13\n\x0brange_start\x18\x05 \x01(\x03\x12\x11\n\trange_end\x18\x06 \x01(\x03\x12\x17\n\x0fwriteback_index\x18\x07 \x01(\x04\x12\x11\n\tsync_mode\x18\x08 \x01(\x05\x12\x13\n\x0b\x66or_kupdate\x18\t \x01(\r\x12\x14\n\x0crange_cyclic\x18\n \x01(\r\"\xa2\x01\n\x1f\x45xt4WritepagesResultFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03ret\x18\x03 \x01(\x05\x12\x15\n\rpages_written\x18\x04 \x01(\x05\x12\x15\n\rpages_skipped\x18\x05 \x01(\x03\x12\x17\n\x0fwriteback_index\x18\x06 \x01(\x04\x12\x11\n\tsync_mode\x18\x07 \x01(\x05\"_\n\x18\x45xt4ZeroRangeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06offset\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\x03\x12\x0c\n\x04mode\x18\x05 \x01(\x05\"d\n\x1a\x46\x32\x66sDoSubmitBioFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\r\n\x05\x62type\x18\x02 \x01(\x05\x12\x0c\n\x04sync\x18\x03 \x01(\r\x12\x0e\n\x06sector\x18\x04 \x01(\x04\x12\x0c\n\x04size\x18\x05 \x01(\r\"\x8e\x01\n\x19\x46\x32\x66sEvictInodeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04pino\x18\x03 \x01(\x04\x12\x0c\n\x04mode\x18\x04 \x01(\r\x12\x0c\n\x04size\x18\x05 \x01(\x03\x12\r\n\x05nlink\x18\x06 \x01(\r\x12\x0e\n\x06\x62locks\x18\x07 \x01(\x04\x12\x0e\n\x06\x61\x64vise\x18\x08 \x01(\r\"\x8a\x01\n\x18\x46\x32\x66sFallocateFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04mode\x18\x03 \x01(\x05\x12\x0e\n\x06offset\x18\x04 \x01(\x03\x12\x0b\n\x03len\x18\x05 \x01(\x03\x12\x0c\n\x04size\x18\x06 \x01(\x03\x12\x0e\n\x06\x62locks\x18\x07 \x01(\x04\x12\x0b\n\x03ret\x18\x08 \x01(\x05\"w\n\x1b\x46\x32\x66sGetDataBlockFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06iblock\x18\x03 \x01(\x04\x12\x10\n\x08\x62h_start\x18\x04 \x01(\x04\x12\x0f\n\x07\x62h_size\x18\x05 \x01(\x04\x12\x0b\n\x03ret\x18\x06 \x01(\x05\"\xce\x01\n\x18\x46\x32\x66sGetVictimFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0c\n\x04type\x18\x02 \x01(\x05\x12\x0f\n\x07gc_type\x18\x03 \x01(\x05\x12\x12\n\nalloc_mode\x18\x04 \x01(\x05\x12\x0f\n\x07gc_mode\x18\x05 \x01(\x05\x12\x0e\n\x06victim\x18\x06 \x01(\r\x12\x10\n\x08ofs_unit\x18\x07 \x01(\r\x12\x12\n\npre_victim\x18\x08 \x01(\r\x12\x0f\n\x07prefree\x18\t \x01(\r\x12\x0c\n\x04\x66ree\x18\n \x01(\r\x12\x0c\n\x04\x63ost\x18\x0b \x01(\r\"\x88\x01\n\x13\x46\x32\x66sIgetFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04pino\x18\x03 \x01(\x04\x12\x0c\n\x04mode\x18\x04 \x01(\r\x12\x0c\n\x04size\x18\x05 \x01(\x03\x12\r\n\x05nlink\x18\x06 \x01(\r\x12\x0e\n\x06\x62locks\x18\x07 \x01(\x04\x12\x0e\n\x06\x61\x64vise\x18\x08 \x01(\r\"@\n\x17\x46\x32\x66sIgetExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03ret\x18\x03 \x01(\x05\"@\n\x17\x46\x32\x66sNewInodeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03ret\x18\x03 \x01(\x05\"\x8f\x01\n\x17\x46\x32\x66sReadpageFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05index\x18\x03 \x01(\x04\x12\x0f\n\x07\x62lkaddr\x18\x04 \x01(\x04\x12\x0c\n\x04type\x18\x05 \x01(\x05\x12\x0b\n\x03\x64ir\x18\x06 \x01(\x05\x12\r\n\x05\x64irty\x18\x07 \x01(\x05\x12\x10\n\x08uptodate\x18\x08 \x01(\x05\"O\n\x1e\x46\x32\x66sReserveNewBlockFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03nid\x18\x02 \x01(\r\x12\x13\n\x0bofs_in_node\x18\x03 \x01(\r\"\x82\x01\n\x1b\x46\x32\x66sSetPageDirtyFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04type\x18\x03 \x01(\x05\x12\x0b\n\x03\x64ir\x18\x04 \x01(\x05\x12\r\n\x05index\x18\x05 \x01(\x04\x12\r\n\x05\x64irty\x18\x06 \x01(\x05\x12\x10\n\x08uptodate\x18\x07 \x01(\x05\"f\n\x1e\x46\x32\x66sSubmitWritePageFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04type\x18\x03 \x01(\x05\x12\r\n\x05index\x18\x04 \x01(\x04\x12\r\n\x05\x62lock\x18\x05 \x01(\r\"\x91\x01\n\x1c\x46\x32\x66sSyncFileEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04pino\x18\x03 \x01(\x04\x12\x0c\n\x04mode\x18\x04 \x01(\r\x12\x0c\n\x04size\x18\x05 \x01(\x03\x12\r\n\x05nlink\x18\x06 \x01(\r\x12\x0e\n\x06\x62locks\x18\x07 \x01(\x04\x12\x0e\n\x06\x61\x64vise\x18\x08 \x01(\r\"z\n\x1b\x46\x32\x66sSyncFileExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0f\n\x07need_cp\x18\x03 \x01(\r\x12\x10\n\x08\x64\x61tasync\x18\x04 \x01(\x05\x12\x0b\n\x03ret\x18\x05 \x01(\x05\x12\x11\n\tcp_reason\x18\x06 \x01(\x05\"A\n\x15\x46\x32\x66sSyncFsFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\r\n\x05\x64irty\x18\x02 \x01(\x05\x12\x0c\n\x04wait\x18\x03 \x01(\x05\"\x8c\x01\n\x17\x46\x32\x66sTruncateFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04pino\x18\x03 \x01(\x04\x12\x0c\n\x04mode\x18\x04 \x01(\r\x12\x0c\n\x04size\x18\x05 \x01(\x03\x12\r\n\x05nlink\x18\x06 \x01(\r\x12\x0e\n\x06\x62locks\x18\x07 \x01(\x04\x12\x0e\n\x06\x61\x64vise\x18\x08 \x01(\r\"j\n\"F2fsTruncateBlocksEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04size\x18\x03 \x01(\x03\x12\x0e\n\x06\x62locks\x18\x04 \x01(\x04\x12\x0c\n\x04\x66rom\x18\x05 \x01(\x04\"J\n!F2fsTruncateBlocksExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03ret\x18\x03 \x01(\x05\"j\n&F2fsTruncateDataBlocksRangeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03nid\x18\x03 \x01(\r\x12\x0b\n\x03ofs\x18\x04 \x01(\r\x12\x0c\n\x04\x66ree\x18\x05 \x01(\x05\"o\n\'F2fsTruncateInodeBlocksEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04size\x18\x03 \x01(\x03\x12\x0e\n\x06\x62locks\x18\x04 \x01(\x04\x12\x0c\n\x04\x66rom\x18\x05 \x01(\x04\"O\n&F2fsTruncateInodeBlocksExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03ret\x18\x03 \x01(\x05\"V\n\x1b\x46\x32\x66sTruncateNodeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03nid\x18\x03 \x01(\r\x12\x10\n\x08\x62lk_addr\x18\x04 \x01(\r\"\\\n!F2fsTruncateNodesEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03nid\x18\x03 \x01(\r\x12\x10\n\x08\x62lk_addr\x18\x04 \x01(\r\"I\n F2fsTruncateNodesExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03ret\x18\x03 \x01(\x05\"h\n#F2fsTruncatePartialNodesFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03nid\x18\x03 \x01(\r\x12\r\n\x05\x64\x65pth\x18\x04 \x01(\x05\x12\x0b\n\x03\x65rr\x18\x05 \x01(\x05\"b\n\x1a\x46\x32\x66sUnlinkEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04size\x18\x03 \x01(\x03\x12\x0e\n\x06\x62locks\x18\x04 \x01(\x04\x12\x0c\n\x04name\x18\x05 \x01(\t\"B\n\x19\x46\x32\x66sUnlinkExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03ret\x18\x03 \x01(\x05\"\x83\x01\n\x1c\x46\x32\x66sVmPageMkwriteFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04type\x18\x03 \x01(\x05\x12\x0b\n\x03\x64ir\x18\x04 \x01(\x05\x12\r\n\x05index\x18\x05 \x01(\x04\x12\r\n\x05\x64irty\x18\x06 \x01(\x05\x12\x10\n\x08uptodate\x18\x07 \x01(\x05\"^\n\x19\x46\x32\x66sWriteBeginFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03pos\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\r\n\x05\x66lags\x18\x05 \x01(\r\"]\n\x1e\x46\x32\x66sWriteCheckpointFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x11\n\tis_umount\x18\x02 \x01(\r\x12\x0b\n\x03msg\x18\x03 \x01(\t\x12\x0e\n\x06reason\x18\x04 \x01(\x05\"]\n\x17\x46\x32\x66sWriteEndFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03pos\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\x0e\n\x06\x63opied\x18\x05 \x01(\r\"\xa9\x03\n\x15\x46\x32\x66sIostatFtraceEvent\x12\x0f\n\x07\x61pp_bio\x18\x01 \x01(\x04\x12\x10\n\x08\x61pp_brio\x18\x02 \x01(\x04\x12\x0f\n\x07\x61pp_dio\x18\x03 \x01(\x04\x12\x10\n\x08\x61pp_drio\x18\x04 \x01(\x04\x12\x0f\n\x07\x61pp_mio\x18\x05 \x01(\x04\x12\x10\n\x08\x61pp_mrio\x18\x06 \x01(\x04\x12\x0f\n\x07\x61pp_rio\x18\x07 \x01(\x04\x12\x0f\n\x07\x61pp_wio\x18\x08 \x01(\x04\x12\x0b\n\x03\x64\x65v\x18\t \x01(\x04\x12\x10\n\x08\x66s_cdrio\x18\n \x01(\x04\x12\x11\n\tfs_cp_dio\x18\x0b \x01(\x04\x12\x11\n\tfs_cp_mio\x18\x0c \x01(\x04\x12\x11\n\tfs_cp_nio\x18\r \x01(\x04\x12\x0e\n\x06\x66s_dio\x18\x0e \x01(\x04\x12\x12\n\nfs_discard\x18\x0f \x01(\x04\x12\x0f\n\x07\x66s_drio\x18\x10 \x01(\x04\x12\x11\n\tfs_gc_dio\x18\x11 \x01(\x04\x12\x11\n\tfs_gc_nio\x18\x12 \x01(\x04\x12\x10\n\x08\x66s_gdrio\x18\x13 \x01(\x04\x12\x0e\n\x06\x66s_mio\x18\x14 \x01(\x04\x12\x0f\n\x07\x66s_mrio\x18\x15 \x01(\x04\x12\x0e\n\x06\x66s_nio\x18\x16 \x01(\x04\x12\x0f\n\x07\x66s_nrio\x18\x17 \x01(\x04\"\xc7\x04\n\x1c\x46\x32\x66sIostatLatencyFtraceEvent\x12\x10\n\x08\x64_rd_avg\x18\x01 \x01(\r\x12\x10\n\x08\x64_rd_cnt\x18\x02 \x01(\r\x12\x11\n\td_rd_peak\x18\x03 \x01(\r\x12\x13\n\x0b\x64_wr_as_avg\x18\x04 \x01(\r\x12\x13\n\x0b\x64_wr_as_cnt\x18\x05 \x01(\r\x12\x14\n\x0c\x64_wr_as_peak\x18\x06 \x01(\r\x12\x12\n\nd_wr_s_avg\x18\x07 \x01(\r\x12\x12\n\nd_wr_s_cnt\x18\x08 \x01(\r\x12\x13\n\x0b\x64_wr_s_peak\x18\t \x01(\r\x12\x0b\n\x03\x64\x65v\x18\n \x01(\x04\x12\x10\n\x08m_rd_avg\x18\x0b \x01(\r\x12\x10\n\x08m_rd_cnt\x18\x0c \x01(\r\x12\x11\n\tm_rd_peak\x18\r \x01(\r\x12\x13\n\x0bm_wr_as_avg\x18\x0e \x01(\r\x12\x13\n\x0bm_wr_as_cnt\x18\x0f \x01(\r\x12\x14\n\x0cm_wr_as_peak\x18\x10 \x01(\r\x12\x12\n\nm_wr_s_avg\x18\x11 \x01(\r\x12\x12\n\nm_wr_s_cnt\x18\x12 \x01(\r\x12\x13\n\x0bm_wr_s_peak\x18\x13 \x01(\r\x12\x10\n\x08n_rd_avg\x18\x14 \x01(\r\x12\x10\n\x08n_rd_cnt\x18\x15 \x01(\r\x12\x11\n\tn_rd_peak\x18\x16 \x01(\r\x12\x13\n\x0bn_wr_as_avg\x18\x17 \x01(\r\x12\x13\n\x0bn_wr_as_cnt\x18\x18 \x01(\r\x12\x14\n\x0cn_wr_as_peak\x18\x19 \x01(\r\x12\x12\n\nn_wr_s_avg\x18\x1a \x01(\r\x12\x12\n\nn_wr_s_cnt\x18\x1b \x01(\r\x12\x13\n\x0bn_wr_s_peak\x18\x1c \x01(\r\"Z\n\x1b\x46\x32\x66sBackgroundGcFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0f\n\x07wait_ms\x18\x02 \x01(\r\x12\x0f\n\x07prefree\x18\x03 \x01(\r\x12\x0c\n\x04\x66ree\x18\x04 \x01(\r\"\x8e\x02\n\x16\x46\x32\x66sGcBeginFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0c\n\x04sync\x18\x02 \x01(\r\x12\x12\n\nbackground\x18\x03 \x01(\r\x12\x13\n\x0b\x64irty_nodes\x18\x04 \x01(\x03\x12\x13\n\x0b\x64irty_dents\x18\x05 \x01(\x03\x12\x13\n\x0b\x64irty_imeta\x18\x06 \x01(\x03\x12\x10\n\x08\x66ree_sec\x18\x07 \x01(\r\x12\x10\n\x08\x66ree_seg\x18\x08 \x01(\r\x12\x14\n\x0creserved_seg\x18\t \x01(\x05\x12\x13\n\x0bprefree_seg\x18\n \x01(\r\x12\x0f\n\x07gc_type\x18\x0b \x01(\x05\x12\x10\n\x08no_bg_gc\x18\x0c \x01(\r\x12\x14\n\x0cnr_free_secs\x18\r \x01(\r\"\xe4\x01\n\x14\x46\x32\x66sGcEndFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ret\x18\x02 \x01(\x05\x12\x11\n\tseg_freed\x18\x03 \x01(\x05\x12\x11\n\tsec_freed\x18\x04 \x01(\x05\x12\x13\n\x0b\x64irty_nodes\x18\x05 \x01(\x03\x12\x13\n\x0b\x64irty_dents\x18\x06 \x01(\x03\x12\x13\n\x0b\x64irty_imeta\x18\x07 \x01(\x03\x12\x10\n\x08\x66ree_sec\x18\x08 \x01(\r\x12\x10\n\x08\x66ree_seg\x18\t \x01(\r\x12\x14\n\x0creserved_seg\x18\n \x01(\x05\x12\x13\n\x0bprefree_seg\x18\x0b \x01(\r\"N\n\x19\x46\x61strpcDmaStatFtraceEvent\x12\x0b\n\x03\x63id\x18\x01 \x01(\x05\x12\x0b\n\x03len\x18\x02 \x01(\x03\x12\x17\n\x0ftotal_allocated\x18\x03 \x01(\x04\"D\n\x19\x46\x61strpcDmaFreeFtraceEvent\x12\x0b\n\x03\x63id\x18\x01 \x01(\x05\x12\x0c\n\x04phys\x18\x02 \x01(\x04\x12\x0c\n\x04size\x18\x03 \x01(\x04\"c\n\x1a\x46\x61strpcDmaAllocFtraceEvent\x12\x0b\n\x03\x63id\x18\x01 \x01(\x05\x12\x0c\n\x04phys\x18\x02 \x01(\x04\x12\x0c\n\x04size\x18\x03 \x01(\x04\x12\x0c\n\x04\x61ttr\x18\x04 \x01(\x04\x12\x0e\n\x06mflags\x18\x05 \x01(\x05\"E\n\x1a\x46\x61strpcDmaUnmapFtraceEvent\x12\x0b\n\x03\x63id\x18\x01 \x01(\x05\x12\x0c\n\x04phys\x18\x02 \x01(\x04\x12\x0c\n\x04size\x18\x03 \x01(\x04\"z\n\x18\x46\x61strpcDmaMapFtraceEvent\x12\x0b\n\x03\x63id\x18\x01 \x01(\x05\x12\n\n\x02\x66\x64\x18\x02 \x01(\x05\x12\x0c\n\x04phys\x18\x03 \x01(\x04\x12\x0c\n\x04size\x18\x04 \x01(\x04\x12\x0b\n\x03len\x18\x05 \x01(\x04\x12\x0c\n\x04\x61ttr\x18\x06 \x01(\r\x12\x0e\n\x06mflags\x18\x07 \x01(\x05\"X\n\x14\x46\x65nceInitFtraceEvent\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\r\x12\x0e\n\x06\x64river\x18\x02 \x01(\t\x12\r\n\x05seqno\x18\x03 \x01(\r\x12\x10\n\x08timeline\x18\x04 \x01(\t\"[\n\x17\x46\x65nceDestroyFtraceEvent\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\r\x12\x0e\n\x06\x64river\x18\x02 \x01(\t\x12\r\n\x05seqno\x18\x03 \x01(\r\x12\x10\n\x08timeline\x18\x04 \x01(\t\"`\n\x1c\x46\x65nceEnableSignalFtraceEvent\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\r\x12\x0e\n\x06\x64river\x18\x02 \x01(\t\x12\r\n\x05seqno\x18\x03 \x01(\r\x12\x10\n\x08timeline\x18\x04 \x01(\t\"\\\n\x18\x46\x65nceSignaledFtraceEvent\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\r\x12\x0e\n\x06\x64river\x18\x02 \x01(\t\x12\r\n\x05seqno\x18\x03 \x01(\r\x12\x10\n\x08timeline\x18\x04 \x01(\t\"l\n\"MmFilemapAddToPageCacheFtraceEvent\x12\x0b\n\x03pfn\x18\x01 \x01(\x04\x12\r\n\x05i_ino\x18\x02 \x01(\x04\x12\r\n\x05index\x18\x03 \x01(\x04\x12\r\n\x05s_dev\x18\x04 \x01(\x04\x12\x0c\n\x04page\x18\x05 \x01(\x04\"q\n\'MmFilemapDeleteFromPageCacheFtraceEvent\x12\x0b\n\x03pfn\x18\x01 \x01(\x04\x12\r\n\x05i_ino\x18\x02 \x01(\x04\x12\r\n\x05index\x18\x03 \x01(\x04\x12\r\n\x05s_dev\x18\x04 \x01(\x04\x12\x0c\n\x04page\x18\x05 \x01(\x04\"E\n\x14\x44oSysOpenFtraceEvent\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\r\n\x05\x66lags\x18\x02 \x01(\x05\x12\x0c\n\x04mode\x18\x03 \x01(\x05\"\'\n\x13OpenExecFtraceEvent\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\"+\n\x10PrintFtraceEvent\x12\n\n\x02ip\x18\x01 \x01(\x04\x12\x0b\n\x03\x62uf\x18\x02 \x01(\t\"8\n\x19\x46uncgraphEntryFtraceEvent\x12\r\n\x05\x64\x65pth\x18\x01 \x01(\x05\x12\x0c\n\x04\x66unc\x18\x02 \x01(\x04\"k\n\x18\x46uncgraphExitFtraceEvent\x12\x10\n\x08\x63\x61lltime\x18\x01 \x01(\x04\x12\r\n\x05\x64\x65pth\x18\x02 \x01(\x05\x12\x0c\n\x04\x66unc\x18\x03 \x01(\x04\x12\x0f\n\x07overrun\x18\x04 \x01(\x04\x12\x0f\n\x07rettime\x18\x05 \x01(\x04\"t\n\x1e\x46wtpPerfettoCounterFtraceEvent\x12\x11\n\ttimestamp\x18\x01 \x01(\x04\x12\x10\n\x08track_id\x18\x02 \x01(\r\x12\x10\n\x08\x63\x61tegory\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\r\n\x05value\x18\x05 \x01(\r\"X\n\x1eG2dTracingMarkWriteFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x0c\n\x04type\x18\x05 \x01(\r\x12\r\n\x05value\x18\x06 \x01(\x05\"\xc2\x01\n\x12GenericFtraceEvent\x12\x12\n\nevent_name\x18\x01 \x01(\t\x12\x38\n\x05\x66ield\x18\x02 \x03(\x0b\x32).perfetto.protos.GenericFtraceEvent.Field\x1a^\n\x05\x46ield\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\tstr_value\x18\x03 \x01(\tH\x00\x12\x13\n\tint_value\x18\x04 \x01(\x03H\x00\x12\x14\n\nuint_value\x18\x05 \x01(\x04H\x00\x42\x07\n\x05value\"\xbe\x01\n\x0bKprobeEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x35\n\x04type\x18\x02 \x01(\x0e\x32\'.perfetto.protos.KprobeEvent.KprobeType\"j\n\nKprobeType\x12\x17\n\x13KPROBE_TYPE_UNKNOWN\x10\x00\x12\x15\n\x11KPROBE_TYPE_BEGIN\x10\x01\x12\x13\n\x0fKPROBE_TYPE_END\x10\x02\x12\x17\n\x13KPROBE_TYPE_INSTANT\x10\x03\"=\n\x19GoogleIccEventFtraceEvent\x12\r\n\x05\x65vent\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\"=\n\x19GoogleIrmEventFtraceEvent\x12\r\n\x05\x65vent\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\"C\n\x16GpuMemTotalFtraceEvent\x12\x0e\n\x06gpu_id\x18\x01 \x01(\r\x12\x0b\n\x03pid\x18\x02 \x01(\r\x12\x0c\n\x04size\x18\x03 \x01(\x04\"z\n\x16\x44rmSchedJobFtraceEvent\x12\x0e\n\x06\x65ntity\x18\x01 \x01(\x04\x12\r\n\x05\x66\x65nce\x18\x02 \x01(\x04\x12\x14\n\x0chw_job_count\x18\x03 \x01(\x05\x12\n\n\x02id\x18\x04 \x01(\x04\x12\x11\n\tjob_count\x18\x05 \x01(\r\x12\x0c\n\x04name\x18\x06 \x01(\t\"x\n\x14\x44rmRunJobFtraceEvent\x12\x0e\n\x06\x65ntity\x18\x01 \x01(\x04\x12\r\n\x05\x66\x65nce\x18\x02 \x01(\x04\x12\x14\n\x0chw_job_count\x18\x03 \x01(\x05\x12\n\n\x02id\x18\x04 \x01(\x04\x12\x11\n\tjob_count\x18\x05 \x01(\r\x12\x0c\n\x04name\x18\x06 \x01(\t\".\n\x1d\x44rmSchedProcessJobFtraceEvent\x12\r\n\x05\x66\x65nce\x18\x01 \x01(\x04\"f\n\x1c\x44rmSchedJobAddDepFtraceEvent\x12\x15\n\rfence_context\x18\x01 \x01(\x04\x12\x13\n\x0b\x66\x65nce_seqno\x18\x02 \x01(\x04\x12\x0b\n\x03\x63tx\x18\x03 \x01(\x04\x12\r\n\x05seqno\x18\x04 \x01(\x04\"H\n\x1a\x44rmSchedJobDoneFtraceEvent\x12\x15\n\rfence_context\x18\x01 \x01(\x04\x12\x13\n\x0b\x66\x65nce_seqno\x18\x02 \x01(\x04\"\xa0\x01\n\x1b\x44rmSchedJobQueueFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tjob_count\x18\x02 \x01(\r\x12\x14\n\x0chw_job_count\x18\x03 \x01(\x05\x12\x0b\n\x03\x64\x65v\x18\x04 \x01(\t\x12\x15\n\rfence_context\x18\x05 \x01(\x04\x12\x13\n\x0b\x66\x65nce_seqno\x18\x06 \x01(\x04\x12\x11\n\tclient_id\x18\x07 \x01(\x04\"\x9e\x01\n\x19\x44rmSchedJobRunFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tjob_count\x18\x02 \x01(\r\x12\x14\n\x0chw_job_count\x18\x03 \x01(\x05\x12\x0b\n\x03\x64\x65v\x18\x04 \x01(\t\x12\x15\n\rfence_context\x18\x05 \x01(\x04\x12\x13\n\x0b\x66\x65nce_seqno\x18\x06 \x01(\x04\x12\x11\n\tclient_id\x18\x07 \x01(\x04\"m\n#DrmSchedJobUnschedulableFtraceEvent\x12\x15\n\rfence_context\x18\x01 \x01(\x04\x12\x13\n\x0b\x66\x65nce_seqno\x18\x02 \x01(\x04\x12\x0b\n\x03\x63tx\x18\x03 \x01(\x04\x12\r\n\x05seqno\x18\x04 \x01(\x04\"\x15\n\x13HypEnterFtraceEvent\"\x14\n\x12HypExitFtraceEvent\"3\n\x14HostHcallFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0f\n\x07invalid\x18\x02 \x01(\r\"3\n\x12HostSmcFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x11\n\tforwarded\x18\x02 \x01(\r\"4\n\x17HostMemAbortFtraceEvent\x12\x0b\n\x03\x65sr\x18\x01 \x01(\x04\x12\x0c\n\x04\x61\x64\x64r\x18\x02 \x01(\x04\"\x87\x01\n\x16HostFfaCallFtraceEvent\x12\x0f\n\x07\x66unc_id\x18\x01 \x01(\x04\x12\x0e\n\x06res_a1\x18\x02 \x01(\x04\x12\x0e\n\x06res_a2\x18\x03 \x01(\x04\x12\x0e\n\x06res_a3\x18\x04 \x01(\x04\x12\x0e\n\x06res_a4\x18\x05 \x01(\x04\x12\x0f\n\x07handled\x18\x06 \x01(\x05\x12\x0b\n\x03\x65rr\x18\x07 \x01(\x05\"?\n\x15IommuIdmapFtraceEvent\x12\x0c\n\x04\x66rom\x18\x01 \x01(\x04\x12\n\n\x02to\x18\x02 \x01(\x04\x12\x0c\n\x04prot\x18\x03 \x01(\x05\"7\n\x19PsciMemProtectFtraceEvent\x12\r\n\x05\x63ount\x18\x01 \x01(\x04\x12\x0b\n\x03was\x18\x02 \x01(\x04\"=\n\x1eHypervisorHostHcallFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0f\n\x07invalid\x18\x02 \x01(\r\"=\n\x1cHypervisorHostSmcFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x11\n\tforwarded\x18\x02 \x01(\r\"\x1e\n\x1cHypervisorHypExitFtraceEvent\"I\n\x1fHypervisorIommuIdmapFtraceEvent\x12\x0c\n\x04\x66rom\x18\x01 \x01(\x04\x12\n\n\x02to\x18\x02 \x01(\x04\x12\x0c\n\x04prot\x18\x03 \x01(\x05\"A\n#HypervisorPsciMemProtectFtraceEvent\x12\r\n\x05\x63ount\x18\x01 \x01(\x04\x12\x0b\n\x03was\x18\x02 \x01(\x04\">\n!HypervisorHostMemAbortFtraceEvent\x12\x0b\n\x03\x65sr\x18\x01 \x01(\x04\x12\x0c\n\x04\x61\x64\x64r\x18\x02 \x01(\x04\"\x1f\n\x1dHypervisorHypEnterFtraceEvent\"6\n\'HypervisorIommuIdmapCompleteFtraceEvent\x12\x0b\n\x03map\x18\x01 \x01(\r\"3\n$HypervisorVcpuIllegalTrapFtraceEvent\x12\x0b\n\x03\x65sr\x18\x01 \x01(\x04\"b\n\x12I2cReadFtraceEvent\x12\x12\n\nadapter_nr\x18\x01 \x01(\x05\x12\x0e\n\x06msg_nr\x18\x02 \x01(\r\x12\x0c\n\x04\x61\x64\x64r\x18\x03 \x01(\r\x12\r\n\x05\x66lags\x18\x04 \x01(\r\x12\x0b\n\x03len\x18\x05 \x01(\r\"p\n\x13I2cWriteFtraceEvent\x12\x12\n\nadapter_nr\x18\x01 \x01(\x05\x12\x0e\n\x06msg_nr\x18\x02 \x01(\r\x12\x0c\n\x04\x61\x64\x64r\x18\x03 \x01(\r\x12\r\n\x05\x66lags\x18\x04 \x01(\r\x12\x0b\n\x03len\x18\x05 \x01(\r\x12\x0b\n\x03\x62uf\x18\x06 \x01(\r\"H\n\x14I2cResultFtraceEvent\x12\x12\n\nadapter_nr\x18\x01 \x01(\x05\x12\x0f\n\x07nr_msgs\x18\x02 \x01(\r\x12\x0b\n\x03ret\x18\x03 \x01(\x05\"p\n\x13I2cReplyFtraceEvent\x12\x12\n\nadapter_nr\x18\x01 \x01(\x05\x12\x0e\n\x06msg_nr\x18\x02 \x01(\r\x12\x0c\n\x04\x61\x64\x64r\x18\x03 \x01(\r\x12\r\n\x05\x66lags\x18\x04 \x01(\r\x12\x0b\n\x03len\x18\x05 \x01(\r\x12\x0b\n\x03\x62uf\x18\x06 \x01(\r\"j\n\x14SmbusReadFtraceEvent\x12\x12\n\nadapter_nr\x18\x01 \x01(\x05\x12\r\n\x05\x66lags\x18\x02 \x01(\r\x12\x0c\n\x04\x61\x64\x64r\x18\x03 \x01(\r\x12\x0f\n\x07\x63ommand\x18\x04 \x01(\r\x12\x10\n\x08protocol\x18\x05 \x01(\r\"x\n\x15SmbusWriteFtraceEvent\x12\x12\n\nadapter_nr\x18\x01 \x01(\x05\x12\x0c\n\x04\x61\x64\x64r\x18\x02 \x01(\r\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x0f\n\x07\x63ommand\x18\x04 \x01(\r\x12\x0b\n\x03len\x18\x05 \x01(\r\x12\x10\n\x08protocol\x18\x06 \x01(\r\"\x8d\x01\n\x16SmbusResultFtraceEvent\x12\x12\n\nadapter_nr\x18\x01 \x01(\x05\x12\x0c\n\x04\x61\x64\x64r\x18\x02 \x01(\r\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x12\n\nread_write\x18\x04 \x01(\r\x12\x0f\n\x07\x63ommand\x18\x05 \x01(\r\x12\x0b\n\x03res\x18\x06 \x01(\x05\x12\x10\n\x08protocol\x18\x07 \x01(\r\"x\n\x15SmbusReplyFtraceEvent\x12\x12\n\nadapter_nr\x18\x01 \x01(\x05\x12\x0c\n\x04\x61\x64\x64r\x18\x02 \x01(\r\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x0f\n\x07\x63ommand\x18\x04 \x01(\r\x12\x0b\n\x03len\x18\x05 \x01(\r\x12\x10\n\x08protocol\x18\x06 \x01(\r\"M\n\x12IonStatFtraceEvent\x12\x11\n\tbuffer_id\x18\x01 \x01(\r\x12\x0b\n\x03len\x18\x02 \x01(\x03\x12\x17\n\x0ftotal_allocated\x18\x03 \x01(\x04\"%\n\x13IpiEntryFtraceEvent\x12\x0e\n\x06reason\x18\x01 \x01(\t\"$\n\x12IpiExitFtraceEvent\x12\x0e\n\x06reason\x18\x01 \x01(\t\":\n\x13IpiRaiseFtraceEvent\x12\x13\n\x0btarget_cpus\x18\x01 \x01(\r\x12\x0e\n\x06reason\x18\x02 \x01(\t\"&\n\x17SoftirqEntryFtraceEvent\x12\x0b\n\x03vec\x18\x01 \x01(\r\"%\n\x16SoftirqExitFtraceEvent\x12\x0b\n\x03vec\x18\x01 \x01(\r\"&\n\x17SoftirqRaiseFtraceEvent\x12\x0b\n\x03vec\x18\x01 \x01(\r\"H\n\x1aIrqHandlerEntryFtraceEvent\x12\x0b\n\x03irq\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0f\n\x07handler\x18\x03 \x01(\r\"5\n\x19IrqHandlerExitFtraceEvent\x12\x0b\n\x03irq\x18\x01 \x01(\x05\x12\x0b\n\x03ret\x18\x02 \x01(\x05\",\n\x1aLocalTimerEntryFtraceEvent\x12\x0e\n\x06vector\x18\x01 \x01(\x05\"+\n\x19LocalTimerExitFtraceEvent\x12\x0e\n\x06vector\x18\x01 \x01(\x05\"?\n\x1bKgslGpuFrequencyFtraceEvent\x12\x10\n\x08gpu_freq\x18\x01 \x01(\r\x12\x0e\n\x06gpu_id\x18\x02 \x01(\r\"q\n#KgslAdrenoCmdbatchQueuedFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\ttimestamp\x18\x02 \x01(\r\x12\x0e\n\x06queued\x18\x03 \x01(\r\x12\r\n\x05\x66lags\x18\x04 \x01(\r\x12\x0c\n\x04prio\x18\x05 \x01(\r\"\xf9\x01\n&KgslAdrenoCmdbatchSubmittedFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\ttimestamp\x18\x02 \x01(\r\x12\x10\n\x08inflight\x18\x03 \x01(\x03\x12\r\n\x05\x66lags\x18\x04 \x01(\r\x12\r\n\x05ticks\x18\x05 \x01(\x04\x12\x0c\n\x04secs\x18\x06 \x01(\x04\x12\r\n\x05usecs\x18\x07 \x01(\x04\x12\x0c\n\x04prio\x18\x08 \x01(\x05\x12\r\n\x05rb_id\x18\t \x01(\x05\x12\x0c\n\x04rptr\x18\n \x01(\r\x12\x0c\n\x04wptr\x18\x0b \x01(\r\x12\x12\n\nq_inflight\x18\x0c \x01(\x05\x12\x16\n\x0e\x64ispatch_queue\x18\r \x01(\x05\"_\n!KgslAdrenoCmdbatchSyncFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\ttimestamp\x18\x02 \x01(\r\x12\r\n\x05ticks\x18\x03 \x01(\x04\x12\x0c\n\x04prio\x18\x04 \x01(\x05\"\xd5\x02\n$KgslAdrenoCmdbatchRetiredFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\ttimestamp\x18\x02 \x01(\r\x12\x10\n\x08inflight\x18\x03 \x01(\x03\x12\x10\n\x08recovery\x18\x04 \x01(\r\x12\r\n\x05\x66lags\x18\x05 \x01(\r\x12\r\n\x05start\x18\x06 \x01(\x04\x12\x0e\n\x06retire\x18\x07 \x01(\x04\x12\x0c\n\x04prio\x18\x08 \x01(\x05\x12\r\n\x05rb_id\x18\t \x01(\x05\x12\x0c\n\x04rptr\x18\n \x01(\r\x12\x0c\n\x04wptr\x18\x0b \x01(\r\x12\x12\n\nq_inflight\x18\x0c \x01(\x05\x12\x16\n\x0e\x66\x61ult_recovery\x18\r \x01(\x04\x12\x16\n\x0e\x64ispatch_queue\x18\x0e \x01(\r\x12\x17\n\x0fsubmitted_to_rb\x18\x0f \x01(\x04\x12\x16\n\x0eretired_on_gmu\x18\x10 \x01(\x04\x12\x0e\n\x06\x61\x63tive\x18\x11 \x01(\x04\"A\n\x1d\x41llocPagesIommuEndFtraceEvent\x12\x11\n\tgfp_flags\x18\x01 \x01(\r\x12\r\n\x05order\x18\x02 \x01(\r\"B\n\x1e\x41llocPagesIommuFailFtraceEvent\x12\x11\n\tgfp_flags\x18\x01 \x01(\r\x12\r\n\x05order\x18\x02 \x01(\r\"C\n\x1f\x41llocPagesIommuStartFtraceEvent\x12\x11\n\tgfp_flags\x18\x01 \x01(\r\x12\r\n\x05order\x18\x02 \x01(\r\"?\n\x1b\x41llocPagesSysEndFtraceEvent\x12\x11\n\tgfp_flags\x18\x01 \x01(\r\x12\r\n\x05order\x18\x02 \x01(\r\"@\n\x1c\x41llocPagesSysFailFtraceEvent\x12\x11\n\tgfp_flags\x18\x01 \x01(\r\x12\r\n\x05order\x18\x02 \x01(\r\"A\n\x1d\x41llocPagesSysStartFtraceEvent\x12\x11\n\tgfp_flags\x18\x01 \x01(\r\x12\r\n\x05order\x18\x02 \x01(\r\"3\n\"DmaAllocContiguousRetryFtraceEvent\x12\r\n\x05tries\x18\x01 \x01(\x05\"S\n\x18IommuMapRangeFtraceEvent\x12\x12\n\nchunk_size\x18\x01 \x01(\x04\x12\x0b\n\x03len\x18\x02 \x01(\x04\x12\n\n\x02pa\x18\x03 \x01(\x04\x12\n\n\x02va\x18\x04 \x01(\x04\"f\n\"IommuSecPtblMapRangeEndFtraceEvent\x12\x0b\n\x03len\x18\x01 \x01(\x04\x12\x0b\n\x03num\x18\x02 \x01(\x05\x12\n\n\x02pa\x18\x03 \x01(\r\x12\x0e\n\x06sec_id\x18\x04 \x01(\x05\x12\n\n\x02va\x18\x05 \x01(\x04\"h\n$IommuSecPtblMapRangeStartFtraceEvent\x12\x0b\n\x03len\x18\x01 \x01(\x04\x12\x0b\n\x03num\x18\x02 \x01(\x05\x12\n\n\x02pa\x18\x03 \x01(\r\x12\x0e\n\x06sec_id\x18\x04 \x01(\x05\x12\n\n\x02va\x18\x05 \x01(\x04\"p\n\x1cIonAllocBufferEndFtraceEvent\x12\x13\n\x0b\x63lient_name\x18\x01 \x01(\t\x12\r\n\x05\x66lags\x18\x02 \x01(\r\x12\x11\n\theap_name\x18\x03 \x01(\t\x12\x0b\n\x03len\x18\x04 \x01(\x04\x12\x0c\n\x04mask\x18\x05 \x01(\r\"\x80\x01\n\x1dIonAllocBufferFailFtraceEvent\x12\x13\n\x0b\x63lient_name\x18\x01 \x01(\t\x12\r\n\x05\x65rror\x18\x02 \x01(\x03\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x11\n\theap_name\x18\x04 \x01(\t\x12\x0b\n\x03len\x18\x05 \x01(\x04\x12\x0c\n\x04mask\x18\x06 \x01(\r\"\x84\x01\n!IonAllocBufferFallbackFtraceEvent\x12\x13\n\x0b\x63lient_name\x18\x01 \x01(\t\x12\r\n\x05\x65rror\x18\x02 \x01(\x03\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x11\n\theap_name\x18\x04 \x01(\t\x12\x0b\n\x03len\x18\x05 \x01(\x04\x12\x0c\n\x04mask\x18\x06 \x01(\r\"r\n\x1eIonAllocBufferStartFtraceEvent\x12\x13\n\x0b\x63lient_name\x18\x01 \x01(\t\x12\r\n\x05\x66lags\x18\x02 \x01(\r\x12\x11\n\theap_name\x18\x03 \x01(\t\x12\x0b\n\x03len\x18\x04 \x01(\x04\x12\x0c\n\x04mask\x18\x05 \x01(\r\"+\n\x1aIonCpAllocRetryFtraceEvent\x12\r\n\x05tries\x18\x01 \x01(\x05\"_\n\x1fIonCpSecureBufferEndFtraceEvent\x12\r\n\x05\x61lign\x18\x01 \x01(\x04\x12\r\n\x05\x66lags\x18\x02 \x01(\x04\x12\x11\n\theap_name\x18\x03 \x01(\t\x12\x0b\n\x03len\x18\x04 \x01(\x04\"a\n!IonCpSecureBufferStartFtraceEvent\x12\r\n\x05\x61lign\x18\x01 \x01(\x04\x12\r\n\x05\x66lags\x18\x02 \x01(\x04\x12\x11\n\theap_name\x18\x03 \x01(\t\x12\x0b\n\x03len\x18\x04 \x01(\x04\"(\n\x19IonPrefetchingFtraceEvent\x12\x0b\n\x03len\x18\x01 \x01(\x04\"[\n#IonSecureCmaAddToPoolEndFtraceEvent\x12\x13\n\x0bis_prefetch\x18\x01 \x01(\r\x12\x0b\n\x03len\x18\x02 \x01(\x04\x12\x12\n\npool_total\x18\x03 \x01(\x05\"]\n%IonSecureCmaAddToPoolStartFtraceEvent\x12\x13\n\x0bis_prefetch\x18\x01 \x01(\r\x12\x0b\n\x03len\x18\x02 \x01(\x04\x12\x12\n\npool_total\x18\x03 \x01(\x05\"b\n\"IonSecureCmaAllocateEndFtraceEvent\x12\r\n\x05\x61lign\x18\x01 \x01(\x04\x12\r\n\x05\x66lags\x18\x02 \x01(\x04\x12\x11\n\theap_name\x18\x03 \x01(\t\x12\x0b\n\x03len\x18\x04 \x01(\x04\"d\n$IonSecureCmaAllocateStartFtraceEvent\x12\r\n\x05\x61lign\x18\x01 \x01(\x04\x12\r\n\x05\x66lags\x18\x02 \x01(\x04\x12\x11\n\theap_name\x18\x03 \x01(\t\x12\x0b\n\x03len\x18\x04 \x01(\x04\"R\n$IonSecureCmaShrinkPoolEndFtraceEvent\x12\x14\n\x0c\x64rained_size\x18\x01 \x01(\x04\x12\x14\n\x0cskipped_size\x18\x02 \x01(\x04\"T\n&IonSecureCmaShrinkPoolStartFtraceEvent\x12\x14\n\x0c\x64rained_size\x18\x01 \x01(\x04\x12\x14\n\x0cskipped_size\x18\x02 \x01(\x04\"2\n\x10KfreeFtraceEvent\x12\x11\n\tcall_site\x18\x01 \x01(\x04\x12\x0b\n\x03ptr\x18\x02 \x01(\x04\"o\n\x12KmallocFtraceEvent\x12\x13\n\x0b\x62ytes_alloc\x18\x01 \x01(\x04\x12\x11\n\tbytes_req\x18\x02 \x01(\x04\x12\x11\n\tcall_site\x18\x03 \x01(\x04\x12\x11\n\tgfp_flags\x18\x04 \x01(\r\x12\x0b\n\x03ptr\x18\x05 \x01(\x04\"\x81\x01\n\x16KmallocNodeFtraceEvent\x12\x13\n\x0b\x62ytes_alloc\x18\x01 \x01(\x04\x12\x11\n\tbytes_req\x18\x02 \x01(\x04\x12\x11\n\tcall_site\x18\x03 \x01(\x04\x12\x11\n\tgfp_flags\x18\x04 \x01(\r\x12\x0c\n\x04node\x18\x05 \x01(\x05\x12\x0b\n\x03ptr\x18\x06 \x01(\x04\"v\n\x19KmemCacheAllocFtraceEvent\x12\x13\n\x0b\x62ytes_alloc\x18\x01 \x01(\x04\x12\x11\n\tbytes_req\x18\x02 \x01(\x04\x12\x11\n\tcall_site\x18\x03 \x01(\x04\x12\x11\n\tgfp_flags\x18\x04 \x01(\r\x12\x0b\n\x03ptr\x18\x05 \x01(\x04\"\x88\x01\n\x1dKmemCacheAllocNodeFtraceEvent\x12\x13\n\x0b\x62ytes_alloc\x18\x01 \x01(\x04\x12\x11\n\tbytes_req\x18\x02 \x01(\x04\x12\x11\n\tcall_site\x18\x03 \x01(\x04\x12\x11\n\tgfp_flags\x18\x04 \x01(\r\x12\x0c\n\x04node\x18\x05 \x01(\x05\x12\x0b\n\x03ptr\x18\x06 \x01(\x04\":\n\x18KmemCacheFreeFtraceEvent\x12\x11\n\tcall_site\x18\x01 \x01(\x04\x12\x0b\n\x03ptr\x18\x02 \x01(\x04\"*\n\x1aMigratePagesEndFtraceEvent\x12\x0c\n\x04mode\x18\x01 \x01(\x05\",\n\x1cMigratePagesStartFtraceEvent\x12\x0c\n\x04mode\x18\x01 \x01(\x05\"(\n\x17MigrateRetryFtraceEvent\x12\r\n\x05tries\x18\x01 \x01(\x05\"j\n\x16MmPageAllocFtraceEvent\x12\x11\n\tgfp_flags\x18\x01 \x01(\r\x12\x13\n\x0bmigratetype\x18\x02 \x01(\x05\x12\r\n\x05order\x18\x03 \x01(\r\x12\x0c\n\x04page\x18\x04 \x01(\x04\x12\x0b\n\x03pfn\x18\x05 \x01(\x04\"\xba\x01\n\x1dMmPageAllocExtfragFtraceEvent\x12\x19\n\x11\x61lloc_migratetype\x18\x01 \x01(\x05\x12\x13\n\x0b\x61lloc_order\x18\x02 \x01(\x05\x12\x1c\n\x14\x66\x61llback_migratetype\x18\x03 \x01(\x05\x12\x16\n\x0e\x66\x61llback_order\x18\x04 \x01(\x05\x12\x0c\n\x04page\x18\x05 \x01(\x04\x12\x18\n\x10\x63hange_ownership\x18\x06 \x01(\x05\x12\x0b\n\x03pfn\x18\x07 \x01(\x04\"a\n MmPageAllocZoneLockedFtraceEvent\x12\x13\n\x0bmigratetype\x18\x01 \x01(\x05\x12\r\n\x05order\x18\x02 \x01(\r\x12\x0c\n\x04page\x18\x03 \x01(\x04\x12\x0b\n\x03pfn\x18\x04 \x01(\x04\"A\n\x15MmPageFreeFtraceEvent\x12\r\n\x05order\x18\x01 \x01(\r\x12\x0c\n\x04page\x18\x02 \x01(\x04\x12\x0b\n\x03pfn\x18\x03 \x01(\x04\"G\n\x1cMmPageFreeBatchedFtraceEvent\x12\x0c\n\x04\x63old\x18\x01 \x01(\x05\x12\x0c\n\x04page\x18\x02 \x01(\x04\x12\x0b\n\x03pfn\x18\x03 \x01(\x04\"[\n\x1aMmPagePcpuDrainFtraceEvent\x12\x13\n\x0bmigratetype\x18\x01 \x01(\x05\x12\r\n\x05order\x18\x02 \x01(\r\x12\x0c\n\x04page\x18\x03 \x01(\x04\x12\x0b\n\x03pfn\x18\x04 \x01(\x04\"O\n\x12RssStatFtraceEvent\x12\x0e\n\x06member\x18\x01 \x01(\x05\x12\x0c\n\x04size\x18\x02 \x01(\x03\x12\x0c\n\x04\x63urr\x18\x03 \x01(\r\x12\r\n\x05mm_id\x18\x04 \x01(\r\"S\n\x18IonHeapShrinkFtraceEvent\x12\x11\n\theap_name\x18\x01 \x01(\t\x12\x0b\n\x03len\x18\x02 \x01(\x04\x12\x17\n\x0ftotal_allocated\x18\x03 \x01(\x03\"Q\n\x16IonHeapGrowFtraceEvent\x12\x11\n\theap_name\x18\x01 \x01(\t\x12\x0b\n\x03len\x18\x02 \x01(\x04\x12\x17\n\x0ftotal_allocated\x18\x03 \x01(\x03\"7\n\x1aIonBufferCreateFtraceEvent\x12\x0c\n\x04\x61\x64\x64r\x18\x01 \x01(\x04\x12\x0b\n\x03len\x18\x02 \x01(\x04\"8\n\x1bIonBufferDestroyFtraceEvent\x12\x0c\n\x04\x61\x64\x64r\x18\x01 \x01(\x04\x12\x0b\n\x03len\x18\x02 \x01(\x04\"\x99\x01\n(MmAllocContigMigrateRangeInfoFtraceEvent\x12\r\n\x05start\x18\x01 \x01(\x04\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x04\x12\x13\n\x0bnr_migrated\x18\x03 \x01(\x04\x12\x14\n\x0cnr_reclaimed\x18\x04 \x01(\x04\x12\x11\n\tnr_mapped\x18\x05 \x01(\x04\x12\x13\n\x0bmigratetype\x18\x06 \x01(\x05\"I\n\x18\x44mabufRssStatFtraceEvent\x12\x0b\n\x03rss\x18\x01 \x01(\x04\x12\x11\n\trss_delta\x18\x02 \x01(\x03\x12\r\n\x05i_ino\x18\x03 \x01(\x04\"(\n\x19KvmAccessFaultFtraceEvent\x12\x0b\n\x03ipa\x18\x01 \x01(\x04\"4\n\x14KvmAckIrqFtraceEvent\x12\x0f\n\x07irqchip\x18\x01 \x01(\r\x12\x0b\n\x03pin\x18\x02 \x01(\r\"2\n\x14KvmAgeHvaFtraceEvent\x12\x0b\n\x03\x65nd\x18\x01 \x01(\x04\x12\r\n\x05start\x18\x02 \x01(\x04\"T\n\x15KvmAgePageFtraceEvent\x12\x0b\n\x03gfn\x18\x01 \x01(\x04\x12\x0b\n\x03hva\x18\x02 \x01(\x04\x12\r\n\x05level\x18\x03 \x01(\r\x12\x12\n\nreferenced\x18\x04 \x01(\r\"2\n\x1bKvmArmClearDebugFtraceEvent\x12\x13\n\x0bguest_debug\x18\x01 \x01(\r\"9\n\x1aKvmArmSetDreg32FtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r\"7\n\x1aKvmArmSetRegsetFtraceEvent\x12\x0b\n\x03len\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\"@\n\x1bKvmArmSetupDebugFtraceEvent\x12\x13\n\x0bguest_debug\x18\x01 \x01(\r\x12\x0c\n\x04vcpu\x18\x02 \x01(\x04\"&\n\x13KvmEntryFtraceEvent\x12\x0f\n\x07vcpu_pc\x18\x01 \x01(\x04\"B\n\x12KvmExitFtraceEvent\x12\x0e\n\x06\x65sr_ec\x18\x01 \x01(\r\x12\x0b\n\x03ret\x18\x02 \x01(\x05\x12\x0f\n\x07vcpu_pc\x18\x03 \x01(\x04\"!\n\x11KvmFpuFtraceEvent\x12\x0c\n\x04load\x18\x01 \x01(\r\"o\n\x19KvmGetTimerMapFtraceEvent\x12\x15\n\rdirect_ptimer\x18\x01 \x01(\x05\x12\x15\n\rdirect_vtimer\x18\x02 \x01(\x05\x12\x13\n\x0b\x65mul_ptimer\x18\x03 \x01(\x05\x12\x0f\n\x07vcpu_id\x18\x04 \x01(\x04\"T\n\x18KvmGuestFaultFtraceEvent\x12\x0b\n\x03hsr\x18\x01 \x01(\x04\x12\r\n\x05hxfar\x18\x02 \x01(\x04\x12\x0b\n\x03ipa\x18\x03 \x01(\x04\x12\x0f\n\x07vcpu_pc\x18\x04 \x01(\x04\")\n\x1aKvmHandleSysRegFtraceEvent\x12\x0b\n\x03hsr\x18\x01 \x01(\x04\"B\n\x16KvmHvcArm64FtraceEvent\x12\x0b\n\x03imm\x18\x01 \x01(\x04\x12\n\n\x02r0\x18\x02 \x01(\x04\x12\x0f\n\x07vcpu_pc\x18\x03 \x01(\x04\"W\n\x15KvmIrqLineFtraceEvent\x12\x0f\n\x07irq_num\x18\x01 \x01(\x05\x12\r\n\x05level\x18\x02 \x01(\x05\x12\x0c\n\x04type\x18\x03 \x01(\r\x12\x10\n\x08vcpu_idx\x18\x04 \x01(\x05\"I\n\x12KvmMmioFtraceEvent\x12\x0b\n\x03gpa\x18\x01 \x01(\x04\x12\x0b\n\x03len\x18\x02 \x01(\r\x12\x0c\n\x04type\x18\x03 \x01(\r\x12\x0b\n\x03val\x18\x04 \x01(\x04\"I\n\x19KvmMmioEmulateFtraceEvent\x12\x0c\n\x04\x63psr\x18\x01 \x01(\x04\x12\r\n\x05instr\x18\x02 \x01(\x04\x12\x0f\n\x07vcpu_pc\x18\x03 \x01(\x04\"@\n\x1bKvmSetGuestDebugFtraceEvent\x12\x13\n\x0bguest_debug\x18\x01 \x01(\r\x12\x0c\n\x04vcpu\x18\x02 \x01(\x04\"I\n\x14KvmSetIrqFtraceEvent\x12\x0b\n\x03gsi\x18\x01 \x01(\r\x12\x15\n\rirq_source_id\x18\x02 \x01(\x05\x12\r\n\x05level\x18\x03 \x01(\x05\"\'\n\x18KvmSetSpteHvaFtraceEvent\x12\x0b\n\x03hva\x18\x01 \x01(\x04\";\n\x19KvmSetWayFlushFtraceEvent\x12\r\n\x05\x63\x61\x63he\x18\x01 \x01(\r\x12\x0f\n\x07vcpu_pc\x18\x02 \x01(\x04\"\x8b\x01\n\x17KvmSysAccessFtraceEvent\x12\x0b\n\x03\x43Rm\x18\x01 \x01(\r\x12\x0b\n\x03\x43Rn\x18\x02 \x01(\r\x12\x0b\n\x03Op0\x18\x03 \x01(\r\x12\x0b\n\x03Op1\x18\x04 \x01(\r\x12\x0b\n\x03Op2\x18\x05 \x01(\r\x12\x10\n\x08is_write\x18\x06 \x01(\r\x12\x0c\n\x04name\x18\x07 \x01(\t\x12\x0f\n\x07vcpu_pc\x18\x08 \x01(\x04\"\'\n\x18KvmTestAgeHvaFtraceEvent\x12\x0b\n\x03hva\x18\x01 \x01(\x04\"D\n\x1aKvmTimerEmulateFtraceEvent\x12\x13\n\x0bshould_fire\x18\x01 \x01(\r\x12\x11\n\ttimer_idx\x18\x02 \x01(\x05\"5\n KvmTimerHrtimerExpireFtraceEvent\x12\x11\n\ttimer_idx\x18\x01 \x01(\x05\"O\n\x1fKvmTimerRestoreStateFtraceEvent\x12\x0b\n\x03\x63tl\x18\x01 \x01(\x04\x12\x0c\n\x04\x63val\x18\x02 \x01(\x04\x12\x11\n\ttimer_idx\x18\x03 \x01(\x05\"L\n\x1cKvmTimerSaveStateFtraceEvent\x12\x0b\n\x03\x63tl\x18\x01 \x01(\x04\x12\x0c\n\x04\x63val\x18\x02 \x01(\x04\x12\x11\n\ttimer_idx\x18\x03 \x01(\x05\"K\n\x1cKvmTimerUpdateIrqFtraceEvent\x12\x0b\n\x03irq\x18\x01 \x01(\r\x12\r\n\x05level\x18\x02 \x01(\x05\x12\x0f\n\x07vcpu_id\x18\x03 \x01(\x04\"F\n\x19KvmToggleCacheFtraceEvent\x12\x0b\n\x03now\x18\x01 \x01(\r\x12\x0f\n\x07vcpu_pc\x18\x02 \x01(\x04\x12\x0b\n\x03was\x18\x03 \x01(\r\"9\n\x1bKvmUnmapHvaRangeFtraceEvent\x12\x0b\n\x03\x65nd\x18\x01 \x01(\x04\x12\r\n\x05start\x18\x02 \x01(\x04\"-\n\x1bKvmUserspaceExitFtraceEvent\x12\x0e\n\x06reason\x18\x01 \x01(\r\"E\n\x18KvmVcpuWakeupFtraceEvent\x12\n\n\x02ns\x18\x01 \x01(\x04\x12\r\n\x05valid\x18\x02 \x01(\r\x12\x0e\n\x06waited\x18\x03 \x01(\r\"9\n\x16KvmWfxArm64FtraceEvent\x12\x0e\n\x06is_wfe\x18\x01 \x01(\r\x12\x0f\n\x07vcpu_pc\x18\x02 \x01(\x04\"T\n\x12TrapRegFtraceEvent\x12\n\n\x02\x66n\x18\x01 \x01(\t\x12\x10\n\x08is_write\x18\x02 \x01(\r\x12\x0b\n\x03reg\x18\x03 \x01(\x05\x12\x13\n\x0bwrite_value\x18\x04 \x01(\x04\"N\n\x1fVgicUpdateIrqPendingFtraceEvent\x12\x0b\n\x03irq\x18\x01 \x01(\r\x12\r\n\x05level\x18\x02 \x01(\r\x12\x0f\n\x07vcpu_id\x18\x03 \x01(\x04\"t\n\x18LowmemoryKillFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x16\n\x0epagecache_size\x18\x03 \x01(\x03\x12\x17\n\x0fpagecache_limit\x18\x04 \x01(\x03\x12\x0c\n\x04\x66ree\x18\x05 \x01(\x03\"q\n\x1fLwisTracingMarkWriteFtraceEvent\x12\x11\n\tlwis_name\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\r\x12\x0b\n\x03pid\x18\x03 \x01(\x05\x12\x11\n\tfunc_name\x18\x04 \x01(\t\x12\r\n\x05value\x18\x05 \x01(\x03\"Y\n\x1fMaliTracingMarkWriteFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x0c\n\x04type\x18\x03 \x01(\r\x12\r\n\x05value\x18\x04 \x01(\x05\"u\n\x1dMaliMaliKCPUCQSSETFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\tinfo_val1\x18\x02 \x01(\x04\x12\x11\n\tinfo_val2\x18\x03 \x01(\x04\x12\x0f\n\x07kctx_id\x18\x04 \x01(\r\x12\x11\n\tkctx_tgid\x18\x05 \x01(\x05\"{\n#MaliMaliKCPUCQSWAITSTARTFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\tinfo_val1\x18\x02 \x01(\x04\x12\x11\n\tinfo_val2\x18\x03 \x01(\x04\x12\x0f\n\x07kctx_id\x18\x04 \x01(\r\x12\x11\n\tkctx_tgid\x18\x05 \x01(\x05\"y\n!MaliMaliKCPUCQSWAITENDFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\tinfo_val1\x18\x02 \x01(\x04\x12\x11\n\tinfo_val2\x18\x03 \x01(\x04\x12\x0f\n\x07kctx_id\x18\x04 \x01(\r\x12\x11\n\tkctx_tgid\x18\x05 \x01(\x05\"z\n\"MaliMaliKCPUFENCESIGNALFtraceEvent\x12\x11\n\tinfo_val1\x18\x01 \x01(\x04\x12\x11\n\tinfo_val2\x18\x02 \x01(\x04\x12\x11\n\tkctx_tgid\x18\x03 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x04 \x01(\r\x12\n\n\x02id\x18\x05 \x01(\r\"}\n%MaliMaliKCPUFENCEWAITSTARTFtraceEvent\x12\x11\n\tinfo_val1\x18\x01 \x01(\x04\x12\x11\n\tinfo_val2\x18\x02 \x01(\x04\x12\x11\n\tkctx_tgid\x18\x03 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x04 \x01(\r\x12\n\n\x02id\x18\x05 \x01(\r\"{\n#MaliMaliKCPUFENCEWAITENDFtraceEvent\x12\x11\n\tinfo_val1\x18\x01 \x01(\x04\x12\x11\n\tinfo_val2\x18\x02 \x01(\x04\x12\x11\n\tkctx_tgid\x18\x03 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x04 \x01(\r\x12\n\n\x02id\x18\x05 \x01(\r\"\\\n$MaliMaliCSFINTERRUPTSTARTFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"Z\n\"MaliMaliCSFINTERRUPTENDFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"l\n4MaliMaliPMMCUHCTLCORESDOWNSCALENOTIFYPENDFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"c\n+MaliMaliPMMCUHCTLCORESNOTIFYPENDFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"d\n,MaliMaliPMMCUHCTLCOREINACTIVEPENDFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"`\n(MaliMaliPMMCUHCTLMCUONRECHECKFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"f\n.MaliMaliPMMCUHCTLSHADERSCOREOFFPENDFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"b\n*MaliMaliPMMCUHCTLSHADERSPENDOFFFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"a\n)MaliMaliPMMCUHCTLSHADERSPENDONFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"c\n+MaliMaliPMMCUHCTLSHADERSREADYOFFFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"W\n\x1fMaliMaliPMMCUINSLEEPFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"S\n\x1bMaliMaliPMMCUOFFFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"R\n\x1aMaliMaliPMMCUONFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"d\n,MaliMaliPMMCUONCOREATTRUPDATEPENDFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"_\n\'MaliMaliPMMCUONGLBREINITPENDFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"V\n\x1eMaliMaliPMMCUONHALTFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"^\n&MaliMaliPMMCUONHWCNTDISABLEFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"]\n%MaliMaliPMMCUONHWCNTENABLEFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"Z\n\"MaliMaliPMMCUONPENDHALTFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"[\n#MaliMaliPMMCUONPENDSLEEPFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"_\n\'MaliMaliPMMCUONSLEEPINITIATEFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"W\n\x1fMaliMaliPMMCUPENDOFFFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"\\\n$MaliMaliPMMCUPENDONRELOADFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"Y\n!MaliMaliPMMCUPOWERDOWNFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"Y\n!MaliMaliPMMCURESETWAITFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"W\n\x1cMaliGpuPowerStateFtraceEvent\x12\x11\n\tchange_ns\x18\x01 \x01(\x04\x12\x12\n\nfrom_state\x18\x02 \x01(\x05\x12\x10\n\x08to_state\x18\x03 \x01(\x05\"@\n\x18MdpCmdKickoffFtraceEvent\x12\x0f\n\x07\x63tl_num\x18\x01 \x01(\r\x12\x13\n\x0bkickoff_cnt\x18\x02 \x01(\x05\"Z\n\x14MdpCommitFtraceEvent\x12\x0b\n\x03num\x18\x01 \x01(\r\x12\x10\n\x08play_cnt\x18\x02 \x01(\r\x12\x10\n\x08\x63lk_rate\x18\x03 \x01(\r\x12\x11\n\tbandwidth\x18\x04 \x01(\x04\"[\n\x17MdpPerfSetOtFtraceEvent\x12\x0c\n\x04pnum\x18\x01 \x01(\r\x12\x0e\n\x06xin_id\x18\x02 \x01(\r\x12\x0e\n\x06rd_lim\x18\x03 \x01(\r\x12\x12\n\nis_vbif_rt\x18\x04 \x01(\r\"\x8c\x02\n\x18MdpSsppChangeFtraceEvent\x12\x0b\n\x03num\x18\x01 \x01(\r\x12\x10\n\x08play_cnt\x18\x02 \x01(\r\x12\r\n\x05mixer\x18\x03 \x01(\r\x12\r\n\x05stage\x18\x04 \x01(\r\x12\r\n\x05\x66lags\x18\x05 \x01(\r\x12\x0e\n\x06\x66ormat\x18\x06 \x01(\r\x12\r\n\x05img_w\x18\x07 \x01(\r\x12\r\n\x05img_h\x18\x08 \x01(\r\x12\r\n\x05src_x\x18\t \x01(\r\x12\r\n\x05src_y\x18\n \x01(\r\x12\r\n\x05src_w\x18\x0b \x01(\r\x12\r\n\x05src_h\x18\x0c \x01(\r\x12\r\n\x05\x64st_x\x18\r \x01(\r\x12\r\n\x05\x64st_y\x18\x0e \x01(\r\x12\r\n\x05\x64st_w\x18\x0f \x01(\r\x12\r\n\x05\x64st_h\x18\x10 \x01(\r\"S\n\x1bTracingMarkWriteFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x12\n\ntrace_name\x18\x02 \x01(\t\x12\x13\n\x0btrace_begin\x18\x03 \x01(\r\"d\n\x1dMdpCmdPingpongDoneFtraceEvent\x12\x0f\n\x07\x63tl_num\x18\x01 \x01(\r\x12\x10\n\x08intf_num\x18\x02 \x01(\r\x12\x0e\n\x06pp_num\x18\x03 \x01(\r\x12\x10\n\x08koff_cnt\x18\x04 \x01(\x05\"\xa4\x01\n\x17MdpCompareBwFtraceEvent\x12\x0e\n\x06new_ab\x18\x01 \x01(\x04\x12\x0e\n\x06new_ib\x18\x02 \x01(\x04\x12\x0e\n\x06new_wb\x18\x03 \x01(\x04\x12\x0e\n\x06old_ab\x18\x04 \x01(\x04\x12\x0e\n\x06old_ib\x18\x05 \x01(\x04\x12\x0e\n\x06old_wb\x18\x06 \x01(\x04\x12\x16\n\x0eparams_changed\x18\x07 \x01(\r\x12\x11\n\tupdate_bw\x18\x08 \x01(\r\"p\n\x1eMdpPerfSetPanicLutsFtraceEvent\x12\x0c\n\x04pnum\x18\x01 \x01(\r\x12\x0b\n\x03\x66mt\x18\x02 \x01(\r\x12\x0c\n\x04mode\x18\x03 \x01(\r\x12\x11\n\tpanic_lut\x18\x04 \x01(\r\x12\x12\n\nrobust_lut\x18\x05 \x01(\r\"\x89\x02\n\x15MdpSsppSetFtraceEvent\x12\x0b\n\x03num\x18\x01 \x01(\r\x12\x10\n\x08play_cnt\x18\x02 \x01(\r\x12\r\n\x05mixer\x18\x03 \x01(\r\x12\r\n\x05stage\x18\x04 \x01(\r\x12\r\n\x05\x66lags\x18\x05 \x01(\r\x12\x0e\n\x06\x66ormat\x18\x06 \x01(\r\x12\r\n\x05img_w\x18\x07 \x01(\r\x12\r\n\x05img_h\x18\x08 \x01(\r\x12\r\n\x05src_x\x18\t \x01(\r\x12\r\n\x05src_y\x18\n \x01(\r\x12\r\n\x05src_w\x18\x0b \x01(\r\x12\r\n\x05src_h\x18\x0c \x01(\r\x12\r\n\x05\x64st_x\x18\r \x01(\r\x12\r\n\x05\x64st_y\x18\x0e \x01(\r\x12\r\n\x05\x64st_w\x18\x0f \x01(\r\x12\r\n\x05\x64st_h\x18\x10 \x01(\r\"A\n\x1cMdpCmdReadptrDoneFtraceEvent\x12\x0f\n\x07\x63tl_num\x18\x01 \x01(\r\x12\x10\n\x08koff_cnt\x18\x02 \x01(\x05\"I\n\x15MdpMisrCrcFtraceEvent\x12\x10\n\x08\x62lock_id\x18\x01 \x01(\r\x12\x11\n\tvsync_cnt\x18\x02 \x01(\r\x12\x0b\n\x03\x63rc\x18\x03 \x01(\r\"}\n\x1cMdpPerfSetQosLutsFtraceEvent\x12\x0c\n\x04pnum\x18\x01 \x01(\r\x12\x0b\n\x03\x66mt\x18\x02 \x01(\r\x12\x0c\n\x04intf\x18\x03 \x01(\r\x12\x0b\n\x03rot\x18\x04 \x01(\r\x12\n\n\x02\x66l\x18\x05 \x01(\r\x12\x0b\n\x03lut\x18\x06 \x01(\r\x12\x0e\n\x06linear\x18\x07 \x01(\r\"N\n\x1aMdpTraceCounterFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x14\n\x0c\x63ounter_name\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\x05\"-\n\x1aMdpCmdReleaseBwFtraceEvent\x12\x0f\n\x07\x63tl_num\x18\x01 \x01(\r\".\n\x19MdpMixerUpdateFtraceEvent\x12\x11\n\tmixer_num\x18\x01 \x01(\r\"\xa0\x01\n\x1dMdpPerfSetWmLevelsFtraceEvent\x12\x0c\n\x04pnum\x18\x01 \x01(\r\x12\x11\n\tuse_space\x18\x02 \x01(\r\x12\x16\n\x0epriority_bytes\x18\x03 \x01(\r\x12\x0b\n\x03wm0\x18\x04 \x01(\r\x12\x0b\n\x03wm1\x18\x05 \x01(\r\x12\x0b\n\x03wm2\x18\x06 \x01(\r\x12\x0e\n\x06mb_cnt\x18\x07 \x01(\r\x12\x0f\n\x07mb_size\x18\x08 \x01(\r\"H\n\x1fMdpVideoUnderrunDoneFtraceEvent\x12\x0f\n\x07\x63tl_num\x18\x01 \x01(\r\x12\x14\n\x0cunderrun_cnt\x18\x02 \x01(\r\"E\n\x1dMdpCmdWaitPingpongFtraceEvent\x12\x0f\n\x07\x63tl_num\x18\x01 \x01(\r\x12\x13\n\x0bkickoff_cnt\x18\x02 \x01(\x05\"\xce\x01\n\x1dMdpPerfPrefillCalcFtraceEvent\x12\x0c\n\x04pnum\x18\x01 \x01(\r\x12\x13\n\x0blatency_buf\x18\x02 \x01(\r\x12\n\n\x02ot\x18\x03 \x01(\r\x12\r\n\x05y_buf\x18\x04 \x01(\r\x12\x10\n\x08y_scaler\x18\x05 \x01(\r\x12\x10\n\x08pp_lines\x18\x06 \x01(\r\x12\x10\n\x08pp_bytes\x18\x07 \x01(\r\x12\x0f\n\x07post_sc\x18\x08 \x01(\r\x12\x11\n\tfbc_bytes\x18\t \x01(\r\x12\x15\n\rprefill_bytes\x18\n \x01(\r\"Q\n\x1bMdpPerfUpdateBusFtraceEvent\x12\x0e\n\x06\x63lient\x18\x01 \x01(\x05\x12\x10\n\x08\x61\x62_quota\x18\x02 \x01(\x04\x12\x10\n\x08ib_quota\x18\x03 \x01(\x04\"0\n\x1fRotatorBwAoAsContextFtraceEvent\x12\r\n\x05state\x18\x01 \x01(\r\"Y\n\x18MmEventRecordFtraceEvent\x12\x0f\n\x07\x61vg_lat\x18\x01 \x01(\r\x12\r\n\x05\x63ount\x18\x02 \x01(\r\x12\x0f\n\x07max_lat\x18\x03 \x01(\r\x12\x0c\n\x04type\x18\x04 \x01(\r\"H\n\x1aNetifReceiveSkbFtraceEvent\x12\x0b\n\x03len\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0f\n\x07skbaddr\x18\x03 \x01(\x04\"O\n\x15NetDevXmitFtraceEvent\x12\x0b\n\x03len\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\n\n\x02rc\x18\x03 \x01(\x05\x12\x0f\n\x07skbaddr\x18\x04 \x01(\x04\"\xfb\x02\n\x1eNapiGroReceiveEntryFtraceEvent\x12\x10\n\x08\x64\x61ta_len\x18\x01 \x01(\r\x12\x10\n\x08gso_size\x18\x02 \x01(\r\x12\x10\n\x08gso_type\x18\x03 \x01(\r\x12\x0c\n\x04hash\x18\x04 \x01(\r\x12\x11\n\tip_summed\x18\x05 \x01(\r\x12\x0f\n\x07l4_hash\x18\x06 \x01(\r\x12\x0b\n\x03len\x18\x07 \x01(\r\x12\x12\n\nmac_header\x18\x08 \x01(\x05\x12\x18\n\x10mac_header_valid\x18\t \x01(\r\x12\x0c\n\x04name\x18\n \x01(\t\x12\x0f\n\x07napi_id\x18\x0b \x01(\r\x12\x10\n\x08nr_frags\x18\x0c \x01(\r\x12\x10\n\x08protocol\x18\r \x01(\r\x12\x15\n\rqueue_mapping\x18\x0e \x01(\r\x12\x0f\n\x07skbaddr\x18\x0f \x01(\x04\x12\x10\n\x08truesize\x18\x10 \x01(\r\x12\x12\n\nvlan_proto\x18\x11 \x01(\r\x12\x13\n\x0bvlan_tagged\x18\x12 \x01(\r\x12\x10\n\x08vlan_tci\x18\x13 \x01(\r\",\n\x1dNapiGroReceiveExitFtraceEvent\x12\x0b\n\x03ret\x18\x01 \x01(\x05\"P\n\x1cOomScoreAdjUpdateFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\x12\x15\n\room_score_adj\x18\x02 \x01(\x05\x12\x0b\n\x03pid\x18\x03 \x01(\x05\"$\n\x15MarkVictimFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\">\n\x1b\x44siCmdFifoStatusFtraceEvent\x12\x0e\n\x06header\x18\x01 \x01(\r\x12\x0f\n\x07payload\x18\x02 \x01(\r\"/\n\x10\x44siRxFtraceEvent\x12\x0b\n\x03\x63md\x18\x01 \x01(\r\x12\x0e\n\x06rx_buf\x18\x02 \x01(\r\">\n\x10\x44siTxFtraceEvent\x12\x0c\n\x04last\x18\x01 \x01(\r\x12\x0e\n\x06tx_buf\x18\x02 \x01(\r\x12\x0c\n\x04type\x18\x03 \x01(\r\"\x7f\n\x1cPanelWriteGenericFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x12\n\ntrace_name\x18\x02 \x01(\t\x12\x13\n\x0btrace_begin\x18\x03 \x01(\r\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x0c\n\x04type\x18\x05 \x01(\r\x12\r\n\x05value\x18\x06 \x01(\x05\"\x84\x03\n\x1eSchedSwitchWithCtrsFtraceEvent\x12\x0f\n\x07old_pid\x18\x01 \x01(\x05\x12\x0f\n\x07new_pid\x18\x02 \x01(\x05\x12\x0c\n\x04\x63\x63tr\x18\x03 \x01(\x04\x12\x0c\n\x04\x63tr0\x18\x04 \x01(\x04\x12\x0c\n\x04\x63tr1\x18\x05 \x01(\x04\x12\x0c\n\x04\x63tr2\x18\x06 \x01(\x04\x12\x0c\n\x04\x63tr3\x18\x07 \x01(\x04\x12\r\n\x05lctr0\x18\x08 \x01(\r\x12\r\n\x05lctr1\x18\t \x01(\r\x12\x0c\n\x04\x63tr4\x18\n \x01(\x04\x12\x0c\n\x04\x63tr5\x18\x0b \x01(\x04\x12\x11\n\tprev_comm\x18\x0c \x01(\t\x12\x10\n\x08prev_pid\x18\r \x01(\x05\x12\x0b\n\x03\x63yc\x18\x0e \x01(\r\x12\x0c\n\x04inst\x18\x0f \x01(\r\x12\x0f\n\x07stallbm\x18\x10 \x01(\r\x12\x0c\n\x04l3dm\x18\x11 \x01(\r\x12\x10\n\x08next_pid\x18\x12 \x01(\x05\x12\x11\n\tnext_comm\x18\x13 \x01(\t\x12\x12\n\nprev_state\x18\x14 \x01(\x03\x12\x0c\n\x04\x61mu0\x18\x15 \x01(\x04\x12\x0c\n\x04\x61mu1\x18\x16 \x01(\x04\x12\x0c\n\x04\x61mu2\x18\x17 \x01(\x04\"0\n\x1cPixelMmKswapdWakeFtraceEvent\x12\x10\n\x08whatever\x18\x01 \x01(\x05\"\x85\x01\n\x1cPixelMmKswapdDoneFtraceEvent\x12\x18\n\x10\x64\x65lta_nr_scanned\x18\x01 \x01(\x04\x12\x1a\n\x12\x64\x65lta_nr_reclaimed\x18\x02 \x01(\x04\x12\x1a\n\x12\x64\x65lta_nr_allocated\x18\x03 \x01(\x04\x12\x13\n\x0b\x64uration_ns\x18\x04 \x01(\x04\"8\n\x17\x43puFrequencyFtraceEvent\x12\r\n\x05state\x18\x01 \x01(\r\x12\x0e\n\x06\x63pu_id\x18\x02 \x01(\r\"S\n\x1d\x43puFrequencyLimitsFtraceEvent\x12\x10\n\x08min_freq\x18\x01 \x01(\r\x12\x10\n\x08max_freq\x18\x02 \x01(\r\x12\x0e\n\x06\x63pu_id\x18\x03 \x01(\r\"3\n\x12\x43puIdleFtraceEvent\x12\r\n\x05state\x18\x01 \x01(\r\x12\x0e\n\x06\x63pu_id\x18\x02 \x01(\r\"E\n\x16\x43lockEnableFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05state\x18\x02 \x01(\x04\x12\x0e\n\x06\x63pu_id\x18\x03 \x01(\x04\"F\n\x17\x43lockDisableFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05state\x18\x02 \x01(\x04\x12\x0e\n\x06\x63pu_id\x18\x03 \x01(\x04\"F\n\x17\x43lockSetRateFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05state\x18\x02 \x01(\x04\x12\x0e\n\x06\x63pu_id\x18\x03 \x01(\x04\"F\n\x18SuspendResumeFtraceEvent\x12\x0e\n\x06\x61\x63tion\x18\x01 \x01(\t\x12\x0b\n\x03val\x18\x02 \x01(\x05\x12\r\n\x05start\x18\x03 \x01(\r\"8\n\x17GpuFrequencyFtraceEvent\x12\x0e\n\x06gpu_id\x18\x01 \x01(\r\x12\r\n\x05state\x18\x02 \x01(\r\">\n\x1fWakeupSourceActivateFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05state\x18\x02 \x01(\x04\"@\n!WakeupSourceDeactivateFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05state\x18\x02 \x01(\x04\"\x85\x01\n\x18GpuWorkPeriodFtraceEvent\x12\x0e\n\x06gpu_id\x18\x01 \x01(\r\x12\x0b\n\x03uid\x18\x02 \x01(\r\x12\x15\n\rstart_time_ns\x18\x03 \x01(\x04\x12\x13\n\x0b\x65nd_time_ns\x18\x04 \x01(\x04\x12 \n\x18total_active_duration_ns\x18\x05 \x01(\x04\"q\n DevicePmCallbackStartFtraceEvent\x12\x0e\n\x06\x64\x65vice\x18\x01 \x01(\t\x12\x0e\n\x06\x64river\x18\x02 \x01(\t\x12\x0e\n\x06parent\x18\x03 \x01(\t\x12\x0e\n\x06pm_ops\x18\x04 \x01(\t\x12\r\n\x05\x65vent\x18\x05 \x01(\x05\"O\n\x1e\x44\x65vicePmCallbackEndFtraceEvent\x12\x0e\n\x06\x64\x65vice\x18\x01 \x01(\t\x12\x0e\n\x06\x64river\x18\x02 \x01(\t\x12\r\n\x05\x65rror\x18\x03 \x01(\x05\"!\n\x12\x43onsoleFtraceEvent\x12\x0b\n\x03msg\x18\x01 \x01(\t\"/\n\x13SysEnterFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0c\n\x04\x61rgs\x18\x02 \x03(\x04\"-\n\x12SysExitFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0b\n\x03ret\x18\x02 \x01(\x03\"+\n\x1bRegulatorDisableFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\"3\n#RegulatorDisableCompleteFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\"*\n\x1aRegulatorEnableFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\"2\n\"RegulatorEnableCompleteFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\"/\n\x1fRegulatorEnableDelayFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\"H\n\x1eRegulatorSetVoltageFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03min\x18\x02 \x01(\x05\x12\x0b\n\x03max\x18\x03 \x01(\x05\"C\n&RegulatorSetVoltageCompleteFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03val\x18\x02 \x01(\r\"4\n\x14RpmStatusFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \x01(\x05\"}\n\"SamsungTracingMarkWriteFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x12\n\ntrace_name\x18\x02 \x01(\t\x12\x13\n\x0btrace_begin\x18\x03 \x01(\r\x12\x12\n\ntrace_type\x18\x04 \x01(\r\x12\r\n\x05value\x18\x05 \x01(\x05\"\x9c\x01\n\x16SchedSwitchFtraceEvent\x12\x11\n\tprev_comm\x18\x01 \x01(\t\x12\x10\n\x08prev_pid\x18\x02 \x01(\x05\x12\x11\n\tprev_prio\x18\x03 \x01(\x05\x12\x12\n\nprev_state\x18\x04 \x01(\x03\x12\x11\n\tnext_comm\x18\x05 \x01(\t\x12\x10\n\x08next_pid\x18\x06 \x01(\x05\x12\x11\n\tnext_prio\x18\x07 \x01(\x05\"f\n\x16SchedWakeupFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x0c\n\x04prio\x18\x03 \x01(\x05\x12\x0f\n\x07success\x18\x04 \x01(\x05\x12\x12\n\ntarget_cpu\x18\x05 \x01(\x05\"M\n\x1dSchedBlockedReasonFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x0e\n\x06\x63\x61ller\x18\x02 \x01(\x04\x12\x0f\n\x07io_wait\x18\x03 \x01(\r\"Q\n\x1aSchedCpuHotplugFtraceEvent\x12\x14\n\x0c\x61\x66\x66\x65\x63ted_cpu\x18\x01 \x01(\x05\x12\r\n\x05\x65rror\x18\x02 \x01(\x05\x12\x0e\n\x06status\x18\x03 \x01(\x05\"f\n\x16SchedWakingFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x0c\n\x04prio\x18\x03 \x01(\x05\x12\x0f\n\x07success\x18\x04 \x01(\x05\x12\x12\n\ntarget_cpu\x18\x05 \x01(\x05\"i\n\x19SchedWakeupNewFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x0c\n\x04prio\x18\x03 \x01(\x05\x12\x0f\n\x07success\x18\x04 \x01(\x05\x12\x12\n\ntarget_cpu\x18\x05 \x01(\x05\"M\n\x1bSchedProcessExecFtraceEvent\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x0f\n\x07old_pid\x18\x03 \x01(\x05\"T\n\x1bSchedProcessExitFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x0c\n\x04tgid\x18\x03 \x01(\x05\x12\x0c\n\x04prio\x18\x04 \x01(\x05\"m\n\x1bSchedProcessForkFtraceEvent\x12\x13\n\x0bparent_comm\x18\x01 \x01(\t\x12\x12\n\nparent_pid\x18\x02 \x01(\x05\x12\x12\n\nchild_comm\x18\x03 \x01(\t\x12\x11\n\tchild_pid\x18\x04 \x01(\x05\"F\n\x1bSchedProcessFreeFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x0c\n\x04prio\x18\x03 \x01(\x05\"8\n\x1bSchedProcessHangFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\"F\n\x1bSchedProcessWaitFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x0c\n\x04prio\x18\x03 \x01(\x05\"X\n\x19SchedPiSetprioFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\x12\x0f\n\x07newprio\x18\x02 \x01(\x05\x12\x0f\n\x07oldprio\x18\x03 \x01(\x05\x12\x0b\n\x03pid\x18\x04 \x01(\x05\"\xc8\x02\n\x1aSchedCpuUtilCfsFtraceEvent\x12\x0e\n\x06\x61\x63tive\x18\x01 \x01(\x05\x12\x10\n\x08\x63\x61pacity\x18\x02 \x01(\x04\x12\x15\n\rcapacity_orig\x18\x03 \x01(\x04\x12\x0b\n\x03\x63pu\x18\x04 \x01(\r\x12\x16\n\x0e\x63pu_importance\x18\x05 \x01(\x04\x12\x10\n\x08\x63pu_util\x18\x06 \x01(\x04\x12\x10\n\x08\x65xit_lat\x18\x07 \x01(\r\x12\x16\n\x0egroup_capacity\x18\x08 \x01(\x04\x12\x18\n\x10grp_overutilized\x18\t \x01(\r\x12\x10\n\x08idle_cpu\x18\n \x01(\r\x12\x12\n\nnr_running\x18\x0b \x01(\r\x12\x11\n\tspare_cap\x18\x0c \x01(\x03\x12\x11\n\ttask_fits\x18\r \x01(\r\x12\x17\n\x0fwake_group_util\x18\x0e \x01(\x04\x12\x11\n\twake_util\x18\x0f \x01(\x04\"\x89\x01\n\x1bSchedMigrateTaskFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x0c\n\x04prio\x18\x03 \x01(\x05\x12\x10\n\x08orig_cpu\x18\x04 \x01(\x05\x12\x10\n\x08\x64\x65st_cpu\x18\x05 \x01(\x05\x12\x0f\n\x07running\x18\x06 \x01(\x05\x12\x0c\n\x04load\x18\x07 \x01(\r\"|\n\x1eSchedWakeupTaskAttrFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x14\n\x0c\x63pu_affinity\x18\x02 \x01(\x04\x12\x11\n\ttask_util\x18\x03 \x01(\x04\x12\x12\n\nuclamp_min\x18\x04 \x01(\x04\x12\x10\n\x08vruntime\x18\x05 \x01(\x04\"B\n\x17ScmCallStartFtraceEvent\x12\x0f\n\x07\x61rginfo\x18\x01 \x01(\r\x12\n\n\x02x0\x18\x02 \x01(\x04\x12\n\n\x02x5\x18\x03 \x01(\x04\"\x17\n\x15ScmCallEndFtraceEvent\"\xfc\x01\n\x1fScsiDispatchCmdErrorFtraceEvent\x12\x0f\n\x07host_no\x18\x01 \x01(\r\x12\x0f\n\x07\x63hannel\x18\x02 \x01(\r\x12\n\n\x02id\x18\x03 \x01(\r\x12\x0b\n\x03lun\x18\x04 \x01(\r\x12\x0b\n\x03rtn\x18\x05 \x01(\x05\x12\x0e\n\x06opcode\x18\x06 \x01(\r\x12\x0f\n\x07\x63md_len\x18\x07 \x01(\r\x12\x12\n\ndata_sglen\x18\x08 \x01(\r\x12\x12\n\nprot_sglen\x18\t \x01(\r\x12\x0f\n\x07prot_op\x18\n \x01(\r\x12\x0c\n\x04\x63mnd\x18\x0b \x01(\t\x12\x12\n\ndriver_tag\x18\x0c \x01(\x05\x12\x15\n\rscheduler_tag\x18\r \x01(\x05\"\xaf\x02\n!ScsiDispatchCmdTimeoutFtraceEvent\x12\x0f\n\x07host_no\x18\x01 \x01(\r\x12\x0f\n\x07\x63hannel\x18\x02 \x01(\r\x12\n\n\x02id\x18\x03 \x01(\r\x12\x0b\n\x03lun\x18\x04 \x01(\r\x12\x0e\n\x06result\x18\x05 \x01(\x05\x12\x0e\n\x06opcode\x18\x06 \x01(\r\x12\x0f\n\x07\x63md_len\x18\x07 \x01(\r\x12\x12\n\ndata_sglen\x18\x08 \x01(\r\x12\x12\n\nprot_sglen\x18\t \x01(\r\x12\x0f\n\x07prot_op\x18\n \x01(\r\x12\x0c\n\x04\x63mnd\x18\x0b \x01(\t\x12\x12\n\ndriver_tag\x18\x0c \x01(\x05\x12\x15\n\rscheduler_tag\x18\r \x01(\x05\x12\x11\n\tsense_key\x18\x0e \x01(\r\x12\x0b\n\x03\x61sc\x18\x0f \x01(\r\x12\x0c\n\x04\x61scq\x18\x10 \x01(\r\"*\n\x17ScsiEhWakeupFtraceEvent\x12\x0f\n\x07host_no\x18\x01 \x01(\r\"y\n\x1eSdeTracingMarkWriteFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x12\n\ntrace_name\x18\x02 \x01(\t\x12\x12\n\ntrace_type\x18\x03 \x01(\r\x12\r\n\x05value\x18\x04 \x01(\x05\x12\x13\n\x0btrace_begin\x18\x05 \x01(\r\"J\n\x17SdeSdeEvtlogFtraceEvent\x12\x12\n\nevtlog_tag\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x0e\n\x06tag_id\x18\x03 \x01(\r\"\xb4\x01\n\x1dSdeSdePerfCalcCrtcFtraceEvent\x12\x12\n\nbw_ctl_ebi\x18\x01 \x01(\x04\x12\x13\n\x0b\x62w_ctl_llcc\x18\x02 \x01(\x04\x12\x13\n\x0b\x62w_ctl_mnoc\x18\x03 \x01(\x04\x12\x15\n\rcore_clk_rate\x18\x04 \x01(\r\x12\x0c\n\x04\x63rtc\x18\x05 \x01(\r\x12\x0e\n\x06ib_ebi\x18\x06 \x01(\x04\x12\x0f\n\x07ib_llcc\x18\x07 \x01(\x04\x12\x0f\n\x07ib_mnoc\x18\x08 \x01(\x04\"\x9b\x02\n\x1fSdeSdePerfCrtcUpdateFtraceEvent\x12\x12\n\nbw_ctl_ebi\x18\x01 \x01(\x04\x12\x13\n\x0b\x62w_ctl_llcc\x18\x02 \x01(\x04\x12\x13\n\x0b\x62w_ctl_mnoc\x18\x03 \x01(\x04\x12\x15\n\rcore_clk_rate\x18\x04 \x01(\r\x12\x0c\n\x04\x63rtc\x18\x05 \x01(\r\x12\x0e\n\x06params\x18\x06 \x01(\x05\x12\x17\n\x0fper_pipe_ib_ebi\x18\x07 \x01(\x04\x12\x18\n\x10per_pipe_ib_llcc\x18\x08 \x01(\x04\x12\x18\n\x10per_pipe_ib_mnoc\x18\t \x01(\x04\x12\x10\n\x08stop_req\x18\n \x01(\r\x12\x12\n\nupdate_bus\x18\x0b \x01(\r\x12\x12\n\nupdate_clk\x18\x0c \x01(\r\"t\n\x1fSdeSdePerfSetQosLutsFtraceEvent\x12\n\n\x02\x66l\x18\x01 \x01(\r\x12\x0b\n\x03\x66mt\x18\x02 \x01(\r\x12\x0b\n\x03lut\x18\x03 \x01(\x04\x12\x11\n\tlut_usage\x18\x04 \x01(\r\x12\x0c\n\x04pnum\x18\x05 \x01(\r\x12\n\n\x02rt\x18\x06 \x01(\r\"d\n\x1eSdeSdePerfUpdateBusFtraceEvent\x12\x10\n\x08\x61\x62_quota\x18\x01 \x01(\x04\x12\x0e\n\x06\x62us_id\x18\x02 \x01(\r\x12\x0e\n\x06\x63lient\x18\x03 \x01(\x05\x12\x10\n\x08ib_quota\x18\x04 \x01(\x04\"G\n\x18SignalDeliverFtraceEvent\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\x10\n\x08sa_flags\x18\x02 \x01(\x04\x12\x0b\n\x03sig\x18\x03 \x01(\x05\"p\n\x19SignalGenerateFtraceEvent\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\x0c\n\x04\x63omm\x18\x02 \x01(\t\x12\r\n\x05group\x18\x03 \x01(\x05\x12\x0b\n\x03pid\x18\x04 \x01(\x05\x12\x0e\n\x06result\x18\x05 \x01(\x05\x12\x0b\n\x03sig\x18\x06 \x01(\x05\"J\n\x13KfreeSkbFtraceEvent\x12\x10\n\x08location\x18\x01 \x01(\x04\x12\x10\n\x08protocol\x18\x02 \x01(\r\x12\x0f\n\x07skbaddr\x18\x03 \x01(\x04\"\xaf\x01\n\x1bInetSockSetStateFtraceEvent\x12\r\n\x05\x64\x61\x64\x64r\x18\x01 \x01(\r\x12\r\n\x05\x64port\x18\x02 \x01(\r\x12\x0e\n\x06\x66\x61mily\x18\x03 \x01(\r\x12\x10\n\x08newstate\x18\x04 \x01(\x05\x12\x10\n\x08oldstate\x18\x05 \x01(\x05\x12\x10\n\x08protocol\x18\x06 \x01(\r\x12\r\n\x05saddr\x18\x07 \x01(\r\x12\x0e\n\x06skaddr\x18\x08 \x01(\x04\x12\r\n\x05sport\x18\t \x01(\r\"4\n\x11SyncPtFtraceEvent\x12\x10\n\x08timeline\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"6\n\x17SyncTimelineFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"B\n\x13SyncWaitFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \x01(\x05\x12\r\n\x05\x62\x65gin\x18\x03 \x01(\r\"X\n\x1bRssStatThrottledFtraceEvent\x12\x0c\n\x04\x63urr\x18\x01 \x01(\r\x12\x0e\n\x06member\x18\x02 \x01(\x05\x12\r\n\x05mm_id\x18\x03 \x01(\r\x12\x0c\n\x04size\x18\x04 \x01(\x03\"0\n\x1fSuspendResumeMinimalFtraceEvent\x12\r\n\x05start\x18\x01 \x01(\r\"I\n\x0fZeroFtraceEvent\x12\x0c\n\x04\x66lag\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0b\n\x03pid\x18\x03 \x01(\x05\x12\r\n\x05value\x18\x04 \x01(\x03\"_\n\x16TaskNewtaskFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x0c\n\x04\x63omm\x18\x02 \x01(\t\x12\x13\n\x0b\x63lone_flags\x18\x03 \x01(\x04\x12\x15\n\room_score_adj\x18\x04 \x01(\x05\"]\n\x15TaskRenameFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x0f\n\x07oldcomm\x18\x02 \x01(\t\x12\x0f\n\x07newcomm\x18\x03 \x01(\t\x12\x15\n\room_score_adj\x18\x04 \x01(\x05\"\x89\x01\n\x1bTcpRetransmitSkbFtraceEvent\x12\r\n\x05\x64\x61\x64\x64r\x18\x01 \x01(\r\x12\r\n\x05\x64port\x18\x02 \x01(\r\x12\r\n\x05saddr\x18\x03 \x01(\r\x12\x0e\n\x06skaddr\x18\x04 \x01(\x04\x12\x0f\n\x07skbaddr\x18\x05 \x01(\x04\x12\r\n\x05sport\x18\x06 \x01(\r\x12\r\n\x05state\x18\x07 \x01(\x05\"b\n\x1dThermalTemperatureFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04temp\x18\x02 \x01(\x05\x12\x11\n\ttemp_prev\x18\x03 \x01(\x05\x12\x14\n\x0cthermal_zone\x18\x04 \x01(\t\"5\n\x15\x43\x64\x65vUpdateFtraceEvent\x12\x0e\n\x06target\x18\x01 \x01(\x04\x12\x0c\n\x04type\x18\x02 \x01(\t\"\xe4\x01\n ThermalExynosAcpmBulkFtraceEvent\x12\r\n\x05tz_id\x18\x01 \x01(\r\x12\x14\n\x0c\x63urrent_temp\x18\x02 \x01(\r\x12\x11\n\tctrl_temp\x18\x03 \x01(\r\x12\x12\n\ncdev_state\x18\x04 \x01(\r\x12\x10\n\x08pid_et_p\x18\x05 \x01(\x05\x12\x17\n\x0fpid_power_range\x18\x06 \x01(\x05\x12\r\n\x05pid_p\x18\x07 \x01(\x05\x12\r\n\x05pid_i\x18\x08 \x01(\x05\x12\x0b\n\x03k_p\x18\t \x01(\x05\x12\x0b\n\x03k_i\x18\n \x01(\x05\x12\x11\n\ttimestamp\x18\x0b \x01(\x04\"\xa2\x01\n(ThermalExynosAcpmHighOverheadFtraceEvent\x12\r\n\x05tz_id\x18\x01 \x01(\x05\x12\x14\n\x0c\x63urrent_temp\x18\x02 \x01(\r\x12\x11\n\tctrl_temp\x18\x03 \x01(\r\x12\x12\n\ncdev_state\x18\x04 \x01(\r\x12\x10\n\x08pid_et_p\x18\x05 \x01(\x05\x12\x0b\n\x03k_p\x18\x06 \x01(\x05\x12\x0b\n\x03k_i\x18\x07 \x01(\x05\"p\n\x17HrtimerStartFtraceEvent\x12\x0f\n\x07hrtimer\x18\x01 \x01(\x04\x12\x10\n\x08\x66unction\x18\x02 \x01(\x04\x12\x0f\n\x07\x65xpires\x18\x03 \x01(\x03\x12\x13\n\x0bsoftexpires\x18\x04 \x01(\x03\x12\x0c\n\x04mode\x18\x05 \x01(\r\"+\n\x18HrtimerCancelFtraceEvent\x12\x0f\n\x07hrtimer\x18\x01 \x01(\x04\"O\n\x1dHrtimerExpireEntryFtraceEvent\x12\x0f\n\x07hrtimer\x18\x01 \x01(\x04\x12\x0b\n\x03now\x18\x02 \x01(\x03\x12\x10\n\x08\x66unction\x18\x03 \x01(\x04\"/\n\x1cHrtimerExpireExitFtraceEvent\x12\x0f\n\x07hrtimer\x18\x01 \x01(\x04\"\x90\x01\n\x15TimerStartFtraceEvent\x12\r\n\x05timer\x18\x01 \x01(\x04\x12\x10\n\x08\x66unction\x18\x02 \x01(\x04\x12\x0f\n\x07\x65xpires\x18\x03 \x01(\x04\x12\x0b\n\x03now\x18\x04 \x01(\x04\x12\x12\n\ndeferrable\x18\x05 \x01(\r\x12\r\n\x05\x66lags\x18\x06 \x01(\r\x12\x15\n\rbucket_expiry\x18\x07 \x01(\x04\"\'\n\x16TimerCancelFtraceEvent\x12\r\n\x05timer\x18\x01 \x01(\x04\"\\\n\x1bTimerExpireEntryFtraceEvent\x12\r\n\x05timer\x18\x01 \x01(\x04\x12\x0b\n\x03now\x18\x02 \x01(\x04\x12\x10\n\x08\x66unction\x18\x03 \x01(\x04\x12\x0f\n\x07\x62\x61seclk\x18\x04 \x01(\x04\"+\n\x1aTimerExpireExitFtraceEvent\x12\r\n\x05timer\x18\x01 \x01(\x04\"F\n\x14TrustySmcFtraceEvent\x12\n\n\x02r0\x18\x01 \x01(\x04\x12\n\n\x02r1\x18\x02 \x01(\x04\x12\n\n\x02r2\x18\x03 \x01(\x04\x12\n\n\x02r3\x18\x04 \x01(\x04\"\'\n\x18TrustySmcDoneFtraceEvent\x12\x0b\n\x03ret\x18\x01 \x01(\x04\"L\n\x1aTrustyStdCall32FtraceEvent\x12\n\n\x02r0\x18\x01 \x01(\x04\x12\n\n\x02r1\x18\x02 \x01(\x04\x12\n\n\x02r2\x18\x03 \x01(\x04\x12\n\n\x02r3\x18\x04 \x01(\x04\"-\n\x1eTrustyStdCall32DoneFtraceEvent\x12\x0b\n\x03ret\x18\x01 \x01(\x03\"H\n\x1cTrustyShareMemoryFtraceEvent\x12\x0b\n\x03len\x18\x01 \x01(\x04\x12\x0c\n\x04lend\x18\x02 \x01(\r\x12\r\n\x05nents\x18\x03 \x01(\r\"i\n TrustyShareMemoryDoneFtraceEvent\x12\x0e\n\x06handle\x18\x01 \x01(\x04\x12\x0b\n\x03len\x18\x02 \x01(\x04\x12\x0c\n\x04lend\x18\x03 \x01(\r\x12\r\n\x05nents\x18\x04 \x01(\r\x12\x0b\n\x03ret\x18\x05 \x01(\x05\",\n\x1eTrustyReclaimMemoryFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\x04\"=\n\"TrustyReclaimMemoryDoneFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x0b\n\x03ret\x18\x02 \x01(\x05\"#\n\x14TrustyIrqFtraceEvent\x12\x0b\n\x03irq\x18\x01 \x01(\x05\"S\n\x1fTrustyIpcHandleEventFtraceEvent\x12\x0c\n\x04\x63han\x18\x01 \x01(\r\x12\x10\n\x08\x65vent_id\x18\x02 \x01(\r\x12\x10\n\x08srv_name\x18\x03 \x01(\t\"H\n\x1bTrustyIpcConnectFtraceEvent\x12\x0c\n\x04\x63han\x18\x01 \x01(\r\x12\x0c\n\x04port\x18\x02 \x01(\t\x12\r\n\x05state\x18\x03 \x01(\x05\"J\n\x1eTrustyIpcConnectEndFtraceEvent\x12\x0c\n\x04\x63han\x18\x01 \x01(\r\x12\x0b\n\x03\x65rr\x18\x02 \x01(\x05\x12\r\n\x05state\x18\x03 \x01(\x05\"\x82\x01\n\x19TrustyIpcWriteFtraceEvent\x12\x0e\n\x06\x62uf_id\x18\x01 \x01(\x04\x12\x0c\n\x04\x63han\x18\x02 \x01(\r\x12\x10\n\x08kind_shm\x18\x03 \x01(\x05\x12\x12\n\nlen_or_err\x18\x04 \x01(\x05\x12\x0f\n\x07shm_cnt\x18\x05 \x01(\x04\x12\x10\n\x08srv_name\x18\x06 \x01(\t\"M\n\x18TrustyIpcPollFtraceEvent\x12\x0c\n\x04\x63han\x18\x01 \x01(\r\x12\x11\n\tpoll_mask\x18\x02 \x01(\r\x12\x10\n\x08srv_name\x18\x03 \x01(\t\":\n\x18TrustyIpcReadFtraceEvent\x12\x0c\n\x04\x63han\x18\x01 \x01(\r\x12\x10\n\x08srv_name\x18\x02 \x01(\t\"r\n\x1bTrustyIpcReadEndFtraceEvent\x12\x0e\n\x06\x62uf_id\x18\x01 \x01(\x04\x12\x0c\n\x04\x63han\x18\x02 \x01(\r\x12\x12\n\nlen_or_err\x18\x03 \x01(\x05\x12\x0f\n\x07shm_cnt\x18\x04 \x01(\x04\x12\x10\n\x08srv_name\x18\x05 \x01(\t\"H\n\x16TrustyIpcRxFtraceEvent\x12\x0e\n\x06\x62uf_id\x18\x01 \x01(\x04\x12\x0c\n\x04\x63han\x18\x02 \x01(\r\x12\x10\n\x08srv_name\x18\x03 \x01(\t\"G\n\x1bTrustyEnqueueNopFtraceEvent\x12\x0c\n\x04\x61rg1\x18\x01 \x01(\r\x12\x0c\n\x04\x61rg2\x18\x02 \x01(\r\x12\x0c\n\x04\x61rg3\x18\x03 \x01(\r\"\xba\x01\n\x18UfshcdCommandFtraceEvent\x12\x10\n\x08\x64\x65v_name\x18\x01 \x01(\t\x12\x10\n\x08\x64oorbell\x18\x02 \x01(\r\x12\x0c\n\x04intr\x18\x03 \x01(\r\x12\x0b\n\x03lba\x18\x04 \x01(\x04\x12\x0e\n\x06opcode\x18\x05 \x01(\r\x12\x0b\n\x03str\x18\x06 \x01(\t\x12\x0b\n\x03tag\x18\x07 \x01(\r\x12\x14\n\x0ctransfer_len\x18\x08 \x01(\x05\x12\x10\n\x08group_id\x18\t \x01(\r\x12\r\n\x05str_t\x18\n \x01(\r\"=\n\x1aUfshcdClkGatingFtraceEvent\x12\x10\n\x08\x64\x65v_name\x18\x01 \x01(\t\x12\r\n\x05state\x18\x02 \x01(\x05\"\x9b\x03\n\x13V4l2QbufFtraceEvent\x12\x11\n\tbytesused\x18\x01 \x01(\r\x12\r\n\x05\x66ield\x18\x02 \x01(\r\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\r\n\x05index\x18\x04 \x01(\r\x12\r\n\x05minor\x18\x05 \x01(\x05\x12\x10\n\x08sequence\x18\x06 \x01(\r\x12\x16\n\x0etimecode_flags\x18\x07 \x01(\r\x12\x17\n\x0ftimecode_frames\x18\x08 \x01(\r\x12\x16\n\x0etimecode_hours\x18\t \x01(\r\x12\x18\n\x10timecode_minutes\x18\n \x01(\r\x12\x18\n\x10timecode_seconds\x18\x0b \x01(\r\x12\x15\n\rtimecode_type\x18\x0c \x01(\r\x12\x1a\n\x12timecode_userbits0\x18\r \x01(\r\x12\x1a\n\x12timecode_userbits1\x18\x0e \x01(\r\x12\x1a\n\x12timecode_userbits2\x18\x0f \x01(\r\x12\x1a\n\x12timecode_userbits3\x18\x10 \x01(\r\x12\x11\n\ttimestamp\x18\x11 \x01(\x03\x12\x0c\n\x04type\x18\x12 \x01(\r\"\x9c\x03\n\x14V4l2DqbufFtraceEvent\x12\x11\n\tbytesused\x18\x01 \x01(\r\x12\r\n\x05\x66ield\x18\x02 \x01(\r\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\r\n\x05index\x18\x04 \x01(\r\x12\r\n\x05minor\x18\x05 \x01(\x05\x12\x10\n\x08sequence\x18\x06 \x01(\r\x12\x16\n\x0etimecode_flags\x18\x07 \x01(\r\x12\x17\n\x0ftimecode_frames\x18\x08 \x01(\r\x12\x16\n\x0etimecode_hours\x18\t \x01(\r\x12\x18\n\x10timecode_minutes\x18\n \x01(\r\x12\x18\n\x10timecode_seconds\x18\x0b \x01(\r\x12\x15\n\rtimecode_type\x18\x0c \x01(\r\x12\x1a\n\x12timecode_userbits0\x18\r \x01(\r\x12\x1a\n\x12timecode_userbits1\x18\x0e \x01(\r\x12\x1a\n\x12timecode_userbits2\x18\x0f \x01(\r\x12\x1a\n\x12timecode_userbits3\x18\x10 \x01(\r\x12\x11\n\ttimestamp\x18\x11 \x01(\x03\x12\x0c\n\x04type\x18\x12 \x01(\r\"\xf2\x02\n\x1aVb2V4l2BufQueueFtraceEvent\x12\r\n\x05\x66ield\x18\x01 \x01(\r\x12\r\n\x05\x66lags\x18\x02 \x01(\r\x12\r\n\x05minor\x18\x03 \x01(\x05\x12\x10\n\x08sequence\x18\x04 \x01(\r\x12\x16\n\x0etimecode_flags\x18\x05 \x01(\r\x12\x17\n\x0ftimecode_frames\x18\x06 \x01(\r\x12\x16\n\x0etimecode_hours\x18\x07 \x01(\r\x12\x18\n\x10timecode_minutes\x18\x08 \x01(\r\x12\x18\n\x10timecode_seconds\x18\t \x01(\r\x12\x15\n\rtimecode_type\x18\n \x01(\r\x12\x1a\n\x12timecode_userbits0\x18\x0b \x01(\r\x12\x1a\n\x12timecode_userbits1\x18\x0c \x01(\r\x12\x1a\n\x12timecode_userbits2\x18\r \x01(\r\x12\x1a\n\x12timecode_userbits3\x18\x0e \x01(\r\x12\x11\n\ttimestamp\x18\x0f \x01(\x03\"\xf1\x02\n\x19Vb2V4l2BufDoneFtraceEvent\x12\r\n\x05\x66ield\x18\x01 \x01(\r\x12\r\n\x05\x66lags\x18\x02 \x01(\r\x12\r\n\x05minor\x18\x03 \x01(\x05\x12\x10\n\x08sequence\x18\x04 \x01(\r\x12\x16\n\x0etimecode_flags\x18\x05 \x01(\r\x12\x17\n\x0ftimecode_frames\x18\x06 \x01(\r\x12\x16\n\x0etimecode_hours\x18\x07 \x01(\r\x12\x18\n\x10timecode_minutes\x18\x08 \x01(\r\x12\x18\n\x10timecode_seconds\x18\t \x01(\r\x12\x15\n\rtimecode_type\x18\n \x01(\r\x12\x1a\n\x12timecode_userbits0\x18\x0b \x01(\r\x12\x1a\n\x12timecode_userbits1\x18\x0c \x01(\r\x12\x1a\n\x12timecode_userbits2\x18\r \x01(\r\x12\x1a\n\x12timecode_userbits3\x18\x0e \x01(\r\x12\x11\n\ttimestamp\x18\x0f \x01(\x03\"\xee\x02\n\x16Vb2V4l2QbufFtraceEvent\x12\r\n\x05\x66ield\x18\x01 \x01(\r\x12\r\n\x05\x66lags\x18\x02 \x01(\r\x12\r\n\x05minor\x18\x03 \x01(\x05\x12\x10\n\x08sequence\x18\x04 \x01(\r\x12\x16\n\x0etimecode_flags\x18\x05 \x01(\r\x12\x17\n\x0ftimecode_frames\x18\x06 \x01(\r\x12\x16\n\x0etimecode_hours\x18\x07 \x01(\r\x12\x18\n\x10timecode_minutes\x18\x08 \x01(\r\x12\x18\n\x10timecode_seconds\x18\t \x01(\r\x12\x15\n\rtimecode_type\x18\n \x01(\r\x12\x1a\n\x12timecode_userbits0\x18\x0b \x01(\r\x12\x1a\n\x12timecode_userbits1\x18\x0c \x01(\r\x12\x1a\n\x12timecode_userbits2\x18\r \x01(\r\x12\x1a\n\x12timecode_userbits3\x18\x0e \x01(\r\x12\x11\n\ttimestamp\x18\x0f \x01(\x03\"\xef\x02\n\x17Vb2V4l2DqbufFtraceEvent\x12\r\n\x05\x66ield\x18\x01 \x01(\r\x12\r\n\x05\x66lags\x18\x02 \x01(\r\x12\r\n\x05minor\x18\x03 \x01(\x05\x12\x10\n\x08sequence\x18\x04 \x01(\r\x12\x16\n\x0etimecode_flags\x18\x05 \x01(\r\x12\x17\n\x0ftimecode_frames\x18\x06 \x01(\r\x12\x16\n\x0etimecode_hours\x18\x07 \x01(\r\x12\x18\n\x10timecode_minutes\x18\x08 \x01(\r\x12\x18\n\x10timecode_seconds\x18\t \x01(\r\x12\x15\n\rtimecode_type\x18\n \x01(\r\x12\x1a\n\x12timecode_userbits0\x18\x0b \x01(\r\x12\x1a\n\x12timecode_userbits1\x18\x0c \x01(\r\x12\x1a\n\x12timecode_userbits2\x18\r \x01(\r\x12\x1a\n\x12timecode_userbits3\x18\x0e \x01(\r\x12\x11\n\ttimestamp\x18\x0f \x01(\x03\"\xa5\x01\n\x1cVirtioGpuCmdQueueFtraceEvent\x12\x0e\n\x06\x63tx_id\x18\x01 \x01(\r\x12\x0b\n\x03\x64\x65v\x18\x02 \x01(\x05\x12\x10\n\x08\x66\x65nce_id\x18\x03 \x01(\x04\x12\r\n\x05\x66lags\x18\x04 \x01(\r\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x10\n\x08num_free\x18\x06 \x01(\r\x12\r\n\x05seqno\x18\x07 \x01(\r\x12\x0c\n\x04type\x18\x08 \x01(\r\x12\n\n\x02vq\x18\t \x01(\r\"\xa8\x01\n\x1fVirtioGpuCmdResponseFtraceEvent\x12\x0e\n\x06\x63tx_id\x18\x01 \x01(\r\x12\x0b\n\x03\x64\x65v\x18\x02 \x01(\x05\x12\x10\n\x08\x66\x65nce_id\x18\x03 \x01(\x04\x12\r\n\x05\x66lags\x18\x04 \x01(\r\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x10\n\x08num_free\x18\x06 \x01(\r\x12\r\n\x05seqno\x18\x07 \x01(\r\x12\x0c\n\x04type\x18\x08 \x01(\r\x12\n\n\x02vq\x18\t \x01(\r\"<\n\x19VirtioVideoCmdFtraceEvent\x12\x11\n\tstream_id\x18\x01 \x01(\r\x12\x0c\n\x04type\x18\x02 \x01(\r\"@\n\x1dVirtioVideoCmdDoneFtraceEvent\x12\x11\n\tstream_id\x18\x01 \x01(\r\x12\x0c\n\x04type\x18\x02 \x01(\r\"\xc4\x01\n#VirtioVideoResourceQueueFtraceEvent\x12\x12\n\ndata_size0\x18\x01 \x01(\r\x12\x12\n\ndata_size1\x18\x02 \x01(\r\x12\x12\n\ndata_size2\x18\x03 \x01(\r\x12\x12\n\ndata_size3\x18\x04 \x01(\r\x12\x12\n\nqueue_type\x18\x05 \x01(\r\x12\x13\n\x0bresource_id\x18\x06 \x01(\x05\x12\x11\n\tstream_id\x18\x07 \x01(\x05\x12\x11\n\ttimestamp\x18\x08 \x01(\x04\"\xc8\x01\n\'VirtioVideoResourceQueueDoneFtraceEvent\x12\x12\n\ndata_size0\x18\x01 \x01(\r\x12\x12\n\ndata_size1\x18\x02 \x01(\r\x12\x12\n\ndata_size2\x18\x03 \x01(\r\x12\x12\n\ndata_size3\x18\x04 \x01(\r\x12\x12\n\nqueue_type\x18\x05 \x01(\r\x12\x13\n\x0bresource_id\x18\x06 \x01(\x05\x12\x11\n\tstream_id\x18\x07 \x01(\x05\x12\x11\n\ttimestamp\x18\x08 \x01(\x04\"`\n%MmVmscanDirectReclaimBeginFtraceEvent\x12\r\n\x05order\x18\x01 \x01(\x05\x12\x15\n\rmay_writepage\x18\x02 \x01(\x05\x12\x11\n\tgfp_flags\x18\x03 \x01(\r\";\n#MmVmscanDirectReclaimEndFtraceEvent\x12\x14\n\x0cnr_reclaimed\x18\x01 \x01(\x04\"H\n\x1dMmVmscanKswapdWakeFtraceEvent\x12\x0b\n\x03nid\x18\x01 \x01(\x05\x12\r\n\x05order\x18\x02 \x01(\x05\x12\x0b\n\x03zid\x18\x03 \x01(\x05\"-\n\x1eMmVmscanKswapdSleepFtraceEvent\x12\x0b\n\x03nid\x18\x01 \x01(\x05\"\xe9\x01\n\x1cMmShrinkSlabStartFtraceEvent\x12\x13\n\x0b\x63\x61\x63he_items\x18\x01 \x01(\x04\x12\r\n\x05\x64\x65lta\x18\x02 \x01(\x04\x12\x11\n\tgfp_flags\x18\x03 \x01(\r\x12\x0f\n\x07lru_pgs\x18\x04 \x01(\x04\x12\x1c\n\x14nr_objects_to_shrink\x18\x05 \x01(\x03\x12\x13\n\x0bpgs_scanned\x18\x06 \x01(\x04\x12\x0b\n\x03shr\x18\x07 \x01(\x04\x12\x0e\n\x06shrink\x18\x08 \x01(\x04\x12\x12\n\ntotal_scan\x18\t \x01(\x04\x12\x0b\n\x03nid\x18\n \x01(\x05\x12\x10\n\x08priority\x18\x0b \x01(\x05\"\x91\x01\n\x1aMmShrinkSlabEndFtraceEvent\x12\x10\n\x08new_scan\x18\x01 \x01(\x03\x12\x0e\n\x06retval\x18\x02 \x01(\x05\x12\x0b\n\x03shr\x18\x03 \x01(\x04\x12\x0e\n\x06shrink\x18\x04 \x01(\x04\x12\x12\n\ntotal_scan\x18\x05 \x01(\x03\x12\x13\n\x0bunused_scan\x18\x06 \x01(\x03\x12\x0b\n\x03nid\x18\x07 \x01(\x05\"B\n WorkqueueActivateWorkFtraceEvent\x12\x0c\n\x04work\x18\x01 \x01(\x04\x12\x10\n\x08\x66unction\x18\x02 \x01(\x04\"@\n\x1eWorkqueueExecuteEndFtraceEvent\x12\x0c\n\x04work\x18\x01 \x01(\x04\x12\x10\n\x08\x66unction\x18\x02 \x01(\x04\"B\n WorkqueueExecuteStartFtraceEvent\x12\x0c\n\x04work\x18\x01 \x01(\x04\x12\x10\n\x08\x66unction\x18\x02 \x01(\x04\"p\n\x1dWorkqueueQueueWorkFtraceEvent\x12\x0c\n\x04work\x18\x01 \x01(\x04\x12\x10\n\x08\x66unction\x18\x02 \x01(\x04\x12\x0f\n\x07req_cpu\x18\x04 \x01(\x05\x12\x0b\n\x03\x63pu\x18\x05 \x01(\x05\x12\x11\n\tworkqueue\x18\x06 \x01(\t\"\xaf\xe1\x02\n\x0b\x46traceEvent\x12\x11\n\ttimestamp\x18\x01 \x01(\x04\x12\x0b\n\x03pid\x18\x02 \x01(\r\x12\x14\n\x0c\x63ommon_flags\x18\x05 \x01(\r\x12\x32\n\x05print\x18\x03 \x01(\x0b\x32!.perfetto.protos.PrintFtraceEventH\x00\x12?\n\x0csched_switch\x18\x04 \x01(\x0b\x32\'.perfetto.protos.SchedSwitchFtraceEventH\x00\x12\x41\n\rcpu_frequency\x18\x0b \x01(\x0b\x32(.perfetto.protos.CpuFrequencyFtraceEventH\x00\x12N\n\x14\x63pu_frequency_limits\x18\x0c \x01(\x0b\x32..perfetto.protos.CpuFrequencyLimitsFtraceEventH\x00\x12\x37\n\x08\x63pu_idle\x18\r \x01(\x0b\x32#.perfetto.protos.CpuIdleFtraceEventH\x00\x12?\n\x0c\x63lock_enable\x18\x0e \x01(\x0b\x32\'.perfetto.protos.ClockEnableFtraceEventH\x00\x12\x41\n\rclock_disable\x18\x0f \x01(\x0b\x32(.perfetto.protos.ClockDisableFtraceEventH\x00\x12\x42\n\x0e\x63lock_set_rate\x18\x10 \x01(\x0b\x32(.perfetto.protos.ClockSetRateFtraceEventH\x00\x12?\n\x0csched_wakeup\x18\x11 \x01(\x0b\x32\'.perfetto.protos.SchedWakeupFtraceEventH\x00\x12N\n\x14sched_blocked_reason\x18\x12 \x01(\x0b\x32..perfetto.protos.SchedBlockedReasonFtraceEventH\x00\x12H\n\x11sched_cpu_hotplug\x18\x13 \x01(\x0b\x32+.perfetto.protos.SchedCpuHotplugFtraceEventH\x00\x12?\n\x0csched_waking\x18\x14 \x01(\x0b\x32\'.perfetto.protos.SchedWakingFtraceEventH\x00\x12\x39\n\tipi_entry\x18\x15 \x01(\x0b\x32$.perfetto.protos.IpiEntryFtraceEventH\x00\x12\x37\n\x08ipi_exit\x18\x16 \x01(\x0b\x32#.perfetto.protos.IpiExitFtraceEventH\x00\x12\x39\n\tipi_raise\x18\x17 \x01(\x0b\x32$.perfetto.protos.IpiRaiseFtraceEventH\x00\x12\x41\n\rsoftirq_entry\x18\x18 \x01(\x0b\x32(.perfetto.protos.SoftirqEntryFtraceEventH\x00\x12?\n\x0csoftirq_exit\x18\x19 \x01(\x0b\x32\'.perfetto.protos.SoftirqExitFtraceEventH\x00\x12\x41\n\rsoftirq_raise\x18\x1a \x01(\x0b\x32(.perfetto.protos.SoftirqRaiseFtraceEventH\x00\x12\x37\n\x08i2c_read\x18\x1b \x01(\x0b\x32#.perfetto.protos.I2cReadFtraceEventH\x00\x12\x39\n\ti2c_write\x18\x1c \x01(\x0b\x32$.perfetto.protos.I2cWriteFtraceEventH\x00\x12;\n\ni2c_result\x18\x1d \x01(\x0b\x32%.perfetto.protos.I2cResultFtraceEventH\x00\x12\x39\n\ti2c_reply\x18\x1e \x01(\x0b\x32$.perfetto.protos.I2cReplyFtraceEventH\x00\x12;\n\nsmbus_read\x18\x1f \x01(\x0b\x32%.perfetto.protos.SmbusReadFtraceEventH\x00\x12=\n\x0bsmbus_write\x18  \x01(\x0b\x32&.perfetto.protos.SmbusWriteFtraceEventH\x00\x12?\n\x0csmbus_result\x18! \x01(\x0b\x32\'.perfetto.protos.SmbusResultFtraceEventH\x00\x12=\n\x0bsmbus_reply\x18\" \x01(\x0b\x32&.perfetto.protos.SmbusReplyFtraceEventH\x00\x12\x43\n\x0elowmemory_kill\x18# \x01(\x0b\x32).perfetto.protos.LowmemoryKillFtraceEventH\x00\x12H\n\x11irq_handler_entry\x18$ \x01(\x0b\x32+.perfetto.protos.IrqHandlerEntryFtraceEventH\x00\x12\x46\n\x10irq_handler_exit\x18% \x01(\x0b\x32*.perfetto.protos.IrqHandlerExitFtraceEventH\x00\x12\x35\n\x07sync_pt\x18& \x01(\x0b\x32\".perfetto.protos.SyncPtFtraceEventH\x00\x12\x41\n\rsync_timeline\x18\' \x01(\x0b\x32(.perfetto.protos.SyncTimelineFtraceEventH\x00\x12\x39\n\tsync_wait\x18( \x01(\x0b\x32$.perfetto.protos.SyncWaitFtraceEventH\x00\x12K\n\x13\x65xt4_da_write_begin\x18) \x01(\x0b\x32,.perfetto.protos.Ext4DaWriteBeginFtraceEventH\x00\x12G\n\x11\x65xt4_da_write_end\x18* \x01(\x0b\x32*.perfetto.protos.Ext4DaWriteEndFtraceEventH\x00\x12M\n\x14\x65xt4_sync_file_enter\x18+ \x01(\x0b\x32-.perfetto.protos.Ext4SyncFileEnterFtraceEventH\x00\x12K\n\x13\x65xt4_sync_file_exit\x18, \x01(\x0b\x32,.perfetto.protos.Ext4SyncFileExitFtraceEventH\x00\x12\x42\n\x0e\x62lock_rq_issue\x18- \x01(\x0b\x32(.perfetto.protos.BlockRqIssueFtraceEventH\x00\x12`\n\x1emm_vmscan_direct_reclaim_begin\x18. \x01(\x0b\x32\x36.perfetto.protos.MmVmscanDirectReclaimBeginFtraceEventH\x00\x12\\\n\x1cmm_vmscan_direct_reclaim_end\x18/ \x01(\x0b\x32\x34.perfetto.protos.MmVmscanDirectReclaimEndFtraceEventH\x00\x12O\n\x15mm_vmscan_kswapd_wake\x18\x30 \x01(\x0b\x32..perfetto.protos.MmVmscanKswapdWakeFtraceEventH\x00\x12Q\n\x16mm_vmscan_kswapd_sleep\x18\x31 \x01(\x0b\x32/.perfetto.protos.MmVmscanKswapdSleepFtraceEventH\x00\x12K\n\x12\x62inder_transaction\x18\x32 \x01(\x0b\x32-.perfetto.protos.BinderTransactionFtraceEventH\x00\x12\\\n\x1b\x62inder_transaction_received\x18\x33 \x01(\x0b\x32\x35.perfetto.protos.BinderTransactionReceivedFtraceEventH\x00\x12L\n\x13\x62inder_set_priority\x18\x34 \x01(\x0b\x32-.perfetto.protos.BinderSetPriorityFtraceEventH\x00\x12=\n\x0b\x62inder_lock\x18\x35 \x01(\x0b\x32&.perfetto.protos.BinderLockFtraceEventH\x00\x12\x41\n\rbinder_locked\x18\x36 \x01(\x0b\x32(.perfetto.protos.BinderLockedFtraceEventH\x00\x12\x41\n\rbinder_unlock\x18\x37 \x01(\x0b\x32(.perfetto.protos.BinderUnlockFtraceEventH\x00\x12T\n\x17workqueue_activate_work\x18\x38 \x01(\x0b\x32\x31.perfetto.protos.WorkqueueActivateWorkFtraceEventH\x00\x12P\n\x15workqueue_execute_end\x18\x39 \x01(\x0b\x32/.perfetto.protos.WorkqueueExecuteEndFtraceEventH\x00\x12T\n\x17workqueue_execute_start\x18: \x01(\x0b\x32\x31.perfetto.protos.WorkqueueExecuteStartFtraceEventH\x00\x12N\n\x14workqueue_queue_work\x18; \x01(\x0b\x32..perfetto.protos.WorkqueueQueueWorkFtraceEventH\x00\x12I\n\x11regulator_disable\x18< \x01(\x0b\x32,.perfetto.protos.RegulatorDisableFtraceEventH\x00\x12Z\n\x1aregulator_disable_complete\x18= \x01(\x0b\x32\x34.perfetto.protos.RegulatorDisableCompleteFtraceEventH\x00\x12G\n\x10regulator_enable\x18> \x01(\x0b\x32+.perfetto.protos.RegulatorEnableFtraceEventH\x00\x12X\n\x19regulator_enable_complete\x18? \x01(\x0b\x32\x33.perfetto.protos.RegulatorEnableCompleteFtraceEventH\x00\x12R\n\x16regulator_enable_delay\x18@ \x01(\x0b\x32\x30.perfetto.protos.RegulatorEnableDelayFtraceEventH\x00\x12P\n\x15regulator_set_voltage\x18\x41 \x01(\x0b\x32/.perfetto.protos.RegulatorSetVoltageFtraceEventH\x00\x12\x61\n\x1eregulator_set_voltage_complete\x18\x42 \x01(\x0b\x32\x37.perfetto.protos.RegulatorSetVoltageCompleteFtraceEventH\x00\x12J\n\x12\x63group_attach_task\x18\x43 \x01(\x0b\x32,.perfetto.protos.CgroupAttachTaskFtraceEventH\x00\x12?\n\x0c\x63group_mkdir\x18\x44 \x01(\x0b\x32\'.perfetto.protos.CgroupMkdirFtraceEventH\x00\x12\x43\n\x0e\x63group_remount\x18\x45 \x01(\x0b\x32).perfetto.protos.CgroupRemountFtraceEventH\x00\x12?\n\x0c\x63group_rmdir\x18\x46 \x01(\x0b\x32\'.perfetto.protos.CgroupRmdirFtraceEventH\x00\x12P\n\x15\x63group_transfer_tasks\x18G \x01(\x0b\x32/.perfetto.protos.CgroupTransferTasksFtraceEventH\x00\x12L\n\x13\x63group_destroy_root\x18H \x01(\x0b\x32-.perfetto.protos.CgroupDestroyRootFtraceEventH\x00\x12\x43\n\x0e\x63group_release\x18I \x01(\x0b\x32).perfetto.protos.CgroupReleaseFtraceEventH\x00\x12\x41\n\rcgroup_rename\x18J \x01(\x0b\x32(.perfetto.protos.CgroupRenameFtraceEventH\x00\x12H\n\x11\x63group_setup_root\x18K \x01(\x0b\x32+.perfetto.protos.CgroupSetupRootFtraceEventH\x00\x12\x44\n\x0fmdp_cmd_kickoff\x18L \x01(\x0b\x32).perfetto.protos.MdpCmdKickoffFtraceEventH\x00\x12;\n\nmdp_commit\x18M \x01(\x0b\x32%.perfetto.protos.MdpCommitFtraceEventH\x00\x12\x43\n\x0fmdp_perf_set_ot\x18N \x01(\x0b\x32(.perfetto.protos.MdpPerfSetOtFtraceEventH\x00\x12\x44\n\x0fmdp_sspp_change\x18O \x01(\x0b\x32).perfetto.protos.MdpSsppChangeFtraceEventH\x00\x12J\n\x12tracing_mark_write\x18P \x01(\x0b\x32,.perfetto.protos.TracingMarkWriteFtraceEventH\x00\x12O\n\x15mdp_cmd_pingpong_done\x18Q \x01(\x0b\x32..perfetto.protos.MdpCmdPingpongDoneFtraceEventH\x00\x12\x42\n\x0emdp_compare_bw\x18R \x01(\x0b\x32(.perfetto.protos.MdpCompareBwFtraceEventH\x00\x12R\n\x17mdp_perf_set_panic_luts\x18S \x01(\x0b\x32/.perfetto.protos.MdpPerfSetPanicLutsFtraceEventH\x00\x12>\n\x0cmdp_sspp_set\x18T \x01(\x0b\x32&.perfetto.protos.MdpSsppSetFtraceEventH\x00\x12M\n\x14mdp_cmd_readptr_done\x18U \x01(\x0b\x32-.perfetto.protos.MdpCmdReadptrDoneFtraceEventH\x00\x12>\n\x0cmdp_misr_crc\x18V \x01(\x0b\x32&.perfetto.protos.MdpMisrCrcFtraceEventH\x00\x12N\n\x15mdp_perf_set_qos_luts\x18W \x01(\x0b\x32-.perfetto.protos.MdpPerfSetQosLutsFtraceEventH\x00\x12H\n\x11mdp_trace_counter\x18X \x01(\x0b\x32+.perfetto.protos.MdpTraceCounterFtraceEventH\x00\x12I\n\x12mdp_cmd_release_bw\x18Y \x01(\x0b\x32+.perfetto.protos.MdpCmdReleaseBwFtraceEventH\x00\x12\x46\n\x10mdp_mixer_update\x18Z \x01(\x0b\x32*.perfetto.protos.MdpMixerUpdateFtraceEventH\x00\x12P\n\x16mdp_perf_set_wm_levels\x18[ \x01(\x0b\x32..perfetto.protos.MdpPerfSetWmLevelsFtraceEventH\x00\x12S\n\x17mdp_video_underrun_done\x18\\ \x01(\x0b\x32\x30.perfetto.protos.MdpVideoUnderrunDoneFtraceEventH\x00\x12O\n\x15mdp_cmd_wait_pingpong\x18] \x01(\x0b\x32..perfetto.protos.MdpCmdWaitPingpongFtraceEventH\x00\x12O\n\x15mdp_perf_prefill_calc\x18^ \x01(\x0b\x32..perfetto.protos.MdpPerfPrefillCalcFtraceEventH\x00\x12K\n\x13mdp_perf_update_bus\x18_ \x01(\x0b\x32,.perfetto.protos.MdpPerfUpdateBusFtraceEventH\x00\x12T\n\x18rotator_bw_ao_as_context\x18` \x01(\x0b\x32\x30.perfetto.protos.RotatorBwAoAsContextFtraceEventH\x00\x12[\n\x1cmm_filemap_add_to_page_cache\x18\x61 \x01(\x0b\x32\x33.perfetto.protos.MmFilemapAddToPageCacheFtraceEventH\x00\x12\x65\n!mm_filemap_delete_from_page_cache\x18\x62 \x01(\x0b\x32\x38.perfetto.protos.MmFilemapDeleteFromPageCacheFtraceEventH\x00\x12L\n\x13mm_compaction_begin\x18\x63 \x01(\x0b\x32-.perfetto.protos.MmCompactionBeginFtraceEventH\x00\x12\x61\n\x1emm_compaction_defer_compaction\x18\x64 \x01(\x0b\x32\x37.perfetto.protos.MmCompactionDeferCompactionFtraceEventH\x00\x12R\n\x16mm_compaction_deferred\x18\x65 \x01(\x0b\x32\x30.perfetto.protos.MmCompactionDeferredFtraceEventH\x00\x12W\n\x19mm_compaction_defer_reset\x18\x66 \x01(\x0b\x32\x32.perfetto.protos.MmCompactionDeferResetFtraceEventH\x00\x12H\n\x11mm_compaction_end\x18g \x01(\x0b\x32+.perfetto.protos.MmCompactionEndFtraceEventH\x00\x12R\n\x16mm_compaction_finished\x18h \x01(\x0b\x32\x30.perfetto.protos.MmCompactionFinishedFtraceEventH\x00\x12\x63\n\x1fmm_compaction_isolate_freepages\x18i \x01(\x0b\x32\x38.perfetto.protos.MmCompactionIsolateFreepagesFtraceEventH\x00\x12i\n\"mm_compaction_isolate_migratepages\x18j \x01(\x0b\x32;.perfetto.protos.MmCompactionIsolateMigratepagesFtraceEventH\x00\x12_\n\x1dmm_compaction_kcompactd_sleep\x18k \x01(\x0b\x32\x36.perfetto.protos.MmCompactionKcompactdSleepFtraceEventH\x00\x12]\n\x1cmm_compaction_kcompactd_wake\x18l \x01(\x0b\x32\x35.perfetto.protos.MmCompactionKcompactdWakeFtraceEventH\x00\x12Z\n\x1amm_compaction_migratepages\x18m \x01(\x0b\x32\x34.perfetto.protos.MmCompactionMigratepagesFtraceEventH\x00\x12R\n\x16mm_compaction_suitable\x18n \x01(\x0b\x32\x30.perfetto.protos.MmCompactionSuitableFtraceEventH\x00\x12g\n\"mm_compaction_try_to_compact_pages\x18o \x01(\x0b\x32\x39.perfetto.protos.MmCompactionTryToCompactPagesFtraceEventH\x00\x12\x61\n\x1emm_compaction_wakeup_kcompactd\x18p \x01(\x0b\x32\x37.perfetto.protos.MmCompactionWakeupKcompactdFtraceEventH\x00\x12\x43\n\x0esuspend_resume\x18q \x01(\x0b\x32).perfetto.protos.SuspendResumeFtraceEventH\x00\x12\x46\n\x10sched_wakeup_new\x18r \x01(\x0b\x32*.perfetto.protos.SchedWakeupNewFtraceEventH\x00\x12L\n\x13\x62lock_bio_backmerge\x18s \x01(\x0b\x32-.perfetto.protos.BlockBioBackmergeFtraceEventH\x00\x12\x46\n\x10\x62lock_bio_bounce\x18t \x01(\x0b\x32*.perfetto.protos.BlockBioBounceFtraceEventH\x00\x12J\n\x12\x62lock_bio_complete\x18u \x01(\x0b\x32,.perfetto.protos.BlockBioCompleteFtraceEventH\x00\x12N\n\x14\x62lock_bio_frontmerge\x18v \x01(\x0b\x32..perfetto.protos.BlockBioFrontmergeFtraceEventH\x00\x12\x44\n\x0f\x62lock_bio_queue\x18w \x01(\x0b\x32).perfetto.protos.BlockBioQueueFtraceEventH\x00\x12\x44\n\x0f\x62lock_bio_remap\x18x \x01(\x0b\x32).perfetto.protos.BlockBioRemapFtraceEventH\x00\x12J\n\x12\x62lock_dirty_buffer\x18y \x01(\x0b\x32,.perfetto.protos.BlockDirtyBufferFtraceEventH\x00\x12=\n\x0b\x62lock_getrq\x18z \x01(\x0b\x32&.perfetto.protos.BlockGetrqFtraceEventH\x00\x12;\n\nblock_plug\x18{ \x01(\x0b\x32%.perfetto.protos.BlockPlugFtraceEventH\x00\x12\x42\n\x0e\x62lock_rq_abort\x18| \x01(\x0b\x32(.perfetto.protos.BlockRqAbortFtraceEventH\x00\x12H\n\x11\x62lock_rq_complete\x18} \x01(\x0b\x32+.perfetto.protos.BlockRqCompleteFtraceEventH\x00\x12\x44\n\x0f\x62lock_rq_insert\x18~ \x01(\x0b\x32).perfetto.protos.BlockRqInsertFtraceEventH\x00\x12\x43\n\x0e\x62lock_rq_remap\x18\x80\x01 \x01(\x0b\x32(.perfetto.protos.BlockRqRemapFtraceEventH\x00\x12G\n\x10\x62lock_rq_requeue\x18\x81\x01 \x01(\x0b\x32*.perfetto.protos.BlockRqRequeueFtraceEventH\x00\x12\x42\n\rblock_sleeprq\x18\x82\x01 \x01(\x0b\x32(.perfetto.protos.BlockSleeprqFtraceEventH\x00\x12>\n\x0b\x62lock_split\x18\x83\x01 \x01(\x0b\x32&.perfetto.protos.BlockSplitFtraceEventH\x00\x12K\n\x12\x62lock_touch_buffer\x18\x84\x01 \x01(\x0b\x32,.perfetto.protos.BlockTouchBufferFtraceEventH\x00\x12@\n\x0c\x62lock_unplug\x18\x85\x01 \x01(\x0b\x32\'.perfetto.protos.BlockUnplugFtraceEventH\x00\x12N\n\x14\x65xt4_alloc_da_blocks\x18\x86\x01 \x01(\x0b\x32-.perfetto.protos.Ext4AllocDaBlocksFtraceEventH\x00\x12O\n\x14\x65xt4_allocate_blocks\x18\x87\x01 \x01(\x0b\x32..perfetto.protos.Ext4AllocateBlocksFtraceEventH\x00\x12M\n\x13\x65xt4_allocate_inode\x18\x88\x01 \x01(\x0b\x32-.perfetto.protos.Ext4AllocateInodeFtraceEventH\x00\x12\\\n\x1b\x65xt4_begin_ordered_truncate\x18\x89\x01 \x01(\x0b\x32\x34.perfetto.protos.Ext4BeginOrderedTruncateFtraceEventH\x00\x12M\n\x13\x65xt4_collapse_range\x18\x8a\x01 \x01(\x0b\x32-.perfetto.protos.Ext4CollapseRangeFtraceEventH\x00\x12P\n\x15\x65xt4_da_release_space\x18\x8b\x01 \x01(\x0b\x32..perfetto.protos.Ext4DaReleaseSpaceFtraceEventH\x00\x12P\n\x15\x65xt4_da_reserve_space\x18\x8c\x01 \x01(\x0b\x32..perfetto.protos.Ext4DaReserveSpaceFtraceEventH\x00\x12]\n\x1c\x65xt4_da_update_reserve_space\x18\x8d\x01 \x01(\x0b\x32\x34.perfetto.protos.Ext4DaUpdateReserveSpaceFtraceEventH\x00\x12L\n\x13\x65xt4_da_write_pages\x18\x8e\x01 \x01(\x0b\x32,.perfetto.protos.Ext4DaWritePagesFtraceEventH\x00\x12Y\n\x1a\x65xt4_da_write_pages_extent\x18\x8f\x01 \x01(\x0b\x32\x32.perfetto.protos.Ext4DaWritePagesExtentFtraceEventH\x00\x12N\n\x14\x65xt4_direct_IO_enter\x18\x90\x01 \x01(\x0b\x32-.perfetto.protos.Ext4DirectIOEnterFtraceEventH\x00\x12L\n\x13\x65xt4_direct_IO_exit\x18\x91\x01 \x01(\x0b\x32,.perfetto.protos.Ext4DirectIOExitFtraceEventH\x00\x12M\n\x13\x65xt4_discard_blocks\x18\x92\x01 \x01(\x0b\x32-.perfetto.protos.Ext4DiscardBlocksFtraceEventH\x00\x12]\n\x1b\x65xt4_discard_preallocations\x18\x93\x01 \x01(\x0b\x32\x35.perfetto.protos.Ext4DiscardPreallocationsFtraceEventH\x00\x12\x45\n\x0f\x65xt4_drop_inode\x18\x94\x01 \x01(\x0b\x32).perfetto.protos.Ext4DropInodeFtraceEventH\x00\x12N\n\x14\x65xt4_es_cache_extent\x18\x95\x01 \x01(\x0b\x32-.perfetto.protos.Ext4EsCacheExtentFtraceEventH\x00\x12q\n\'ext4_es_find_delayed_extent_range_enter\x18\x96\x01 \x01(\x0b\x32=.perfetto.protos.Ext4EsFindDelayedExtentRangeEnterFtraceEventH\x00\x12o\n&ext4_es_find_delayed_extent_range_exit\x18\x97\x01 \x01(\x0b\x32<.perfetto.protos.Ext4EsFindDelayedExtentRangeExitFtraceEventH\x00\x12P\n\x15\x65xt4_es_insert_extent\x18\x98\x01 \x01(\x0b\x32..perfetto.protos.Ext4EsInsertExtentFtraceEventH\x00\x12[\n\x1b\x65xt4_es_lookup_extent_enter\x18\x99\x01 \x01(\x0b\x32\x33.perfetto.protos.Ext4EsLookupExtentEnterFtraceEventH\x00\x12Y\n\x1a\x65xt4_es_lookup_extent_exit\x18\x9a\x01 \x01(\x0b\x32\x32.perfetto.protos.Ext4EsLookupExtentExitFtraceEventH\x00\x12P\n\x15\x65xt4_es_remove_extent\x18\x9b\x01 \x01(\x0b\x32..perfetto.protos.Ext4EsRemoveExtentFtraceEventH\x00\x12\x43\n\x0e\x65xt4_es_shrink\x18\x9c\x01 \x01(\x0b\x32(.perfetto.protos.Ext4EsShrinkFtraceEventH\x00\x12N\n\x14\x65xt4_es_shrink_count\x18\x9d\x01 \x01(\x0b\x32-.perfetto.protos.Ext4EsShrinkCountFtraceEventH\x00\x12W\n\x19\x65xt4_es_shrink_scan_enter\x18\x9e\x01 \x01(\x0b\x32\x31.perfetto.protos.Ext4EsShrinkScanEnterFtraceEventH\x00\x12U\n\x18\x65xt4_es_shrink_scan_exit\x18\x9f\x01 \x01(\x0b\x32\x30.perfetto.protos.Ext4EsShrinkScanExitFtraceEventH\x00\x12G\n\x10\x65xt4_evict_inode\x18\xa0\x01 \x01(\x0b\x32*.perfetto.protos.Ext4EvictInodeFtraceEventH\x00\x12n\n%ext4_ext_convert_to_initialized_enter\x18\xa1\x01 \x01(\x0b\x32<.perfetto.protos.Ext4ExtConvertToInitializedEnterFtraceEventH\x00\x12t\n(ext4_ext_convert_to_initialized_fastpath\x18\xa2\x01 \x01(\x0b\x32?.perfetto.protos.Ext4ExtConvertToInitializedFastpathFtraceEventH\x00\x12g\n!ext4_ext_handle_unwritten_extents\x18\xa3\x01 \x01(\x0b\x32\x39.perfetto.protos.Ext4ExtHandleUnwrittenExtentsFtraceEventH\x00\x12H\n\x11\x65xt4_ext_in_cache\x18\xa4\x01 \x01(\x0b\x32*.perfetto.protos.Ext4ExtInCacheFtraceEventH\x00\x12N\n\x14\x65xt4_ext_load_extent\x18\xa5\x01 \x01(\x0b\x32-.perfetto.protos.Ext4ExtLoadExtentFtraceEventH\x00\x12W\n\x19\x65xt4_ext_map_blocks_enter\x18\xa6\x01 \x01(\x0b\x32\x31.perfetto.protos.Ext4ExtMapBlocksEnterFtraceEventH\x00\x12U\n\x18\x65xt4_ext_map_blocks_exit\x18\xa7\x01 \x01(\x0b\x32\x30.perfetto.protos.Ext4ExtMapBlocksExitFtraceEventH\x00\x12O\n\x15\x65xt4_ext_put_in_cache\x18\xa8\x01 \x01(\x0b\x32-.perfetto.protos.Ext4ExtPutInCacheFtraceEventH\x00\x12P\n\x15\x65xt4_ext_remove_space\x18\xa9\x01 \x01(\x0b\x32..perfetto.protos.Ext4ExtRemoveSpaceFtraceEventH\x00\x12Y\n\x1a\x65xt4_ext_remove_space_done\x18\xaa\x01 \x01(\x0b\x32\x32.perfetto.protos.Ext4ExtRemoveSpaceDoneFtraceEventH\x00\x12\x44\n\x0f\x65xt4_ext_rm_idx\x18\xab\x01 \x01(\x0b\x32(.perfetto.protos.Ext4ExtRmIdxFtraceEventH\x00\x12\x46\n\x10\x65xt4_ext_rm_leaf\x18\xac\x01 \x01(\x0b\x32).perfetto.protos.Ext4ExtRmLeafFtraceEventH\x00\x12N\n\x14\x65xt4_ext_show_extent\x18\xad\x01 \x01(\x0b\x32-.perfetto.protos.Ext4ExtShowExtentFtraceEventH\x00\x12O\n\x14\x65xt4_fallocate_enter\x18\xae\x01 \x01(\x0b\x32..perfetto.protos.Ext4FallocateEnterFtraceEventH\x00\x12M\n\x13\x65xt4_fallocate_exit\x18\xaf\x01 \x01(\x0b\x32-.perfetto.protos.Ext4FallocateExitFtraceEventH\x00\x12V\n\x18\x65xt4_find_delalloc_range\x18\xb0\x01 \x01(\x0b\x32\x31.perfetto.protos.Ext4FindDelallocRangeFtraceEventH\x00\x12>\n\x0b\x65xt4_forget\x18\xb1\x01 \x01(\x0b\x32&.perfetto.protos.Ext4ForgetFtraceEventH\x00\x12G\n\x10\x65xt4_free_blocks\x18\xb2\x01 \x01(\x0b\x32*.perfetto.protos.Ext4FreeBlocksFtraceEventH\x00\x12\x45\n\x0f\x65xt4_free_inode\x18\xb3\x01 \x01(\x0b\x32).perfetto.protos.Ext4FreeInodeFtraceEventH\x00\x12j\n#ext4_get_implied_cluster_alloc_exit\x18\xb4\x01 \x01(\x0b\x32:.perfetto.protos.Ext4GetImpliedClusterAllocExitFtraceEventH\x00\x12\x63\n\x1f\x65xt4_get_reserved_cluster_alloc\x18\xb5\x01 \x01(\x0b\x32\x37.perfetto.protos.Ext4GetReservedClusterAllocFtraceEventH\x00\x12W\n\x19\x65xt4_ind_map_blocks_enter\x18\xb6\x01 \x01(\x0b\x32\x31.perfetto.protos.Ext4IndMapBlocksEnterFtraceEventH\x00\x12U\n\x18\x65xt4_ind_map_blocks_exit\x18\xb7\x01 \x01(\x0b\x32\x30.perfetto.protos.Ext4IndMapBlocksExitFtraceEventH\x00\x12I\n\x11\x65xt4_insert_range\x18\xb8\x01 \x01(\x0b\x32+.perfetto.protos.Ext4InsertRangeFtraceEventH\x00\x12N\n\x13\x65xt4_invalidatepage\x18\xb9\x01 \x01(\x0b\x32..perfetto.protos.Ext4InvalidatepageFtraceEventH\x00\x12K\n\x12\x65xt4_journal_start\x18\xba\x01 \x01(\x0b\x32,.perfetto.protos.Ext4JournalStartFtraceEventH\x00\x12\\\n\x1b\x65xt4_journal_start_reserved\x18\xbb\x01 \x01(\x0b\x32\x34.perfetto.protos.Ext4JournalStartReservedFtraceEventH\x00\x12\x63\n\x1e\x65xt4_journalled_invalidatepage\x18\xbc\x01 \x01(\x0b\x32\x38.perfetto.protos.Ext4JournalledInvalidatepageFtraceEventH\x00\x12X\n\x19\x65xt4_journalled_write_end\x18\xbd\x01 \x01(\x0b\x32\x32.perfetto.protos.Ext4JournalledWriteEndFtraceEventH\x00\x12\x45\n\x0f\x65xt4_load_inode\x18\xbe\x01 \x01(\x0b\x32).perfetto.protos.Ext4LoadInodeFtraceEventH\x00\x12R\n\x16\x65xt4_load_inode_bitmap\x18\xbf\x01 \x01(\x0b\x32/.perfetto.protos.Ext4LoadInodeBitmapFtraceEventH\x00\x12P\n\x15\x65xt4_mark_inode_dirty\x18\xc0\x01 \x01(\x0b\x32..perfetto.protos.Ext4MarkInodeDirtyFtraceEventH\x00\x12L\n\x13\x65xt4_mb_bitmap_load\x18\xc1\x01 \x01(\x0b\x32,.perfetto.protos.Ext4MbBitmapLoadFtraceEventH\x00\x12W\n\x19\x65xt4_mb_buddy_bitmap_load\x18\xc2\x01 \x01(\x0b\x32\x31.perfetto.protos.Ext4MbBuddyBitmapLoadFtraceEventH\x00\x12\x62\n\x1e\x65xt4_mb_discard_preallocations\x18\xc3\x01 \x01(\x0b\x32\x37.perfetto.protos.Ext4MbDiscardPreallocationsFtraceEventH\x00\x12M\n\x14\x65xt4_mb_new_group_pa\x18\xc4\x01 \x01(\x0b\x32,.perfetto.protos.Ext4MbNewGroupPaFtraceEventH\x00\x12M\n\x14\x65xt4_mb_new_inode_pa\x18\xc5\x01 \x01(\x0b\x32,.perfetto.protos.Ext4MbNewInodePaFtraceEventH\x00\x12U\n\x18\x65xt4_mb_release_group_pa\x18\xc6\x01 \x01(\x0b\x32\x30.perfetto.protos.Ext4MbReleaseGroupPaFtraceEventH\x00\x12U\n\x18\x65xt4_mb_release_inode_pa\x18\xc7\x01 \x01(\x0b\x32\x30.perfetto.protos.Ext4MbReleaseInodePaFtraceEventH\x00\x12K\n\x12\x65xt4_mballoc_alloc\x18\xc8\x01 \x01(\x0b\x32,.perfetto.protos.Ext4MballocAllocFtraceEventH\x00\x12O\n\x14\x65xt4_mballoc_discard\x18\xc9\x01 \x01(\x0b\x32..perfetto.protos.Ext4MballocDiscardFtraceEventH\x00\x12I\n\x11\x65xt4_mballoc_free\x18\xca\x01 \x01(\x0b\x32+.perfetto.protos.Ext4MballocFreeFtraceEventH\x00\x12Q\n\x15\x65xt4_mballoc_prealloc\x18\xcb\x01 \x01(\x0b\x32/.perfetto.protos.Ext4MballocPreallocFtraceEventH\x00\x12]\n\x1c\x65xt4_other_inode_update_time\x18\xcc\x01 \x01(\x0b\x32\x34.perfetto.protos.Ext4OtherInodeUpdateTimeFtraceEventH\x00\x12\x45\n\x0f\x65xt4_punch_hole\x18\xcd\x01 \x01(\x0b\x32).perfetto.protos.Ext4PunchHoleFtraceEventH\x00\x12[\n\x1b\x65xt4_read_block_bitmap_load\x18\xce\x01 \x01(\x0b\x32\x33.perfetto.protos.Ext4ReadBlockBitmapLoadFtraceEventH\x00\x12\x42\n\rext4_readpage\x18\xcf\x01 \x01(\x0b\x32(.perfetto.protos.Ext4ReadpageFtraceEventH\x00\x12H\n\x10\x65xt4_releasepage\x18\xd0\x01 \x01(\x0b\x32+.perfetto.protos.Ext4ReleasepageFtraceEventH\x00\x12K\n\x12\x65xt4_remove_blocks\x18\xd1\x01 \x01(\x0b\x32,.perfetto.protos.Ext4RemoveBlocksFtraceEventH\x00\x12M\n\x13\x65xt4_request_blocks\x18\xd2\x01 \x01(\x0b\x32-.perfetto.protos.Ext4RequestBlocksFtraceEventH\x00\x12K\n\x12\x65xt4_request_inode\x18\xd3\x01 \x01(\x0b\x32,.perfetto.protos.Ext4RequestInodeFtraceEventH\x00\x12?\n\x0c\x65xt4_sync_fs\x18\xd4\x01 \x01(\x0b\x32&.perfetto.protos.Ext4SyncFsFtraceEventH\x00\x12J\n\x12\x65xt4_trim_all_free\x18\xd5\x01 \x01(\x0b\x32+.perfetto.protos.Ext4TrimAllFreeFtraceEventH\x00\x12G\n\x10\x65xt4_trim_extent\x18\xd6\x01 \x01(\x0b\x32*.perfetto.protos.Ext4TrimExtentFtraceEventH\x00\x12M\n\x13\x65xt4_truncate_enter\x18\xd7\x01 \x01(\x0b\x32-.perfetto.protos.Ext4TruncateEnterFtraceEventH\x00\x12K\n\x12\x65xt4_truncate_exit\x18\xd8\x01 \x01(\x0b\x32,.perfetto.protos.Ext4TruncateExitFtraceEventH\x00\x12I\n\x11\x65xt4_unlink_enter\x18\xd9\x01 \x01(\x0b\x32+.perfetto.protos.Ext4UnlinkEnterFtraceEventH\x00\x12G\n\x10\x65xt4_unlink_exit\x18\xda\x01 \x01(\x0b\x32*.perfetto.protos.Ext4UnlinkExitFtraceEventH\x00\x12G\n\x10\x65xt4_write_begin\x18\xdb\x01 \x01(\x0b\x32*.perfetto.protos.Ext4WriteBeginFtraceEventH\x00\x12\x43\n\x0e\x65xt4_write_end\x18\xe6\x01 \x01(\x0b\x32(.perfetto.protos.Ext4WriteEndFtraceEventH\x00\x12\x44\n\x0e\x65xt4_writepage\x18\xe7\x01 \x01(\x0b\x32).perfetto.protos.Ext4WritepageFtraceEventH\x00\x12\x46\n\x0f\x65xt4_writepages\x18\xe8\x01 \x01(\x0b\x32*.perfetto.protos.Ext4WritepagesFtraceEventH\x00\x12S\n\x16\x65xt4_writepages_result\x18\xe9\x01 \x01(\x0b\x32\x30.perfetto.protos.Ext4WritepagesResultFtraceEventH\x00\x12\x45\n\x0f\x65xt4_zero_range\x18\xea\x01 \x01(\x0b\x32).perfetto.protos.Ext4ZeroRangeFtraceEventH\x00\x12@\n\x0ctask_newtask\x18\xeb\x01 \x01(\x0b\x32\'.perfetto.protos.TaskNewtaskFtraceEventH\x00\x12>\n\x0btask_rename\x18\xec\x01 \x01(\x0b\x32&.perfetto.protos.TaskRenameFtraceEventH\x00\x12K\n\x12sched_process_exec\x18\xed\x01 \x01(\x0b\x32,.perfetto.protos.SchedProcessExecFtraceEventH\x00\x12K\n\x12sched_process_exit\x18\xee\x01 \x01(\x0b\x32,.perfetto.protos.SchedProcessExitFtraceEventH\x00\x12K\n\x12sched_process_fork\x18\xef\x01 \x01(\x0b\x32,.perfetto.protos.SchedProcessForkFtraceEventH\x00\x12K\n\x12sched_process_free\x18\xf0\x01 \x01(\x0b\x32,.perfetto.protos.SchedProcessFreeFtraceEventH\x00\x12K\n\x12sched_process_hang\x18\xf1\x01 \x01(\x0b\x32,.perfetto.protos.SchedProcessHangFtraceEventH\x00\x12K\n\x12sched_process_wait\x18\xf2\x01 \x01(\x0b\x32,.perfetto.protos.SchedProcessWaitFtraceEventH\x00\x12J\n\x12\x66\x32\x66s_do_submit_bio\x18\xf3\x01 \x01(\x0b\x32+.perfetto.protos.F2fsDoSubmitBioFtraceEventH\x00\x12G\n\x10\x66\x32\x66s_evict_inode\x18\xf4\x01 \x01(\x0b\x32*.perfetto.protos.F2fsEvictInodeFtraceEventH\x00\x12\x44\n\x0e\x66\x32\x66s_fallocate\x18\xf5\x01 \x01(\x0b\x32).perfetto.protos.F2fsFallocateFtraceEventH\x00\x12L\n\x13\x66\x32\x66s_get_data_block\x18\xf6\x01 \x01(\x0b\x32,.perfetto.protos.F2fsGetDataBlockFtraceEventH\x00\x12\x45\n\x0f\x66\x32\x66s_get_victim\x18\xf7\x01 \x01(\x0b\x32).perfetto.protos.F2fsGetVictimFtraceEventH\x00\x12:\n\tf2fs_iget\x18\xf8\x01 \x01(\x0b\x32$.perfetto.protos.F2fsIgetFtraceEventH\x00\x12\x43\n\x0e\x66\x32\x66s_iget_exit\x18\xf9\x01 \x01(\x0b\x32(.perfetto.protos.F2fsIgetExitFtraceEventH\x00\x12\x43\n\x0e\x66\x32\x66s_new_inode\x18\xfa\x01 \x01(\x0b\x32(.perfetto.protos.F2fsNewInodeFtraceEventH\x00\x12\x42\n\rf2fs_readpage\x18\xfb\x01 \x01(\x0b\x32(.perfetto.protos.F2fsReadpageFtraceEventH\x00\x12R\n\x16\x66\x32\x66s_reserve_new_block\x18\xfc\x01 \x01(\x0b\x32/.perfetto.protos.F2fsReserveNewBlockFtraceEventH\x00\x12L\n\x13\x66\x32\x66s_set_page_dirty\x18\xfd\x01 \x01(\x0b\x32,.perfetto.protos.F2fsSetPageDirtyFtraceEventH\x00\x12R\n\x16\x66\x32\x66s_submit_write_page\x18\xfe\x01 \x01(\x0b\x32/.perfetto.protos.F2fsSubmitWritePageFtraceEventH\x00\x12N\n\x14\x66\x32\x66s_sync_file_enter\x18\xff\x01 \x01(\x0b\x32-.perfetto.protos.F2fsSyncFileEnterFtraceEventH\x00\x12L\n\x13\x66\x32\x66s_sync_file_exit\x18\x80\x02 \x01(\x0b\x32,.perfetto.protos.F2fsSyncFileExitFtraceEventH\x00\x12?\n\x0c\x66\x32\x66s_sync_fs\x18\x81\x02 \x01(\x0b\x32&.perfetto.protos.F2fsSyncFsFtraceEventH\x00\x12\x42\n\rf2fs_truncate\x18\x82\x02 \x01(\x0b\x32(.perfetto.protos.F2fsTruncateFtraceEventH\x00\x12Z\n\x1a\x66\x32\x66s_truncate_blocks_enter\x18\x83\x02 \x01(\x0b\x32\x33.perfetto.protos.F2fsTruncateBlocksEnterFtraceEventH\x00\x12X\n\x19\x66\x32\x66s_truncate_blocks_exit\x18\x84\x02 \x01(\x0b\x32\x32.perfetto.protos.F2fsTruncateBlocksExitFtraceEventH\x00\x12\x63\n\x1f\x66\x32\x66s_truncate_data_blocks_range\x18\x85\x02 \x01(\x0b\x32\x37.perfetto.protos.F2fsTruncateDataBlocksRangeFtraceEventH\x00\x12\x65\n f2fs_truncate_inode_blocks_enter\x18\x86\x02 \x01(\x0b\x32\x38.perfetto.protos.F2fsTruncateInodeBlocksEnterFtraceEventH\x00\x12\x63\n\x1f\x66\x32\x66s_truncate_inode_blocks_exit\x18\x87\x02 \x01(\x0b\x32\x37.perfetto.protos.F2fsTruncateInodeBlocksExitFtraceEventH\x00\x12K\n\x12\x66\x32\x66s_truncate_node\x18\x88\x02 \x01(\x0b\x32,.perfetto.protos.F2fsTruncateNodeFtraceEventH\x00\x12X\n\x19\x66\x32\x66s_truncate_nodes_enter\x18\x89\x02 \x01(\x0b\x32\x32.perfetto.protos.F2fsTruncateNodesEnterFtraceEventH\x00\x12V\n\x18\x66\x32\x66s_truncate_nodes_exit\x18\x8a\x02 \x01(\x0b\x32\x31.perfetto.protos.F2fsTruncateNodesExitFtraceEventH\x00\x12\\\n\x1b\x66\x32\x66s_truncate_partial_nodes\x18\x8b\x02 \x01(\x0b\x32\x34.perfetto.protos.F2fsTruncatePartialNodesFtraceEventH\x00\x12I\n\x11\x66\x32\x66s_unlink_enter\x18\x8c\x02 \x01(\x0b\x32+.perfetto.protos.F2fsUnlinkEnterFtraceEventH\x00\x12G\n\x10\x66\x32\x66s_unlink_exit\x18\x8d\x02 \x01(\x0b\x32*.perfetto.protos.F2fsUnlinkExitFtraceEventH\x00\x12N\n\x14\x66\x32\x66s_vm_page_mkwrite\x18\x8e\x02 \x01(\x0b\x32-.perfetto.protos.F2fsVmPageMkwriteFtraceEventH\x00\x12G\n\x10\x66\x32\x66s_write_begin\x18\x8f\x02 \x01(\x0b\x32*.perfetto.protos.F2fsWriteBeginFtraceEventH\x00\x12Q\n\x15\x66\x32\x66s_write_checkpoint\x18\x90\x02 \x01(\x0b\x32/.perfetto.protos.F2fsWriteCheckpointFtraceEventH\x00\x12\x43\n\x0e\x66\x32\x66s_write_end\x18\x91\x02 \x01(\x0b\x32(.perfetto.protos.F2fsWriteEndFtraceEventH\x00\x12P\n\x15\x61lloc_pages_iommu_end\x18\x92\x02 \x01(\x0b\x32..perfetto.protos.AllocPagesIommuEndFtraceEventH\x00\x12R\n\x16\x61lloc_pages_iommu_fail\x18\x93\x02 \x01(\x0b\x32/.perfetto.protos.AllocPagesIommuFailFtraceEventH\x00\x12T\n\x17\x61lloc_pages_iommu_start\x18\x94\x02 \x01(\x0b\x32\x30.perfetto.protos.AllocPagesIommuStartFtraceEventH\x00\x12L\n\x13\x61lloc_pages_sys_end\x18\x95\x02 \x01(\x0b\x32,.perfetto.protos.AllocPagesSysEndFtraceEventH\x00\x12N\n\x14\x61lloc_pages_sys_fail\x18\x96\x02 \x01(\x0b\x32-.perfetto.protos.AllocPagesSysFailFtraceEventH\x00\x12P\n\x15\x61lloc_pages_sys_start\x18\x97\x02 \x01(\x0b\x32..perfetto.protos.AllocPagesSysStartFtraceEventH\x00\x12Z\n\x1a\x64ma_alloc_contiguous_retry\x18\x98\x02 \x01(\x0b\x32\x33.perfetto.protos.DmaAllocContiguousRetryFtraceEventH\x00\x12\x45\n\x0fiommu_map_range\x18\x99\x02 \x01(\x0b\x32).perfetto.protos.IommuMapRangeFtraceEventH\x00\x12\\\n\x1ciommu_sec_ptbl_map_range_end\x18\x9a\x02 \x01(\x0b\x32\x33.perfetto.protos.IommuSecPtblMapRangeEndFtraceEventH\x00\x12`\n\x1eiommu_sec_ptbl_map_range_start\x18\x9b\x02 \x01(\x0b\x32\x35.perfetto.protos.IommuSecPtblMapRangeStartFtraceEventH\x00\x12N\n\x14ion_alloc_buffer_end\x18\x9c\x02 \x01(\x0b\x32-.perfetto.protos.IonAllocBufferEndFtraceEventH\x00\x12P\n\x15ion_alloc_buffer_fail\x18\x9d\x02 \x01(\x0b\x32..perfetto.protos.IonAllocBufferFailFtraceEventH\x00\x12X\n\x19ion_alloc_buffer_fallback\x18\x9e\x02 \x01(\x0b\x32\x32.perfetto.protos.IonAllocBufferFallbackFtraceEventH\x00\x12R\n\x16ion_alloc_buffer_start\x18\x9f\x02 \x01(\x0b\x32/.perfetto.protos.IonAllocBufferStartFtraceEventH\x00\x12J\n\x12ion_cp_alloc_retry\x18\xa0\x02 \x01(\x0b\x32+.perfetto.protos.IonCpAllocRetryFtraceEventH\x00\x12U\n\x18ion_cp_secure_buffer_end\x18\xa1\x02 \x01(\x0b\x32\x30.perfetto.protos.IonCpSecureBufferEndFtraceEventH\x00\x12Y\n\x1aion_cp_secure_buffer_start\x18\xa2\x02 \x01(\x0b\x32\x32.perfetto.protos.IonCpSecureBufferStartFtraceEventH\x00\x12\x46\n\x0fion_prefetching\x18\xa3\x02 \x01(\x0b\x32*.perfetto.protos.IonPrefetchingFtraceEventH\x00\x12_\n\x1eion_secure_cma_add_to_pool_end\x18\xa4\x02 \x01(\x0b\x32\x34.perfetto.protos.IonSecureCmaAddToPoolEndFtraceEventH\x00\x12\x63\n ion_secure_cma_add_to_pool_start\x18\xa5\x02 \x01(\x0b\x32\x36.perfetto.protos.IonSecureCmaAddToPoolStartFtraceEventH\x00\x12[\n\x1bion_secure_cma_allocate_end\x18\xa6\x02 \x01(\x0b\x32\x33.perfetto.protos.IonSecureCmaAllocateEndFtraceEventH\x00\x12_\n\x1dion_secure_cma_allocate_start\x18\xa7\x02 \x01(\x0b\x32\x35.perfetto.protos.IonSecureCmaAllocateStartFtraceEventH\x00\x12`\n\x1eion_secure_cma_shrink_pool_end\x18\xa8\x02 \x01(\x0b\x32\x35.perfetto.protos.IonSecureCmaShrinkPoolEndFtraceEventH\x00\x12\x64\n ion_secure_cma_shrink_pool_start\x18\xa9\x02 \x01(\x0b\x32\x37.perfetto.protos.IonSecureCmaShrinkPoolStartFtraceEventH\x00\x12\x33\n\x05kfree\x18\xaa\x02 \x01(\x0b\x32!.perfetto.protos.KfreeFtraceEventH\x00\x12\x37\n\x07kmalloc\x18\xab\x02 \x01(\x0b\x32#.perfetto.protos.KmallocFtraceEventH\x00\x12@\n\x0ckmalloc_node\x18\xac\x02 \x01(\x0b\x32\'.perfetto.protos.KmallocNodeFtraceEventH\x00\x12G\n\x10kmem_cache_alloc\x18\xad\x02 \x01(\x0b\x32*.perfetto.protos.KmemCacheAllocFtraceEventH\x00\x12P\n\x15kmem_cache_alloc_node\x18\xae\x02 \x01(\x0b\x32..perfetto.protos.KmemCacheAllocNodeFtraceEventH\x00\x12\x45\n\x0fkmem_cache_free\x18\xaf\x02 \x01(\x0b\x32).perfetto.protos.KmemCacheFreeFtraceEventH\x00\x12I\n\x11migrate_pages_end\x18\xb0\x02 \x01(\x0b\x32+.perfetto.protos.MigratePagesEndFtraceEventH\x00\x12M\n\x13migrate_pages_start\x18\xb1\x02 \x01(\x0b\x32-.perfetto.protos.MigratePagesStartFtraceEventH\x00\x12\x42\n\rmigrate_retry\x18\xb2\x02 \x01(\x0b\x32(.perfetto.protos.MigrateRetryFtraceEventH\x00\x12\x41\n\rmm_page_alloc\x18\xb3\x02 \x01(\x0b\x32\'.perfetto.protos.MmPageAllocFtraceEventH\x00\x12P\n\x15mm_page_alloc_extfrag\x18\xb4\x02 \x01(\x0b\x32..perfetto.protos.MmPageAllocExtfragFtraceEventH\x00\x12W\n\x19mm_page_alloc_zone_locked\x18\xb5\x02 \x01(\x0b\x32\x31.perfetto.protos.MmPageAllocZoneLockedFtraceEventH\x00\x12?\n\x0cmm_page_free\x18\xb6\x02 \x01(\x0b\x32&.perfetto.protos.MmPageFreeFtraceEventH\x00\x12N\n\x14mm_page_free_batched\x18\xb7\x02 \x01(\x0b\x32-.perfetto.protos.MmPageFreeBatchedFtraceEventH\x00\x12J\n\x12mm_page_pcpu_drain\x18\xb8\x02 \x01(\x0b\x32+.perfetto.protos.MmPagePcpuDrainFtraceEventH\x00\x12\x38\n\x08rss_stat\x18\xb9\x02 \x01(\x0b\x32#.perfetto.protos.RssStatFtraceEventH\x00\x12\x45\n\x0fion_heap_shrink\x18\xba\x02 \x01(\x0b\x32).perfetto.protos.IonHeapShrinkFtraceEventH\x00\x12\x41\n\rion_heap_grow\x18\xbb\x02 \x01(\x0b\x32\'.perfetto.protos.IonHeapGrowFtraceEventH\x00\x12<\n\nfence_init\x18\xbc\x02 \x01(\x0b\x32%.perfetto.protos.FenceInitFtraceEventH\x00\x12\x42\n\rfence_destroy\x18\xbd\x02 \x01(\x0b\x32(.perfetto.protos.FenceDestroyFtraceEventH\x00\x12M\n\x13\x66\x65nce_enable_signal\x18\xbe\x02 \x01(\x0b\x32-.perfetto.protos.FenceEnableSignalFtraceEventH\x00\x12\x44\n\x0e\x66\x65nce_signaled\x18\xbf\x02 \x01(\x0b\x32).perfetto.protos.FenceSignaledFtraceEventH\x00\x12<\n\nclk_enable\x18\xc0\x02 \x01(\x0b\x32%.perfetto.protos.ClkEnableFtraceEventH\x00\x12>\n\x0b\x63lk_disable\x18\xc1\x02 \x01(\x0b\x32&.perfetto.protos.ClkDisableFtraceEventH\x00\x12?\n\x0c\x63lk_set_rate\x18\xc2\x02 \x01(\x0b\x32&.perfetto.protos.ClkSetRateFtraceEventH\x00\x12^\n\x1c\x62inder_transaction_alloc_buf\x18\xc3\x02 \x01(\x0b\x32\x35.perfetto.protos.BinderTransactionAllocBufFtraceEventH\x00\x12\x44\n\x0esignal_deliver\x18\xc4\x02 \x01(\x0b\x32).perfetto.protos.SignalDeliverFtraceEventH\x00\x12\x46\n\x0fsignal_generate\x18\xc5\x02 \x01(\x0b\x32*.perfetto.protos.SignalGenerateFtraceEventH\x00\x12N\n\x14oom_score_adj_update\x18\xc6\x02 \x01(\x0b\x32-.perfetto.protos.OomScoreAdjUpdateFtraceEventH\x00\x12\x37\n\x07generic\x18\xc7\x02 \x01(\x0b\x32#.perfetto.protos.GenericFtraceEventH\x00\x12\x45\n\x0fmm_event_record\x18\xc8\x02 \x01(\x0b\x32).perfetto.protos.MmEventRecordFtraceEventH\x00\x12:\n\tsys_enter\x18\xc9\x02 \x01(\x0b\x32$.perfetto.protos.SysEnterFtraceEventH\x00\x12\x38\n\x08sys_exit\x18\xca\x02 \x01(\x0b\x32#.perfetto.protos.SysExitFtraceEventH\x00\x12\x31\n\x04zero\x18\xcb\x02 \x01(\x0b\x32 .perfetto.protos.ZeroFtraceEventH\x00\x12\x42\n\rgpu_frequency\x18\xcc\x02 \x01(\x0b\x32(.perfetto.protos.GpuFrequencyFtraceEventH\x00\x12R\n\x16sde_tracing_mark_write\x18\xcd\x02 \x01(\x0b\x32/.perfetto.protos.SdeTracingMarkWriteFtraceEventH\x00\x12>\n\x0bmark_victim\x18\xce\x02 \x01(\x0b\x32&.perfetto.protos.MarkVictimFtraceEventH\x00\x12\x38\n\x08ion_stat\x18\xcf\x02 \x01(\x0b\x32#.perfetto.protos.IonStatFtraceEventH\x00\x12I\n\x11ion_buffer_create\x18\xd0\x02 \x01(\x0b\x32+.perfetto.protos.IonBufferCreateFtraceEventH\x00\x12K\n\x12ion_buffer_destroy\x18\xd1\x02 \x01(\x0b\x32,.perfetto.protos.IonBufferDestroyFtraceEventH\x00\x12\x43\n\x0escm_call_start\x18\xd2\x02 \x01(\x0b\x32(.perfetto.protos.ScmCallStartFtraceEventH\x00\x12?\n\x0cscm_call_end\x18\xd3\x02 \x01(\x0b\x32&.perfetto.protos.ScmCallEndFtraceEventH\x00\x12\x41\n\rgpu_mem_total\x18\xd4\x02 \x01(\x0b\x32\'.perfetto.protos.GpuMemTotalFtraceEventH\x00\x12N\n\x13thermal_temperature\x18\xd5\x02 \x01(\x0b\x32..perfetto.protos.ThermalTemperatureFtraceEventH\x00\x12>\n\x0b\x63\x64\x65v_update\x18\xd6\x02 \x01(\x0b\x32&.perfetto.protos.CdevUpdateFtraceEventH\x00\x12<\n\ncpuhp_exit\x18\xd7\x02 \x01(\x0b\x32%.perfetto.protos.CpuhpExitFtraceEventH\x00\x12I\n\x11\x63puhp_multi_enter\x18\xd8\x02 \x01(\x0b\x32+.perfetto.protos.CpuhpMultiEnterFtraceEventH\x00\x12>\n\x0b\x63puhp_enter\x18\xd9\x02 \x01(\x0b\x32&.perfetto.protos.CpuhpEnterFtraceEventH\x00\x12\x42\n\rcpuhp_latency\x18\xda\x02 \x01(\x0b\x32(.perfetto.protos.CpuhpLatencyFtraceEventH\x00\x12G\n\x10\x66\x61strpc_dma_stat\x18\xdb\x02 \x01(\x0b\x32*.perfetto.protos.FastrpcDmaStatFtraceEventH\x00\x12R\n\x16\x64pu_tracing_mark_write\x18\xdc\x02 \x01(\x0b\x32/.perfetto.protos.DpuTracingMarkWriteFtraceEventH\x00\x12R\n\x16g2d_tracing_mark_write\x18\xdd\x02 \x01(\x0b\x32/.perfetto.protos.G2dTracingMarkWriteFtraceEventH\x00\x12T\n\x17mali_tracing_mark_write\x18\xde\x02 \x01(\x0b\x32\x30.perfetto.protos.MaliTracingMarkWriteFtraceEventH\x00\x12\x41\n\rdma_heap_stat\x18\xdf\x02 \x01(\x0b\x32\'.perfetto.protos.DmaHeapStatFtraceEventH\x00\x12>\n\x0b\x63puhp_pause\x18\xe0\x02 \x01(\x0b\x32&.perfetto.protos.CpuhpPauseFtraceEventH\x00\x12G\n\x10sched_pi_setprio\x18\xe1\x02 \x01(\x0b\x32*.perfetto.protos.SchedPiSetprioFtraceEventH\x00\x12\x43\n\x0esde_sde_evtlog\x18\xe2\x02 \x01(\x0b\x32(.perfetto.protos.SdeSdeEvtlogFtraceEventH\x00\x12Q\n\x16sde_sde_perf_calc_crtc\x18\xe3\x02 \x01(\x0b\x32..perfetto.protos.SdeSdePerfCalcCrtcFtraceEventH\x00\x12U\n\x18sde_sde_perf_crtc_update\x18\xe4\x02 \x01(\x0b\x32\x30.perfetto.protos.SdeSdePerfCrtcUpdateFtraceEventH\x00\x12V\n\x19sde_sde_perf_set_qos_luts\x18\xe5\x02 \x01(\x0b\x32\x30.perfetto.protos.SdeSdePerfSetQosLutsFtraceEventH\x00\x12S\n\x17sde_sde_perf_update_bus\x18\xe6\x02 \x01(\x0b\x32/.perfetto.protos.SdeSdePerfUpdateBusFtraceEventH\x00\x12K\n\x12rss_stat_throttled\x18\xe7\x02 \x01(\x0b\x32,.perfetto.protos.RssStatThrottledFtraceEventH\x00\x12I\n\x11netif_receive_skb\x18\xe8\x02 \x01(\x0b\x32+.perfetto.protos.NetifReceiveSkbFtraceEventH\x00\x12?\n\x0cnet_dev_xmit\x18\xe9\x02 \x01(\x0b\x32&.perfetto.protos.NetDevXmitFtraceEventH\x00\x12L\n\x13inet_sock_set_state\x18\xea\x02 \x01(\x0b\x32,.perfetto.protos.InetSockSetStateFtraceEventH\x00\x12K\n\x12tcp_retransmit_skb\x18\xeb\x02 \x01(\x0b\x32,.perfetto.protos.TcpRetransmitSkbFtraceEventH\x00\x12R\n\x16\x63ros_ec_sensorhub_data\x18\xec\x02 \x01(\x0b\x32/.perfetto.protos.CrosEcSensorhubDataFtraceEventH\x00\x12R\n\x16napi_gro_receive_entry\x18\xed\x02 \x01(\x0b\x32/.perfetto.protos.NapiGroReceiveEntryFtraceEventH\x00\x12P\n\x15napi_gro_receive_exit\x18\xee\x02 \x01(\x0b\x32..perfetto.protos.NapiGroReceiveExitFtraceEventH\x00\x12:\n\tkfree_skb\x18\xef\x02 \x01(\x0b\x32$.perfetto.protos.KfreeSkbFtraceEventH\x00\x12G\n\x10kvm_access_fault\x18\xf0\x02 \x01(\x0b\x32*.perfetto.protos.KvmAccessFaultFtraceEventH\x00\x12=\n\x0bkvm_ack_irq\x18\xf1\x02 \x01(\x0b\x32%.perfetto.protos.KvmAckIrqFtraceEventH\x00\x12=\n\x0bkvm_age_hva\x18\xf2\x02 \x01(\x0b\x32%.perfetto.protos.KvmAgeHvaFtraceEventH\x00\x12?\n\x0ckvm_age_page\x18\xf3\x02 \x01(\x0b\x32&.perfetto.protos.KvmAgePageFtraceEventH\x00\x12L\n\x13kvm_arm_clear_debug\x18\xf4\x02 \x01(\x0b\x32,.perfetto.protos.KvmArmClearDebugFtraceEventH\x00\x12J\n\x12kvm_arm_set_dreg32\x18\xf5\x02 \x01(\x0b\x32+.perfetto.protos.KvmArmSetDreg32FtraceEventH\x00\x12J\n\x12kvm_arm_set_regset\x18\xf6\x02 \x01(\x0b\x32+.perfetto.protos.KvmArmSetRegsetFtraceEventH\x00\x12L\n\x13kvm_arm_setup_debug\x18\xf7\x02 \x01(\x0b\x32,.perfetto.protos.KvmArmSetupDebugFtraceEventH\x00\x12:\n\tkvm_entry\x18\xf8\x02 \x01(\x0b\x32$.perfetto.protos.KvmEntryFtraceEventH\x00\x12\x38\n\x08kvm_exit\x18\xf9\x02 \x01(\x0b\x32#.perfetto.protos.KvmExitFtraceEventH\x00\x12\x36\n\x07kvm_fpu\x18\xfa\x02 \x01(\x0b\x32\".perfetto.protos.KvmFpuFtraceEventH\x00\x12H\n\x11kvm_get_timer_map\x18\xfb\x02 \x01(\x0b\x32*.perfetto.protos.KvmGetTimerMapFtraceEventH\x00\x12\x45\n\x0fkvm_guest_fault\x18\xfc\x02 \x01(\x0b\x32).perfetto.protos.KvmGuestFaultFtraceEventH\x00\x12J\n\x12kvm_handle_sys_reg\x18\xfd\x02 \x01(\x0b\x32+.perfetto.protos.KvmHandleSysRegFtraceEventH\x00\x12\x41\n\rkvm_hvc_arm64\x18\xfe\x02 \x01(\x0b\x32\'.perfetto.protos.KvmHvcArm64FtraceEventH\x00\x12?\n\x0ckvm_irq_line\x18\xff\x02 \x01(\x0b\x32&.perfetto.protos.KvmIrqLineFtraceEventH\x00\x12\x38\n\x08kvm_mmio\x18\x80\x03 \x01(\x0b\x32#.perfetto.protos.KvmMmioFtraceEventH\x00\x12G\n\x10kvm_mmio_emulate\x18\x81\x03 \x01(\x0b\x32*.perfetto.protos.KvmMmioEmulateFtraceEventH\x00\x12L\n\x13kvm_set_guest_debug\x18\x82\x03 \x01(\x0b\x32,.perfetto.protos.KvmSetGuestDebugFtraceEventH\x00\x12=\n\x0bkvm_set_irq\x18\x83\x03 \x01(\x0b\x32%.perfetto.protos.KvmSetIrqFtraceEventH\x00\x12\x46\n\x10kvm_set_spte_hva\x18\x84\x03 \x01(\x0b\x32).perfetto.protos.KvmSetSpteHvaFtraceEventH\x00\x12H\n\x11kvm_set_way_flush\x18\x85\x03 \x01(\x0b\x32*.perfetto.protos.KvmSetWayFlushFtraceEventH\x00\x12\x43\n\x0ekvm_sys_access\x18\x86\x03 \x01(\x0b\x32(.perfetto.protos.KvmSysAccessFtraceEventH\x00\x12\x46\n\x10kvm_test_age_hva\x18\x87\x03 \x01(\x0b\x32).perfetto.protos.KvmTestAgeHvaFtraceEventH\x00\x12I\n\x11kvm_timer_emulate\x18\x88\x03 \x01(\x0b\x32+.perfetto.protos.KvmTimerEmulateFtraceEventH\x00\x12V\n\x18kvm_timer_hrtimer_expire\x18\x89\x03 \x01(\x0b\x32\x31.perfetto.protos.KvmTimerHrtimerExpireFtraceEventH\x00\x12T\n\x17kvm_timer_restore_state\x18\x8a\x03 \x01(\x0b\x32\x30.perfetto.protos.KvmTimerRestoreStateFtraceEventH\x00\x12N\n\x14kvm_timer_save_state\x18\x8b\x03 \x01(\x0b\x32-.perfetto.protos.KvmTimerSaveStateFtraceEventH\x00\x12N\n\x14kvm_timer_update_irq\x18\x8c\x03 \x01(\x0b\x32-.perfetto.protos.KvmTimerUpdateIrqFtraceEventH\x00\x12G\n\x10kvm_toggle_cache\x18\x8d\x03 \x01(\x0b\x32*.perfetto.protos.KvmToggleCacheFtraceEventH\x00\x12L\n\x13kvm_unmap_hva_range\x18\x8e\x03 \x01(\x0b\x32,.perfetto.protos.KvmUnmapHvaRangeFtraceEventH\x00\x12K\n\x12kvm_userspace_exit\x18\x8f\x03 \x01(\x0b\x32,.perfetto.protos.KvmUserspaceExitFtraceEventH\x00\x12\x45\n\x0fkvm_vcpu_wakeup\x18\x90\x03 \x01(\x0b\x32).perfetto.protos.KvmVcpuWakeupFtraceEventH\x00\x12\x41\n\rkvm_wfx_arm64\x18\x91\x03 \x01(\x0b\x32\'.perfetto.protos.KvmWfxArm64FtraceEventH\x00\x12\x38\n\x08trap_reg\x18\x92\x03 \x01(\x0b\x32#.perfetto.protos.TrapRegFtraceEventH\x00\x12T\n\x17vgic_update_irq_pending\x18\x93\x03 \x01(\x0b\x32\x30.perfetto.protos.VgicUpdateIrqPendingFtraceEventH\x00\x12S\n\x16wakeup_source_activate\x18\x94\x03 \x01(\x0b\x32\x30.perfetto.protos.WakeupSourceActivateFtraceEventH\x00\x12W\n\x18wakeup_source_deactivate\x18\x95\x03 \x01(\x0b\x32\x32.perfetto.protos.WakeupSourceDeactivateFtraceEventH\x00\x12\x44\n\x0eufshcd_command\x18\x96\x03 \x01(\x0b\x32).perfetto.protos.UfshcdCommandFtraceEventH\x00\x12I\n\x11ufshcd_clk_gating\x18\x97\x03 \x01(\x0b\x32+.perfetto.protos.UfshcdClkGatingFtraceEventH\x00\x12\x37\n\x07\x63onsole\x18\x98\x03 \x01(\x0b\x32#.perfetto.protos.ConsoleFtraceEventH\x00\x12G\n\x10\x64rm_vblank_event\x18\x99\x03 \x01(\x0b\x32*.perfetto.protos.DrmVblankEventFtraceEventH\x00\x12Z\n\x1a\x64rm_vblank_event_delivered\x18\x9a\x03 \x01(\x0b\x32\x33.perfetto.protos.DrmVblankEventDeliveredFtraceEventH\x00\x12\x41\n\rdrm_sched_job\x18\x9b\x03 \x01(\x0b\x32\'.perfetto.protos.DrmSchedJobFtraceEventH\x00\x12=\n\x0b\x64rm_run_job\x18\x9c\x03 \x01(\x0b\x32%.perfetto.protos.DrmRunJobFtraceEventH\x00\x12P\n\x15\x64rm_sched_process_job\x18\x9d\x03 \x01(\x0b\x32..perfetto.protos.DrmSchedProcessJobFtraceEventH\x00\x12\x43\n\x0e\x64ma_fence_init\x18\x9e\x03 \x01(\x0b\x32(.perfetto.protos.DmaFenceInitFtraceEventH\x00\x12\x43\n\x0e\x64ma_fence_emit\x18\x9f\x03 \x01(\x0b\x32(.perfetto.protos.DmaFenceEmitFtraceEventH\x00\x12K\n\x12\x64ma_fence_signaled\x18\xa0\x03 \x01(\x0b\x32,.perfetto.protos.DmaFenceSignaledFtraceEventH\x00\x12N\n\x14\x64ma_fence_wait_start\x18\xa1\x03 \x01(\x0b\x32-.perfetto.protos.DmaFenceWaitStartFtraceEventH\x00\x12J\n\x12\x64ma_fence_wait_end\x18\xa2\x03 \x01(\x0b\x32+.perfetto.protos.DmaFenceWaitEndFtraceEventH\x00\x12>\n\x0b\x66\x32\x66s_iostat\x18\xa3\x03 \x01(\x0b\x32&.perfetto.protos.F2fsIostatFtraceEventH\x00\x12M\n\x13\x66\x32\x66s_iostat_latency\x18\xa4\x03 \x01(\x0b\x32-.perfetto.protos.F2fsIostatLatencyFtraceEventH\x00\x12J\n\x12sched_cpu_util_cfs\x18\xa5\x03 \x01(\x0b\x32+.perfetto.protos.SchedCpuUtilCfsFtraceEventH\x00\x12:\n\tv4l2_qbuf\x18\xa6\x03 \x01(\x0b\x32$.perfetto.protos.V4l2QbufFtraceEventH\x00\x12<\n\nv4l2_dqbuf\x18\xa7\x03 \x01(\x0b\x32%.perfetto.protos.V4l2DqbufFtraceEventH\x00\x12J\n\x12vb2_v4l2_buf_queue\x18\xa8\x03 \x01(\x0b\x32+.perfetto.protos.Vb2V4l2BufQueueFtraceEventH\x00\x12H\n\x11vb2_v4l2_buf_done\x18\xa9\x03 \x01(\x0b\x32*.perfetto.protos.Vb2V4l2BufDoneFtraceEventH\x00\x12\x41\n\rvb2_v4l2_qbuf\x18\xaa\x03 \x01(\x0b\x32\'.perfetto.protos.Vb2V4l2QbufFtraceEventH\x00\x12\x43\n\x0evb2_v4l2_dqbuf\x18\xab\x03 \x01(\x0b\x32(.perfetto.protos.Vb2V4l2DqbufFtraceEventH\x00\x12L\n\x13\x64si_cmd_fifo_status\x18\xac\x03 \x01(\x0b\x32,.perfetto.protos.DsiCmdFifoStatusFtraceEventH\x00\x12\x34\n\x06\x64si_rx\x18\xad\x03 \x01(\x0b\x32!.perfetto.protos.DsiRxFtraceEventH\x00\x12\x34\n\x06\x64si_tx\x18\xae\x03 \x01(\x0b\x32!.perfetto.protos.DsiTxFtraceEventH\x00\x12T\n\x17\x61ndroid_fs_dataread_end\x18\xaf\x03 \x01(\x0b\x32\x30.perfetto.protos.AndroidFsDatareadEndFtraceEventH\x00\x12X\n\x19\x61ndroid_fs_dataread_start\x18\xb0\x03 \x01(\x0b\x32\x32.perfetto.protos.AndroidFsDatareadStartFtraceEventH\x00\x12V\n\x18\x61ndroid_fs_datawrite_end\x18\xb1\x03 \x01(\x0b\x32\x31.perfetto.protos.AndroidFsDatawriteEndFtraceEventH\x00\x12Z\n\x1a\x61ndroid_fs_datawrite_start\x18\xb2\x03 \x01(\x0b\x32\x33.perfetto.protos.AndroidFsDatawriteStartFtraceEventH\x00\x12N\n\x14\x61ndroid_fs_fsync_end\x18\xb3\x03 \x01(\x0b\x32-.perfetto.protos.AndroidFsFsyncEndFtraceEventH\x00\x12R\n\x16\x61ndroid_fs_fsync_start\x18\xb4\x03 \x01(\x0b\x32/.perfetto.protos.AndroidFsFsyncStartFtraceEventH\x00\x12\x46\n\x0f\x66uncgraph_entry\x18\xb5\x03 \x01(\x0b\x32*.perfetto.protos.FuncgraphEntryFtraceEventH\x00\x12\x44\n\x0e\x66uncgraph_exit\x18\xb6\x03 \x01(\x0b\x32).perfetto.protos.FuncgraphExitFtraceEventH\x00\x12G\n\x10virtio_video_cmd\x18\xb7\x03 \x01(\x0b\x32*.perfetto.protos.VirtioVideoCmdFtraceEventH\x00\x12P\n\x15virtio_video_cmd_done\x18\xb8\x03 \x01(\x0b\x32..perfetto.protos.VirtioVideoCmdDoneFtraceEventH\x00\x12\\\n\x1bvirtio_video_resource_queue\x18\xb9\x03 \x01(\x0b\x32\x34.perfetto.protos.VirtioVideoResourceQueueFtraceEventH\x00\x12\x65\n virtio_video_resource_queue_done\x18\xba\x03 \x01(\x0b\x32\x38.perfetto.protos.VirtioVideoResourceQueueDoneFtraceEventH\x00\x12N\n\x14mm_shrink_slab_start\x18\xbb\x03 \x01(\x0b\x32-.perfetto.protos.MmShrinkSlabStartFtraceEventH\x00\x12J\n\x12mm_shrink_slab_end\x18\xbc\x03 \x01(\x0b\x32+.perfetto.protos.MmShrinkSlabEndFtraceEventH\x00\x12<\n\ntrusty_smc\x18\xbd\x03 \x01(\x0b\x32%.perfetto.protos.TrustySmcFtraceEventH\x00\x12\x45\n\x0ftrusty_smc_done\x18\xbe\x03 \x01(\x0b\x32).perfetto.protos.TrustySmcDoneFtraceEventH\x00\x12I\n\x11trusty_std_call32\x18\xbf\x03 \x01(\x0b\x32+.perfetto.protos.TrustyStdCall32FtraceEventH\x00\x12R\n\x16trusty_std_call32_done\x18\xc0\x03 \x01(\x0b\x32/.perfetto.protos.TrustyStdCall32DoneFtraceEventH\x00\x12M\n\x13trusty_share_memory\x18\xc1\x03 \x01(\x0b\x32-.perfetto.protos.TrustyShareMemoryFtraceEventH\x00\x12V\n\x18trusty_share_memory_done\x18\xc2\x03 \x01(\x0b\x32\x31.perfetto.protos.TrustyShareMemoryDoneFtraceEventH\x00\x12Q\n\x15trusty_reclaim_memory\x18\xc3\x03 \x01(\x0b\x32/.perfetto.protos.TrustyReclaimMemoryFtraceEventH\x00\x12Z\n\x1atrusty_reclaim_memory_done\x18\xc4\x03 \x01(\x0b\x32\x33.perfetto.protos.TrustyReclaimMemoryDoneFtraceEventH\x00\x12<\n\ntrusty_irq\x18\xc5\x03 \x01(\x0b\x32%.perfetto.protos.TrustyIrqFtraceEventH\x00\x12T\n\x17trusty_ipc_handle_event\x18\xc6\x03 \x01(\x0b\x32\x30.perfetto.protos.TrustyIpcHandleEventFtraceEventH\x00\x12K\n\x12trusty_ipc_connect\x18\xc7\x03 \x01(\x0b\x32,.perfetto.protos.TrustyIpcConnectFtraceEventH\x00\x12R\n\x16trusty_ipc_connect_end\x18\xc8\x03 \x01(\x0b\x32/.perfetto.protos.TrustyIpcConnectEndFtraceEventH\x00\x12G\n\x10trusty_ipc_write\x18\xc9\x03 \x01(\x0b\x32*.perfetto.protos.TrustyIpcWriteFtraceEventH\x00\x12\x45\n\x0ftrusty_ipc_poll\x18\xca\x03 \x01(\x0b\x32).perfetto.protos.TrustyIpcPollFtraceEventH\x00\x12\x45\n\x0ftrusty_ipc_read\x18\xcc\x03 \x01(\x0b\x32).perfetto.protos.TrustyIpcReadFtraceEventH\x00\x12L\n\x13trusty_ipc_read_end\x18\xcd\x03 \x01(\x0b\x32,.perfetto.protos.TrustyIpcReadEndFtraceEventH\x00\x12\x41\n\rtrusty_ipc_rx\x18\xce\x03 \x01(\x0b\x32\'.perfetto.protos.TrustyIpcRxFtraceEventH\x00\x12K\n\x12trusty_enqueue_nop\x18\xd0\x03 \x01(\x0b\x32,.perfetto.protos.TrustyEnqueueNopFtraceEventH\x00\x12\x45\n\x0f\x63ma_alloc_start\x18\xd1\x03 \x01(\x0b\x32).perfetto.protos.CmaAllocStartFtraceEventH\x00\x12\x43\n\x0e\x63ma_alloc_info\x18\xd2\x03 \x01(\x0b\x32(.perfetto.protos.CmaAllocInfoFtraceEventH\x00\x12T\n\x17lwis_tracing_mark_write\x18\xd3\x03 \x01(\x0b\x32\x30.perfetto.protos.LwisTracingMarkWriteFtraceEventH\x00\x12N\n\x14virtio_gpu_cmd_queue\x18\xd4\x03 \x01(\x0b\x32-.perfetto.protos.VirtioGpuCmdQueueFtraceEventH\x00\x12T\n\x17virtio_gpu_cmd_response\x18\xd5\x03 \x01(\x0b\x32\x30.perfetto.protos.VirtioGpuCmdResponseFtraceEventH\x00\x12Q\n\x16mali_mali_KCPU_CQS_SET\x18\xd6\x03 \x01(\x0b\x32..perfetto.protos.MaliMaliKCPUCQSSETFtraceEventH\x00\x12^\n\x1dmali_mali_KCPU_CQS_WAIT_START\x18\xd7\x03 \x01(\x0b\x32\x34.perfetto.protos.MaliMaliKCPUCQSWAITSTARTFtraceEventH\x00\x12Z\n\x1bmali_mali_KCPU_CQS_WAIT_END\x18\xd8\x03 \x01(\x0b\x32\x32.perfetto.protos.MaliMaliKCPUCQSWAITENDFtraceEventH\x00\x12[\n\x1bmali_mali_KCPU_FENCE_SIGNAL\x18\xd9\x03 \x01(\x0b\x32\x33.perfetto.protos.MaliMaliKCPUFENCESIGNALFtraceEventH\x00\x12\x62\n\x1fmali_mali_KCPU_FENCE_WAIT_START\x18\xda\x03 \x01(\x0b\x32\x36.perfetto.protos.MaliMaliKCPUFENCEWAITSTARTFtraceEventH\x00\x12^\n\x1dmali_mali_KCPU_FENCE_WAIT_END\x18\xdb\x03 \x01(\x0b\x32\x34.perfetto.protos.MaliMaliKCPUFENCEWAITENDFtraceEventH\x00\x12:\n\thyp_enter\x18\xdc\x03 \x01(\x0b\x32$.perfetto.protos.HypEnterFtraceEventH\x00\x12\x38\n\x08hyp_exit\x18\xdd\x03 \x01(\x0b\x32#.perfetto.protos.HypExitFtraceEventH\x00\x12<\n\nhost_hcall\x18\xde\x03 \x01(\x0b\x32%.perfetto.protos.HostHcallFtraceEventH\x00\x12\x38\n\x08host_smc\x18\xdf\x03 \x01(\x0b\x32#.perfetto.protos.HostSmcFtraceEventH\x00\x12\x43\n\x0ehost_mem_abort\x18\xe0\x03 \x01(\x0b\x32(.perfetto.protos.HostMemAbortFtraceEventH\x00\x12S\n\x16suspend_resume_minimal\x18\xe1\x03 \x01(\x0b\x32\x30.perfetto.protos.SuspendResumeMinimalFtraceEventH\x00\x12_\n\x1dmali_mali_CSF_INTERRUPT_START\x18\xe2\x03 \x01(\x0b\x32\x35.perfetto.protos.MaliMaliCSFINTERRUPTSTARTFtraceEventH\x00\x12[\n\x1bmali_mali_CSF_INTERRUPT_END\x18\xe3\x03 \x01(\x0b\x32\x33.perfetto.protos.MaliMaliCSFINTERRUPTENDFtraceEventH\x00\x12Z\n\x1asamsung_tracing_mark_write\x18\xe4\x03 \x01(\x0b\x32\x33.perfetto.protos.SamsungTracingMarkWriteFtraceEventH\x00\x12\x44\n\x0e\x62inder_command\x18\xe5\x03 \x01(\x0b\x32).perfetto.protos.BinderCommandFtraceEventH\x00\x12\x42\n\rbinder_return\x18\xe6\x03 \x01(\x0b\x32(.perfetto.protos.BinderReturnFtraceEventH\x00\x12R\n\x16sched_switch_with_ctrs\x18\xe7\x03 \x01(\x0b\x32/.perfetto.protos.SchedSwitchWithCtrsFtraceEventH\x00\x12\x45\n\x0fgpu_work_period\x18\xe8\x03 \x01(\x0b\x32).perfetto.protos.GpuWorkPeriodFtraceEventH\x00\x12<\n\nrpm_status\x18\xe9\x03 \x01(\x0b\x32%.perfetto.protos.RpmStatusFtraceEventH\x00\x12M\n\x13panel_write_generic\x18\xea\x03 \x01(\x0b\x32-.perfetto.protos.PanelWriteGenericFtraceEventH\x00\x12K\n\x12sched_migrate_task\x18\xeb\x03 \x01(\x0b\x32,.perfetto.protos.SchedMigrateTaskFtraceEventH\x00\x12S\n\x17\x64pu_dsi_cmd_fifo_status\x18\xec\x03 \x01(\x0b\x32/.perfetto.protos.DpuDsiCmdFifoStatusFtraceEventH\x00\x12;\n\ndpu_dsi_rx\x18\xed\x03 \x01(\x0b\x32$.perfetto.protos.DpuDsiRxFtraceEventH\x00\x12;\n\ndpu_dsi_tx\x18\xee\x03 \x01(\x0b\x32$.perfetto.protos.DpuDsiTxFtraceEventH\x00\x12K\n\x12\x66\x32\x66s_background_gc\x18\xef\x03 \x01(\x0b\x32,.perfetto.protos.F2fsBackgroundGcFtraceEventH\x00\x12\x41\n\rf2fs_gc_begin\x18\xf0\x03 \x01(\x0b\x32\'.perfetto.protos.F2fsGcBeginFtraceEventH\x00\x12=\n\x0b\x66\x32\x66s_gc_end\x18\xf1\x03 \x01(\x0b\x32%.perfetto.protos.F2fsGcEndFtraceEventH\x00\x12G\n\x10\x66\x61strpc_dma_free\x18\xf2\x03 \x01(\x0b\x32*.perfetto.protos.FastrpcDmaFreeFtraceEventH\x00\x12I\n\x11\x66\x61strpc_dma_alloc\x18\xf3\x03 \x01(\x0b\x32+.perfetto.protos.FastrpcDmaAllocFtraceEventH\x00\x12I\n\x11\x66\x61strpc_dma_unmap\x18\xf4\x03 \x01(\x0b\x32+.perfetto.protos.FastrpcDmaUnmapFtraceEventH\x00\x12\x45\n\x0f\x66\x61strpc_dma_map\x18\xf5\x03 \x01(\x0b\x32).perfetto.protos.FastrpcDmaMapFtraceEventH\x00\x12G\n\x10google_icc_event\x18\xf6\x03 \x01(\x0b\x32*.perfetto.protos.GoogleIccEventFtraceEventH\x00\x12G\n\x10google_irm_event\x18\xf7\x03 \x01(\x0b\x32*.perfetto.protos.GoogleIrmEventFtraceEventH\x00\x12V\n\x18\x64\x65vice_pm_callback_start\x18\xf8\x03 \x01(\x0b\x32\x31.perfetto.protos.DevicePmCallbackStartFtraceEventH\x00\x12R\n\x16\x64\x65vice_pm_callback_end\x18\xf9\x03 \x01(\x0b\x32/.perfetto.protos.DevicePmCallbackEndFtraceEventH\x00\x12V\n\x18thermal_exynos_acpm_bulk\x18\xfa\x03 \x01(\x0b\x32\x31.perfetto.protos.ThermalExynosAcpmBulkFtraceEventH\x00\x12g\n!thermal_exynos_acpm_high_overhead\x18\xfb\x03 \x01(\x0b\x32\x39.perfetto.protos.ThermalExynosAcpmHighOverheadFtraceEventH\x00\x12<\n\ndcvsh_freq\x18\xfc\x03 \x01(\x0b\x32%.perfetto.protos.DcvshFreqFtraceEventH\x00\x12K\n\x12kgsl_gpu_frequency\x18\xfd\x03 \x01(\x0b\x32,.perfetto.protos.KgslGpuFrequencyFtraceEventH\x00\x12\x84\x01\n2mali_mali_PM_MCU_HCTL_CORES_DOWN_SCALE_NOTIFY_PEND\x18\xfe\x03 \x01(\x0b\x32\x45.perfetto.protos.MaliMaliPMMCUHCTLCORESDOWNSCALENOTIFYPENDFtraceEventH\x00\x12p\n\'mali_mali_PM_MCU_HCTL_CORES_NOTIFY_PEND\x18\xff\x03 \x01(\x0b\x32<.perfetto.protos.MaliMaliPMMCUHCTLCORESNOTIFYPENDFtraceEventH\x00\x12r\n(mali_mali_PM_MCU_HCTL_CORE_INACTIVE_PEND\x18\x80\x04 \x01(\x0b\x32=.perfetto.protos.MaliMaliPMMCUHCTLCOREINACTIVEPENDFtraceEventH\x00\x12j\n$mali_mali_PM_MCU_HCTL_MCU_ON_RECHECK\x18\x81\x04 \x01(\x0b\x32\x39.perfetto.protos.MaliMaliPMMCUHCTLMCUONRECHECKFtraceEventH\x00\x12w\n+mali_mali_PM_MCU_HCTL_SHADERS_CORE_OFF_PEND\x18\x82\x04 \x01(\x0b\x32?.perfetto.protos.MaliMaliPMMCUHCTLSHADERSCOREOFFPENDFtraceEventH\x00\x12n\n&mali_mali_PM_MCU_HCTL_SHADERS_PEND_OFF\x18\x83\x04 \x01(\x0b\x32;.perfetto.protos.MaliMaliPMMCUHCTLSHADERSPENDOFFFtraceEventH\x00\x12l\n%mali_mali_PM_MCU_HCTL_SHADERS_PEND_ON\x18\x84\x04 \x01(\x0b\x32:.perfetto.protos.MaliMaliPMMCUHCTLSHADERSPENDONFtraceEventH\x00\x12p\n\'mali_mali_PM_MCU_HCTL_SHADERS_READY_OFF\x18\x85\x04 \x01(\x0b\x32<.perfetto.protos.MaliMaliPMMCUHCTLSHADERSREADYOFFFtraceEventH\x00\x12V\n\x19mali_mali_PM_MCU_IN_SLEEP\x18\x86\x04 \x01(\x0b\x32\x30.perfetto.protos.MaliMaliPMMCUINSLEEPFtraceEventH\x00\x12M\n\x14mali_mali_PM_MCU_OFF\x18\x87\x04 \x01(\x0b\x32,.perfetto.protos.MaliMaliPMMCUOFFFtraceEventH\x00\x12K\n\x13mali_mali_PM_MCU_ON\x18\x88\x04 \x01(\x0b\x32+.perfetto.protos.MaliMaliPMMCUONFtraceEventH\x00\x12s\n)mali_mali_PM_MCU_ON_CORE_ATTR_UPDATE_PEND\x18\x89\x04 \x01(\x0b\x32=.perfetto.protos.MaliMaliPMMCUONCOREATTRUPDATEPENDFtraceEventH\x00\x12h\n#mali_mali_PM_MCU_ON_GLB_REINIT_PEND\x18\x8a\x04 \x01(\x0b\x32\x38.perfetto.protos.MaliMaliPMMCUONGLBREINITPENDFtraceEventH\x00\x12T\n\x18mali_mali_PM_MCU_ON_HALT\x18\x8b\x04 \x01(\x0b\x32/.perfetto.protos.MaliMaliPMMCUONHALTFtraceEventH\x00\x12\x65\n!mali_mali_PM_MCU_ON_HWCNT_DISABLE\x18\x8c\x04 \x01(\x0b\x32\x37.perfetto.protos.MaliMaliPMMCUONHWCNTDISABLEFtraceEventH\x00\x12\x63\n mali_mali_PM_MCU_ON_HWCNT_ENABLE\x18\x8d\x04 \x01(\x0b\x32\x36.perfetto.protos.MaliMaliPMMCUONHWCNTENABLEFtraceEventH\x00\x12]\n\x1dmali_mali_PM_MCU_ON_PEND_HALT\x18\x8e\x04 \x01(\x0b\x32\x33.perfetto.protos.MaliMaliPMMCUONPENDHALTFtraceEventH\x00\x12_\n\x1emali_mali_PM_MCU_ON_PEND_SLEEP\x18\x8f\x04 \x01(\x0b\x32\x34.perfetto.protos.MaliMaliPMMCUONPENDSLEEPFtraceEventH\x00\x12g\n\"mali_mali_PM_MCU_ON_SLEEP_INITIATE\x18\x90\x04 \x01(\x0b\x32\x38.perfetto.protos.MaliMaliPMMCUONSLEEPINITIATEFtraceEventH\x00\x12V\n\x19mali_mali_PM_MCU_PEND_OFF\x18\x91\x04 \x01(\x0b\x32\x30.perfetto.protos.MaliMaliPMMCUPENDOFFFtraceEventH\x00\x12\x61\n\x1fmali_mali_PM_MCU_PEND_ON_RELOAD\x18\x92\x04 \x01(\x0b\x32\x35.perfetto.protos.MaliMaliPMMCUPENDONRELOADFtraceEventH\x00\x12Z\n\x1bmali_mali_PM_MCU_POWER_DOWN\x18\x93\x04 \x01(\x0b\x32\x32.perfetto.protos.MaliMaliPMMCUPOWERDOWNFtraceEventH\x00\x12Z\n\x1bmali_mali_PM_MCU_RESET_WAIT\x18\x94\x04 \x01(\x0b\x32\x32.perfetto.protos.MaliMaliPMMCURESETWAITFtraceEventH\x00\x12\x45\n\x0f\x62\x63l_irq_trigger\x18\x95\x04 \x01(\x0b\x32).perfetto.protos.BclIrqTriggerFtraceEventH\x00\x12\\\n\x1bkgsl_adreno_cmdbatch_queued\x18\x96\x04 \x01(\x0b\x32\x34.perfetto.protos.KgslAdrenoCmdbatchQueuedFtraceEventH\x00\x12\x62\n\x1ekgsl_adreno_cmdbatch_submitted\x18\x97\x04 \x01(\x0b\x32\x37.perfetto.protos.KgslAdrenoCmdbatchSubmittedFtraceEventH\x00\x12X\n\x19kgsl_adreno_cmdbatch_sync\x18\x98\x04 \x01(\x0b\x32\x32.perfetto.protos.KgslAdrenoCmdbatchSyncFtraceEventH\x00\x12^\n\x1ckgsl_adreno_cmdbatch_retired\x18\x99\x04 \x01(\x0b\x32\x35.perfetto.protos.KgslAdrenoCmdbatchRetiredFtraceEventH\x00\x12N\n\x14pixel_mm_kswapd_wake\x18\x9a\x04 \x01(\x0b\x32-.perfetto.protos.PixelMmKswapdWakeFtraceEventH\x00\x12N\n\x14pixel_mm_kswapd_done\x18\x9b\x04 \x01(\x0b\x32-.perfetto.protos.PixelMmKswapdDoneFtraceEventH\x00\x12R\n\x16sched_wakeup_task_attr\x18\x9c\x04 \x01(\x0b\x32/.perfetto.protos.SchedWakeupTaskAttrFtraceEventH\x00\x12J\n\x11\x64\x65vfreq_frequency\x18\x9d\x04 \x01(\x0b\x32,.perfetto.protos.DevfreqFrequencyFtraceEventH\x00\x12\x35\n\x0ckprobe_event\x18\x9e\x04 \x01(\x0b\x32\x1c.perfetto.protos.KprobeEventH\x00\x12L\n\x13param_set_value_cpm\x18\x9f\x04 \x01(\x0b\x32,.perfetto.protos.ParamSetValueCpmFtraceEventH\x00\x12=\n\x0b\x64o_sys_open\x18\xa0\x04 \x01(\x0b\x32%.perfetto.protos.DoSysOpenFtraceEventH\x00\x12:\n\topen_exec\x18\xa1\x04 \x01(\x0b\x32$.perfetto.protos.OpenExecFtraceEventH\x00\x12\x43\n\x0e\x62lock_io_start\x18\xa2\x04 \x01(\x0b\x32(.perfetto.protos.BlockIoStartFtraceEventH\x00\x12\x41\n\rblock_io_done\x18\xa3\x04 \x01(\x0b\x32\'.perfetto.protos.BlockIoDoneFtraceEventH\x00\x12N\n\x14mali_gpu_power_state\x18\xa4\x04 \x01(\x0b\x32-.perfetto.protos.MaliGpuPowerStateFtraceEventH\x00\x12P\n\x15\x64pu_disp_dpu_underrun\x18\xa5\x04 \x01(\x0b\x32..perfetto.protos.DpuDispDpuUnderrunFtraceEventH\x00\x12Y\n\x1a\x64pu_disp_vblank_irq_enable\x18\xa6\x04 \x01(\x0b\x32\x32.perfetto.protos.DpuDispVblankIrqEnableFtraceEventH\x00\x12\x42\n\rhrtimer_start\x18\xa7\x04 \x01(\x0b\x32(.perfetto.protos.HrtimerStartFtraceEventH\x00\x12\x44\n\x0ehrtimer_cancel\x18\xa8\x04 \x01(\x0b\x32).perfetto.protos.HrtimerCancelFtraceEventH\x00\x12O\n\x14hrtimer_expire_entry\x18\xa9\x04 \x01(\x0b\x32..perfetto.protos.HrtimerExpireEntryFtraceEventH\x00\x12M\n\x13hrtimer_expire_exit\x18\xaa\x04 \x01(\x0b\x32-.perfetto.protos.HrtimerExpireExitFtraceEventH\x00\x12>\n\x0btimer_start\x18\xab\x04 \x01(\x0b\x32&.perfetto.protos.TimerStartFtraceEventH\x00\x12@\n\x0ctimer_cancel\x18\xac\x04 \x01(\x0b\x32\'.perfetto.protos.TimerCancelFtraceEventH\x00\x12K\n\x12timer_expire_entry\x18\xad\x04 \x01(\x0b\x32,.perfetto.protos.TimerExpireEntryFtraceEventH\x00\x12I\n\x11timer_expire_exit\x18\xae\x04 \x01(\x0b\x32+.perfetto.protos.TimerExpireExitFtraceEventH\x00\x12I\n\x11local_timer_entry\x18\xaf\x04 \x01(\x0b\x32+.perfetto.protos.LocalTimerEntryFtraceEventH\x00\x12G\n\x10local_timer_exit\x18\xb0\x04 \x01(\x0b\x32*.perfetto.protos.LocalTimerExitFtraceEventH\x00\x12K\n\x12\x64wc3_alloc_request\x18\xb1\x04 \x01(\x0b\x32,.perfetto.protos.Dwc3AllocRequestFtraceEventH\x00\x12I\n\x11\x64wc3_complete_trb\x18\xb2\x04 \x01(\x0b\x32+.perfetto.protos.Dwc3CompleteTrbFtraceEventH\x00\x12\x41\n\rdwc3_ctrl_req\x18\xb3\x04 \x01(\x0b\x32\'.perfetto.protos.Dwc3CtrlReqFtraceEventH\x00\x12\x45\n\x0f\x64wc3_ep_dequeue\x18\xb4\x04 \x01(\x0b\x32).perfetto.protos.Dwc3EpDequeueFtraceEventH\x00\x12\x41\n\rdwc3_ep_queue\x18\xb5\x04 \x01(\x0b\x32\'.perfetto.protos.Dwc3EpQueueFtraceEventH\x00\x12<\n\ndwc3_event\x18\xb6\x04 \x01(\x0b\x32%.perfetto.protos.Dwc3EventFtraceEventH\x00\x12I\n\x11\x64wc3_free_request\x18\xb7\x04 \x01(\x0b\x32+.perfetto.protos.Dwc3FreeRequestFtraceEventH\x00\x12J\n\x12\x64wc3_gadget_ep_cmd\x18\xb8\x04 \x01(\x0b\x32+.perfetto.protos.Dwc3GadgetEpCmdFtraceEventH\x00\x12R\n\x16\x64wc3_gadget_ep_disable\x18\xb9\x04 \x01(\x0b\x32/.perfetto.protos.Dwc3GadgetEpDisableFtraceEventH\x00\x12P\n\x15\x64wc3_gadget_ep_enable\x18\xba\x04 \x01(\x0b\x32..perfetto.protos.Dwc3GadgetEpEnableFtraceEventH\x00\x12T\n\x17\x64wc3_gadget_generic_cmd\x18\xbb\x04 \x01(\x0b\x32\x30.perfetto.protos.Dwc3GadgetGenericCmdFtraceEventH\x00\x12O\n\x14\x64wc3_gadget_giveback\x18\xbc\x04 \x01(\x0b\x32..perfetto.protos.Dwc3GadgetGivebackFtraceEventH\x00\x12G\n\x10\x64wc3_prepare_trb\x18\xbd\x04 \x01(\x0b\x32*.perfetto.protos.Dwc3PrepareTrbFtraceEventH\x00\x12<\n\ndwc3_readl\x18\xbe\x04 \x01(\x0b\x32%.perfetto.protos.Dwc3ReadlFtraceEventH\x00\x12>\n\x0b\x64wc3_writel\x18\xbf\x04 \x01(\x0b\x32&.perfetto.protos.Dwc3WritelFtraceEventH\x00\x12G\n\x10\x63ma_alloc_finish\x18\xc0\x04 \x01(\x0b\x32*.perfetto.protos.CmaAllocFinishFtraceEventH\x00\x12h\n\"mm_alloc_contig_migrate_range_info\x18\xc1\x04 \x01(\x0b\x32\x39.perfetto.protos.MmAllocContigMigrateRangeInfoFtraceEventH\x00\x12\x41\n\rhost_ffa_call\x18\xc2\x04 \x01(\x0b\x32\'.perfetto.protos.HostFfaCallFtraceEventH\x00\x12\x45\n\x0f\x64mabuf_rss_stat\x18\xc3\x04 \x01(\x0b\x32).perfetto.protos.DmabufRssStatFtraceEventH\x00\x12>\n\x0biommu_idmap\x18\xc4\x04 \x01(\x0b\x32&.perfetto.protos.IommuIdmapFtraceEventH\x00\x12G\n\x10psci_mem_protect\x18\xc5\x04 \x01(\x0b\x32*.perfetto.protos.PsciMemProtectFtraceEventH\x00\x12Q\n\x15hypervisor_host_hcall\x18\xc6\x04 \x01(\x0b\x32/.perfetto.protos.HypervisorHostHcallFtraceEventH\x00\x12M\n\x13hypervisor_host_smc\x18\xc7\x04 \x01(\x0b\x32-.perfetto.protos.HypervisorHostSmcFtraceEventH\x00\x12M\n\x13hypervisor_hyp_exit\x18\xc8\x04 \x01(\x0b\x32-.perfetto.protos.HypervisorHypExitFtraceEventH\x00\x12S\n\x16hypervisor_iommu_idmap\x18\xc9\x04 \x01(\x0b\x32\x30.perfetto.protos.HypervisorIommuIdmapFtraceEventH\x00\x12\\\n\x1bhypervisor_psci_mem_protect\x18\xca\x04 \x01(\x0b\x32\x34.perfetto.protos.HypervisorPsciMemProtectFtraceEventH\x00\x12X\n\x19hypervisor_host_mem_abort\x18\xcb\x04 \x01(\x0b\x32\x32.perfetto.protos.HypervisorHostMemAbortFtraceEventH\x00\x12O\n\x14hypervisor_hyp_enter\x18\xcc\x04 \x01(\x0b\x32..perfetto.protos.HypervisorHypEnterFtraceEventH\x00\x12\x64\n\x1fhypervisor_iommu_idmap_complete\x18\xcd\x04 \x01(\x0b\x32\x38.perfetto.protos.HypervisorIommuIdmapCompleteFtraceEventH\x00\x12^\n\x1chypervisor_vcpu_illegal_trap\x18\xce\x04 \x01(\x0b\x32\x35.perfetto.protos.HypervisorVcpuIllegalTrapFtraceEventH\x00\x12O\n\x15\x64rm_sched_job_add_dep\x18\xcf\x04 \x01(\x0b\x32-.perfetto.protos.DrmSchedJobAddDepFtraceEventH\x00\x12J\n\x12\x64rm_sched_job_done\x18\xd0\x04 \x01(\x0b\x32+.perfetto.protos.DrmSchedJobDoneFtraceEventH\x00\x12L\n\x13\x64rm_sched_job_queue\x18\xd1\x04 \x01(\x0b\x32,.perfetto.protos.DrmSchedJobQueueFtraceEventH\x00\x12H\n\x11\x64rm_sched_job_run\x18\xd2\x04 \x01(\x0b\x32*.perfetto.protos.DrmSchedJobRunFtraceEventH\x00\x12\\\n\x1b\x64rm_sched_job_unschedulable\x18\xd3\x04 \x01(\x0b\x32\x34.perfetto.protos.DrmSchedJobUnschedulableFtraceEventH\x00\x12Q\n\x15\x66wtp_perfetto_counter\x18\xd4\x04 \x01(\x0b\x32/.perfetto.protos.FwtpPerfettoCounterFtraceEventH\x00\x12T\n\x17scsi_dispatch_cmd_error\x18\xd5\x04 \x01(\x0b\x32\x30.perfetto.protos.ScsiDispatchCmdErrorFtraceEventH\x00\x12X\n\x19scsi_dispatch_cmd_timeout\x18\xd6\x04 \x01(\x0b\x32\x32.perfetto.protos.ScsiDispatchCmdTimeoutFtraceEventH\x00\x12\x43\n\x0escsi_eh_wakeup\x18\xd7\x04 \x01(\x0b\x32(.perfetto.protos.ScsiEhWakeupFtraceEventH\x00\x42\x07\n\x05\x65ventJ\x08\x08\x80\x80\x04\x10\x81\x80\x08\"\xc1\x01\n\x0e\x46traceCpuStats\x12\x0b\n\x03\x63pu\x18\x01 \x01(\x04\x12\x0f\n\x07\x65ntries\x18\x02 \x01(\x04\x12\x0f\n\x07overrun\x18\x03 \x01(\x04\x12\x16\n\x0e\x63ommit_overrun\x18\x04 \x01(\x04\x12\x12\n\nbytes_read\x18\x05 \x01(\x04\x12\x17\n\x0foldest_event_ts\x18\x06 \x01(\x01\x12\x0e\n\x06now_ts\x18\x07 \x01(\x01\x12\x16\n\x0e\x64ropped_events\x18\x08 \x01(\x04\x12\x13\n\x0bread_events\x18\t \x01(\x04\"1\n\x11\x46traceKprobeStats\x12\x0c\n\x04hits\x18\x01 \x01(\x03\x12\x0e\n\x06misses\x18\x02 \x01(\x03\"\xc7\x04\n\x0b\x46traceStats\x12\x31\n\x05phase\x18\x01 \x01(\x0e\x32\".perfetto.protos.FtraceStats.Phase\x12\x32\n\tcpu_stats\x18\x02 \x03(\x0b\x32\x1f.perfetto.protos.FtraceCpuStats\x12\x1d\n\x15kernel_symbols_parsed\x18\x03 \x01(\r\x12\x1d\n\x15kernel_symbols_mem_kb\x18\x04 \x01(\r\x12\x15\n\ratrace_errors\x18\x05 \x01(\t\x12\x1f\n\x17\x65xclusive_feature_error\x18\r \x01(\t\x12\x1d\n\x15unknown_ftrace_events\x18\x06 \x03(\t\x12\x1c\n\x14\x66\x61iled_ftrace_events\x18\x07 \x03(\t\x12\x1e\n\x16preserve_ftrace_buffer\x18\x08 \x01(\x08\x12?\n\x13\x66trace_parse_errors\x18\t \x03(\x0e\x32\".perfetto.protos.FtraceParseStatus\x12\x38\n\x0ckprobe_stats\x18\n \x01(\x0b\x32\".perfetto.protos.FtraceKprobeStats\x12\x1d\n\x15\x63pu_buffer_size_pages\x18\x0b \x01(\r\x12$\n\x1c\x63\x61\x63hed_cpu_buffer_size_pages\x18\x0c \x01(\r\">\n\x05Phase\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x12\n\x0eSTART_OF_TRACE\x10\x01\x12\x10\n\x0c\x45ND_OF_TRACE\x10\x02\"\xb8\x08\n\x11\x46traceEventBundle\x12\x0b\n\x03\x63pu\x18\x01 \x01(\r\x12+\n\x05\x65vent\x18\x02 \x03(\x0b\x32\x1c.perfetto.protos.FtraceEvent\x12\x13\n\x0blost_events\x18\x03 \x01(\x08\x12\x46\n\rcompact_sched\x18\x04 \x01(\x0b\x32/.perfetto.protos.FtraceEventBundle.CompactSched\x12\x32\n\x0c\x66trace_clock\x18\x05 \x01(\x0e\x32\x1c.perfetto.protos.FtraceClock\x12\x18\n\x10\x66trace_timestamp\x18\x06 \x01(\x03\x12\x16\n\x0e\x62oot_timestamp\x18\x07 \x01(\x03\x12=\n\x05\x65rror\x18\x08 \x03(\x0b\x32..perfetto.protos.FtraceEventBundle.FtraceError\x12!\n\x19last_read_event_timestamp\x18\t \x01(\x04\x12%\n\x1dprevious_bundle_end_timestamp\x18\n \x01(\x04\x12\\\n\x19generic_event_descriptors\x18\x0b \x03(\x0b\x32\x39.perfetto.protos.FtraceEventBundle.GenericEventDescriptor\x12\x1e\n\x15\x62roken_abi_trace_page\x18\x80\x04 \x01(\x0c\x1a\xee\x02\n\x0c\x43ompactSched\x12\x14\n\x0cintern_table\x18\x05 \x03(\t\x12\x1c\n\x10switch_timestamp\x18\x01 \x03(\x04\x42\x02\x10\x01\x12\x1d\n\x11switch_prev_state\x18\x02 \x03(\x03\x42\x02\x10\x01\x12\x1b\n\x0fswitch_next_pid\x18\x03 \x03(\x05\x42\x02\x10\x01\x12\x1c\n\x10switch_next_prio\x18\x04 \x03(\x05\x42\x02\x10\x01\x12\"\n\x16switch_next_comm_index\x18\x06 \x03(\rB\x02\x10\x01\x12\x1c\n\x10waking_timestamp\x18\x07 \x03(\x04\x42\x02\x10\x01\x12\x16\n\nwaking_pid\x18\x08 \x03(\x05\x42\x02\x10\x01\x12\x1d\n\x11waking_target_cpu\x18\t \x03(\x05\x42\x02\x10\x01\x12\x17\n\x0bwaking_prio\x18\n \x03(\x05\x42\x02\x10\x01\x12\x1d\n\x11waking_comm_index\x18\x0b \x03(\rB\x02\x10\x01\x12\x1f\n\x13waking_common_flags\x18\x0c \x03(\rB\x02\x10\x01\x1aT\n\x0b\x46traceError\x12\x11\n\ttimestamp\x18\x01 \x01(\x04\x12\x32\n\x06status\x18\x02 \x01(\x0e\x32\".perfetto.protos.FtraceParseStatus\x1aX\n\x16GenericEventDescriptor\x12\x10\n\x08\x66ield_id\x18\x01 \x01(\x05\x12\x12\n\ngroup_name\x18\x03 \x01(\t\x12\x18\n\x10\x65vent_descriptor\x18\x02 \x01(\x0c\">\n\x1eGenericKernelCpuFrequencyEvent\x12\x0b\n\x03\x63pu\x18\x01 \x01(\x05\x12\x0f\n\x07\x66req_hz\x18\x02 \x01(\x03\"\xa2\x03\n\x1bGenericKernelTaskStateEvent\x12\x0b\n\x03\x63pu\x18\x01 \x01(\x05\x12\x0c\n\x04\x63omm\x18\x02 \x01(\t\x12\x0b\n\x03tid\x18\x03 \x01(\x03\x12I\n\x05state\x18\x04 \x01(\x0e\x32:.perfetto.protos.GenericKernelTaskStateEvent.TaskStateEnum\x12\x0c\n\x04prio\x18\x05 \x01(\x05\"\x81\x02\n\rTaskStateEnum\x12\x16\n\x12TASK_STATE_UNKNOWN\x10\x00\x12\x16\n\x12TASK_STATE_CREATED\x10\x01\x12\x17\n\x13TASK_STATE_RUNNABLE\x10\x02\x12\x16\n\x12TASK_STATE_RUNNING\x10\x03\x12\"\n\x1eTASK_STATE_INTERRUPTIBLE_SLEEP\x10\x04\x12$\n TASK_STATE_UNINTERRUPTIBLE_SLEEP\x10\x05\x12\x16\n\x12TASK_STATE_STOPPED\x10\x06\x12\x13\n\x0fTASK_STATE_DEAD\x10\x07\x12\x18\n\x14TASK_STATE_DESTROYED\x10\x08\"9\n\x1cGenericKernelTaskRenameEvent\x12\x0b\n\x03tid\x18\x01 \x01(\x03\x12\x0c\n\x04\x63omm\x18\x02 \x01(\t\"\xa4\x02\n\x18GenericKernelProcessTree\x12\x44\n\tprocesses\x18\x01 \x03(\x0b\x32\x31.perfetto.protos.GenericKernelProcessTree.Process\x12\x41\n\x07threads\x18\x02 \x03(\x0b\x32\x30.perfetto.protos.GenericKernelProcessTree.Thread\x1aH\n\x06Thread\x12\x0b\n\x03tid\x18\x01 \x01(\x03\x12\x0b\n\x03pid\x18\x02 \x01(\x03\x12\x0c\n\x04\x63omm\x18\x03 \x01(\t\x12\x16\n\x0eis_main_thread\x18\x04 \x01(\x08\x1a\x35\n\x07Process\x12\x0b\n\x03pid\x18\x01 \x01(\x03\x12\x0c\n\x04ppid\x18\x02 \x01(\x03\x12\x0f\n\x07\x63mdline\x18\x03 \x01(\t\"\xfb\x01\n\x0fGpuCounterEvent\x12\x41\n\x12\x63ounter_descriptor\x18\x01 \x01(\x0b\x32%.perfetto.protos.GpuCounterDescriptor\x12=\n\x08\x63ounters\x18\x02 \x03(\x0b\x32+.perfetto.protos.GpuCounterEvent.GpuCounter\x12\x0e\n\x06gpu_id\x18\x03 \x01(\x05\x1aV\n\nGpuCounter\x12\x12\n\ncounter_id\x18\x01 \x01(\r\x12\x13\n\tint_value\x18\x02 \x01(\x03H\x00\x12\x16\n\x0c\x64ouble_value\x18\x03 \x01(\x01H\x00\x42\x07\n\x05value\"\x84\x02\n\x06GpuLog\x12\x32\n\x08severity\x18\x01 \x01(\x0e\x32 .perfetto.protos.GpuLog.Severity\x12\x0b\n\x03tag\x18\x02 \x01(\t\x12\x13\n\x0blog_message\x18\x03 \x01(\t\"\xa3\x01\n\x08Severity\x12\x1c\n\x18LOG_SEVERITY_UNSPECIFIED\x10\x00\x12\x18\n\x14LOG_SEVERITY_VERBOSE\x10\x01\x12\x16\n\x12LOG_SEVERITY_DEBUG\x10\x02\x12\x15\n\x11LOG_SEVERITY_INFO\x10\x03\x12\x18\n\x14LOG_SEVERITY_WARNING\x10\x04\x12\x16\n\x12LOG_SEVERITY_ERROR\x10\x05\"\x97\x07\n\x13GpuRenderStageEvent\x12\x10\n\x08\x65vent_id\x18\x01 \x01(\x04\x12\x10\n\x08\x64uration\x18\x02 \x01(\x04\x12\x14\n\x0chw_queue_iid\x18\r \x01(\x04\x12\x11\n\tstage_iid\x18\x0e \x01(\x04\x12\x0e\n\x06gpu_id\x18\x0b \x01(\x05\x12\x0f\n\x07\x63ontext\x18\x05 \x01(\x04\x12\x1c\n\x14render_target_handle\x18\x08 \x01(\x04\x12\x15\n\rsubmission_id\x18\n \x01(\r\x12\x42\n\nextra_data\x18\x06 \x03(\x0b\x32..perfetto.protos.GpuRenderStageEvent.ExtraData\x12\x1a\n\x12render_pass_handle\x18\t \x01(\x04\x12\x1f\n\x17render_pass_instance_id\x18\x10 \x01(\x04\x12!\n\x19render_subpass_index_mask\x18\x0f \x03(\x04\x12\x1d\n\x15\x63ommand_buffer_handle\x18\x0c \x01(\x04\x12O\n\x0especifications\x18\x07 \x01(\x0b\x32\x33.perfetto.protos.GpuRenderStageEvent.SpecificationsB\x02\x18\x01\x12\x17\n\x0bhw_queue_id\x18\x03 \x01(\x05\x42\x02\x18\x01\x12\x14\n\x08stage_id\x18\x04 \x01(\x05\x42\x02\x18\x01\x1a(\n\tExtraData\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x1a\xe9\x02\n\x0eSpecifications\x12U\n\x0c\x63ontext_spec\x18\x01 \x01(\x0b\x32?.perfetto.protos.GpuRenderStageEvent.Specifications.ContextSpec\x12Q\n\x08hw_queue\x18\x02 \x03(\x0b\x32?.perfetto.protos.GpuRenderStageEvent.Specifications.Description\x12N\n\x05stage\x18\x03 \x03(\x0b\x32?.perfetto.protos.GpuRenderStageEvent.Specifications.Description\x1a+\n\x0b\x43ontextSpec\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\x04\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x1a\x30\n\x0b\x44\x65scription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t*\x04\x08\x64\x10\x65\"\xaa\x01\n\x17InternedGraphicsContext\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x39\n\x03\x61pi\x18\x03 \x01(\x0e\x32,.perfetto.protos.InternedGraphicsContext.Api\":\n\x03\x41pi\x12\r\n\tUNDEFINED\x10\x00\x12\x0b\n\x07OPEN_GL\x10\x01\x12\n\n\x06VULKAN\x10\x02\x12\x0b\n\x07OPEN_CL\x10\x03\"\xee\x01\n#InternedGpuRenderStageSpecification\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12Z\n\x08\x63\x61tegory\x18\x04 \x01(\x0e\x32H.perfetto.protos.InternedGpuRenderStageSpecification.RenderStageCategory\";\n\x13RenderStageCategory\x12\t\n\x05OTHER\x10\x00\x12\x0c\n\x08GRAPHICS\x10\x01\x12\x0b\n\x07\x43OMPUTE\x10\x02\"\xbb\x03\n\x0eVulkanApiEvent\x12\\\n\x1avk_debug_utils_object_name\x18\x01 \x01(\x0b\x32\x36.perfetto.protos.VulkanApiEvent.VkDebugUtilsObjectNameH\x00\x12H\n\x0fvk_queue_submit\x18\x02 \x01(\x0b\x32-.perfetto.protos.VulkanApiEvent.VkQueueSubmitH\x00\x1ar\n\x16VkDebugUtilsObjectName\x12\x0b\n\x03pid\x18\x01 \x01(\r\x12\x11\n\tvk_device\x18\x02 \x01(\x04\x12\x13\n\x0bobject_type\x18\x03 \x01(\x05\x12\x0e\n\x06object\x18\x04 \x01(\x04\x12\x13\n\x0bobject_name\x18\x05 \x01(\t\x1a\x83\x01\n\rVkQueueSubmit\x12\x13\n\x0b\x64uration_ns\x18\x01 \x01(\x04\x12\x0b\n\x03pid\x18\x02 \x01(\r\x12\x0b\n\x03tid\x18\x03 \x01(\r\x12\x10\n\x08vk_queue\x18\x04 \x01(\x04\x12\x1a\n\x12vk_command_buffers\x18\x05 \x03(\x04\x12\x15\n\rsubmission_id\x18\x06 \x01(\rB\x07\n\x05\x65vent\"z\n\x1bVulkanMemoryEventAnnotation\x12\x0f\n\x07key_iid\x18\x01 \x01(\x04\x12\x13\n\tint_value\x18\x02 \x01(\x03H\x00\x12\x16\n\x0c\x64ouble_value\x18\x03 \x01(\x01H\x00\x12\x14\n\nstring_iid\x18\x04 \x01(\x04H\x00\x42\x07\n\x05value\"\xe8\x06\n\x11VulkanMemoryEvent\x12\x39\n\x06source\x18\x01 \x01(\x0e\x32).perfetto.protos.VulkanMemoryEvent.Source\x12?\n\toperation\x18\x02 \x01(\x0e\x32,.perfetto.protos.VulkanMemoryEvent.Operation\x12\x11\n\ttimestamp\x18\x03 \x01(\x03\x12\x0b\n\x03pid\x18\x04 \x01(\r\x12\x16\n\x0ememory_address\x18\x05 \x01(\x06\x12\x13\n\x0bmemory_size\x18\x06 \x01(\x04\x12\x12\n\ncaller_iid\x18\x07 \x01(\x04\x12L\n\x10\x61llocation_scope\x18\x08 \x01(\x0e\x32\x32.perfetto.protos.VulkanMemoryEvent.AllocationScope\x12\x41\n\x0b\x61nnotations\x18\t \x03(\x0b\x32,.perfetto.protos.VulkanMemoryEventAnnotation\x12\x0e\n\x06\x64\x65vice\x18\x10 \x01(\x06\x12\x15\n\rdevice_memory\x18\x11 \x01(\x06\x12\x13\n\x0bmemory_type\x18\x12 \x01(\r\x12\x0c\n\x04heap\x18\x13 \x01(\r\x12\x15\n\robject_handle\x18\x14 \x01(\x06\"\x85\x01\n\x06Source\x12\x16\n\x12SOURCE_UNSPECIFIED\x10\x00\x12\x11\n\rSOURCE_DRIVER\x10\x01\x12\x11\n\rSOURCE_DEVICE\x10\x02\x12\x18\n\x14SOURCE_DEVICE_MEMORY\x10\x03\x12\x11\n\rSOURCE_BUFFER\x10\x04\x12\x10\n\x0cSOURCE_IMAGE\x10\x05\"u\n\tOperation\x12\x12\n\x0eOP_UNSPECIFIED\x10\x00\x12\r\n\tOP_CREATE\x10\x01\x12\x0e\n\nOP_DESTROY\x10\x02\x12\x0b\n\x07OP_BIND\x10\x03\x12\x14\n\x10OP_DESTROY_BOUND\x10\x04\x12\x12\n\x0eOP_ANNOTATIONS\x10\x05\"\x84\x01\n\x0f\x41llocationScope\x12\x15\n\x11SCOPE_UNSPECIFIED\x10\x00\x12\x11\n\rSCOPE_COMMAND\x10\x01\x12\x10\n\x0cSCOPE_OBJECT\x10\x02\x12\x0f\n\x0bSCOPE_CACHE\x10\x03\x12\x10\n\x0cSCOPE_DEVICE\x10\x04\x12\x12\n\x0eSCOPE_INSTANCE\x10\x05\"*\n\x0eInternedString\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x0b\n\x03str\x18\x02 \x01(\x0c\"L\n\x04Line\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12\x18\n\x10source_file_name\x18\x02 \x01(\t\x12\x13\n\x0bline_number\x18\x03 \x01(\r\"G\n\x0e\x41\x64\x64ressSymbols\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04\x12$\n\x05lines\x18\x02 \x03(\x0b\x32\x15.perfetto.protos.Line\"i\n\rModuleSymbols\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x10\n\x08\x62uild_id\x18\x02 \x01(\t\x12\x38\n\x0f\x61\x64\x64ress_symbols\x18\x03 \x03(\x0b\x32\x1f.perfetto.protos.AddressSymbols\"\x9c\x01\n\x07Mapping\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x10\n\x08\x62uild_id\x18\x02 \x01(\x04\x12\x14\n\x0c\x65xact_offset\x18\x08 \x01(\x04\x12\x14\n\x0cstart_offset\x18\x03 \x01(\x04\x12\r\n\x05start\x18\x04 \x01(\x04\x12\x0b\n\x03\x65nd\x18\x05 \x01(\x04\x12\x11\n\tload_bias\x18\x06 \x01(\x04\x12\x17\n\x0fpath_string_ids\x18\x07 \x03(\x04\"\x80\x01\n\x05\x46rame\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x18\n\x10\x66unction_name_id\x18\x02 \x01(\x04\x12\x12\n\nmapping_id\x18\x03 \x01(\x04\x12\x0e\n\x06rel_pc\x18\x04 \x01(\x04\x12\x17\n\x0fsource_path_iid\x18\x05 \x01(\x04\x12\x13\n\x0bline_number\x18\x06 \x01(\r\"+\n\tCallstack\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x11\n\tframe_ids\x18\x02 \x03(\x04\"*\n\rHistogramName\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"Z\n\x15\x43hromeHistogramSample\x12\x11\n\tname_hash\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06sample\x18\x03 \x01(\x03\x12\x10\n\x08name_iid\x18\x04 \x01(\x04\"\xac\x07\n\x0f\x44\x65\x62ugAnnotation\x12\x12\n\x08name_iid\x18\x01 \x01(\x04H\x00\x12\x0e\n\x04name\x18\n \x01(\tH\x00\x12\x14\n\nbool_value\x18\x02 \x01(\x08H\x01\x12\x14\n\nuint_value\x18\x03 \x01(\x04H\x01\x12\x13\n\tint_value\x18\x04 \x01(\x03H\x01\x12\x16\n\x0c\x64ouble_value\x18\x05 \x01(\x01H\x01\x12\x17\n\rpointer_value\x18\x07 \x01(\x04H\x01\x12\x44\n\x0cnested_value\x18\x08 \x01(\x0b\x32,.perfetto.protos.DebugAnnotation.NestedValueH\x01\x12\x1b\n\x11legacy_json_value\x18\t \x01(\tH\x01\x12\x16\n\x0cstring_value\x18\x06 \x01(\tH\x01\x12\x1a\n\x10string_value_iid\x18\x11 \x01(\x04H\x01\x12\x19\n\x0fproto_type_name\x18\x10 \x01(\tH\x02\x12\x1d\n\x13proto_type_name_iid\x18\r \x01(\x04H\x02\x12\x13\n\x0bproto_value\x18\x0e \x01(\x0c\x12\x36\n\x0c\x64ict_entries\x18\x0b \x03(\x0b\x32 .perfetto.protos.DebugAnnotation\x12\x36\n\x0c\x61rray_values\x18\x0c \x03(\x0b\x32 .perfetto.protos.DebugAnnotation\x1a\xfc\x02\n\x0bNestedValue\x12L\n\x0bnested_type\x18\x01 \x01(\x0e\x32\x37.perfetto.protos.DebugAnnotation.NestedValue.NestedType\x12\x11\n\tdict_keys\x18\x02 \x03(\t\x12\x41\n\x0b\x64ict_values\x18\x03 \x03(\x0b\x32,.perfetto.protos.DebugAnnotation.NestedValue\x12\x42\n\x0c\x61rray_values\x18\x04 \x03(\x0b\x32,.perfetto.protos.DebugAnnotation.NestedValue\x12\x11\n\tint_value\x18\x05 \x01(\x03\x12\x14\n\x0c\x64ouble_value\x18\x06 \x01(\x01\x12\x12\n\nbool_value\x18\x07 \x01(\x08\x12\x14\n\x0cstring_value\x18\x08 \x01(\t\"2\n\nNestedType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x08\n\x04\x44ICT\x10\x01\x12\t\n\x05\x41RRAY\x10\x02\x42\x0c\n\nname_fieldB\x07\n\x05valueB\x17\n\x15proto_type_descriptor\"0\n\x13\x44\x65\x62ugAnnotationName\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"9\n\x1c\x44\x65\x62ugAnnotationValueTypeName\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"\x83\x02\n\nLogMessage\x12\x1b\n\x13source_location_iid\x18\x01 \x01(\x04\x12\x10\n\x08\x62ody_iid\x18\x02 \x01(\x04\x12\x32\n\x04prio\x18\x03 \x01(\x0e\x32$.perfetto.protos.LogMessage.Priority\"\x91\x01\n\x08Priority\x12\x14\n\x10PRIO_UNSPECIFIED\x10\x00\x12\x0f\n\x0bPRIO_UNUSED\x10\x01\x12\x10\n\x0cPRIO_VERBOSE\x10\x02\x12\x0e\n\nPRIO_DEBUG\x10\x03\x12\r\n\tPRIO_INFO\x10\x04\x12\r\n\tPRIO_WARN\x10\x05\x12\x0e\n\nPRIO_ERROR\x10\x06\x12\x0e\n\nPRIO_FATAL\x10\x07\"+\n\x0eLogMessageBody\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x0c\n\x04\x62ody\x18\x02 \x01(\t\"M\n\x1aUnsymbolizedSourceLocation\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x12\n\nmapping_id\x18\x02 \x01(\x04\x12\x0e\n\x06rel_pc\x18\x03 \x01(\x04\"\\\n\x0eSourceLocation\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x11\n\tfile_name\x18\x02 \x01(\t\x12\x15\n\rfunction_name\x18\x03 \x01(\t\x12\x13\n\x0bline_number\x18\x04 \x01(\r\"$\n\x15\x43hromeActiveProcesses\x12\x0b\n\x03pid\x18\x01 \x03(\x05\"\xee\x02\n\x1a\x43hromeApplicationStateInfo\x12]\n\x11\x61pplication_state\x18\x01 \x01(\x0e\x32\x42.perfetto.protos.ChromeApplicationStateInfo.ChromeApplicationState\"\xf0\x01\n\x16\x43hromeApplicationState\x12\x1d\n\x19\x41PPLICATION_STATE_UNKNOWN\x10\x00\x12,\n(APPLICATION_STATE_HAS_RUNNING_ACTIVITIES\x10\x01\x12+\n\'APPLICATION_STATE_HAS_PAUSED_ACTIVITIES\x10\x02\x12,\n(APPLICATION_STATE_HAS_STOPPED_ACTIVITIES\x10\x03\x12.\n*APPLICATION_STATE_HAS_DESTROYED_ACTIVITIES\x10\x04\"\xbf\x08\n\x1e\x43hromeCompositorSchedulerState\x12\x44\n\rstate_machine\x18\x01 \x01(\x0b\x32-.perfetto.protos.ChromeCompositorStateMachine\x12$\n\x1cobserving_begin_frame_source\x18\x02 \x01(\x08\x12&\n\x1e\x62\x65gin_impl_frame_deadline_task\x18\x03 \x01(\x08\x12 \n\x18pending_begin_frame_task\x18\x04 \x01(\x08\x12\x33\n+skipped_last_frame_missed_exceeded_deadline\x18\x05 \x01(\x08\x12G\n\rinside_action\x18\x07 \x01(\x0e\x32\x30.perfetto.protos.ChromeCompositorSchedulerAction\x12\x61\n\rdeadline_mode\x18\x08 \x01(\x0e\x32J.perfetto.protos.ChromeCompositorSchedulerState.BeginImplFrameDeadlineMode\x12\x13\n\x0b\x64\x65\x61\x64line_us\x18\t \x01(\x03\x12 \n\x18\x64\x65\x61\x64line_scheduled_at_us\x18\n \x01(\x03\x12\x0e\n\x06now_us\x18\x0b \x01(\x03\x12 \n\x18now_to_deadline_delta_us\x18\x0c \x01(\x03\x12-\n%now_to_deadline_scheduled_at_delta_us\x18\r \x01(\x03\x12\x42\n\x15\x62\x65gin_impl_frame_args\x18\x0e \x01(\x0b\x32#.perfetto.protos.BeginImplFrameArgs\x12L\n\x1a\x62\x65gin_frame_observer_state\x18\x0f \x01(\x0b\x32(.perfetto.protos.BeginFrameObserverState\x12H\n\x18\x62\x65gin_frame_source_state\x18\x10 \x01(\x0b\x32&.perfetto.protos.BeginFrameSourceState\x12K\n\x19\x63ompositor_timing_history\x18\x11 \x01(\x0b\x32(.perfetto.protos.CompositorTimingHistory\"\xbe\x01\n\x1a\x42\x65ginImplFrameDeadlineMode\x12\x1d\n\x19\x44\x45\x41\x44LINE_MODE_UNSPECIFIED\x10\x00\x12\x16\n\x12\x44\x45\x41\x44LINE_MODE_NONE\x10\x01\x12\x1b\n\x17\x44\x45\x41\x44LINE_MODE_IMMEDIATE\x10\x02\x12\x19\n\x15\x44\x45\x41\x44LINE_MODE_REGULAR\x10\x03\x12\x16\n\x12\x44\x45\x41\x44LINE_MODE_LATE\x10\x04\x12\x19\n\x15\x44\x45\x41\x44LINE_MODE_BLOCKED\x10\x05J\x04\x08\x06\x10\x07\"\xfe\x1c\n\x1c\x43hromeCompositorStateMachine\x12M\n\x0bmajor_state\x18\x01 \x01(\x0b\x32\x38.perfetto.protos.ChromeCompositorStateMachine.MajorState\x12M\n\x0bminor_state\x18\x02 \x01(\x0b\x32\x38.perfetto.protos.ChromeCompositorStateMachine.MinorState\x1a\x93\n\n\nMajorState\x12\x45\n\x0bnext_action\x18\x01 \x01(\x0e\x32\x30.perfetto.protos.ChromeCompositorSchedulerAction\x12l\n\x16\x62\x65gin_impl_frame_state\x18\x02 \x01(\x0e\x32L.perfetto.protos.ChromeCompositorStateMachine.MajorState.BeginImplFrameState\x12l\n\x16\x62\x65gin_main_frame_state\x18\x03 \x01(\x0e\x32L.perfetto.protos.ChromeCompositorStateMachine.MajorState.BeginMainFrameState\x12u\n\x1blayer_tree_frame_sink_state\x18\x04 \x01(\x0e\x32P.perfetto.protos.ChromeCompositorStateMachine.MajorState.LayerTreeFrameSinkState\x12p\n\x13\x66orced_redraw_state\x18\x05 \x01(\x0e\x32S.perfetto.protos.ChromeCompositorStateMachine.MajorState.ForcedRedrawOnTimeoutState\"\xa1\x01\n\x13\x42\x65ginImplFrameState\x12 \n\x1c\x42\x45GIN_IMPL_FRAME_UNSPECIFIED\x10\x00\x12\x19\n\x15\x42\x45GIN_IMPL_FRAME_IDLE\x10\x01\x12\'\n#BEGIN_IMPL_FRAME_INSIDE_BEGIN_FRAME\x10\x02\x12$\n BEGIN_IMPL_FRAME_INSIDE_DEADLINE\x10\x03\"\x93\x01\n\x13\x42\x65ginMainFrameState\x12 \n\x1c\x42\x45GIN_MAIN_FRAME_UNSPECIFIED\x10\x00\x12\x19\n\x15\x42\x45GIN_MAIN_FRAME_IDLE\x10\x01\x12\x19\n\x15\x42\x45GIN_MAIN_FRAME_SENT\x10\x02\x12$\n BEGIN_MAIN_FRAME_READY_TO_COMMIT\x10\x03\"\xf4\x01\n\x17LayerTreeFrameSinkState\x12 \n\x1cLAYER_TREE_FRAME_UNSPECIFIED\x10\x00\x12\x19\n\x15LAYER_TREE_FRAME_NONE\x10\x01\x12\x1b\n\x17LAYER_TREE_FRAME_ACTIVE\x10\x02\x12\x1d\n\x19LAYER_TREE_FRAME_CREATING\x10\x03\x12-\n)LAYER_TREE_FRAME_WAITING_FOR_FIRST_COMMIT\x10\x04\x12\x31\n-LAYER_TREE_FRAME_WAITING_FOR_FIRST_ACTIVATION\x10\x05\"\xc7\x01\n\x1a\x46orcedRedrawOnTimeoutState\x12\x1d\n\x19\x46ORCED_REDRAW_UNSPECIFIED\x10\x00\x12\x16\n\x12\x46ORCED_REDRAW_IDLE\x10\x01\x12$\n FORCED_REDRAW_WAITING_FOR_COMMIT\x10\x02\x12(\n$FORCED_REDRAW_WAITING_FOR_ACTIVATION\x10\x03\x12\"\n\x1e\x46ORCED_REDRAW_WAITING_FOR_DRAW\x10\x04\x1a\xa9\x11\n\nMinorState\x12\x14\n\x0c\x63ommit_count\x18\x01 \x01(\x05\x12\x1c\n\x14\x63urrent_frame_number\x18\x02 \x01(\x05\x12*\n\"last_frame_number_submit_performed\x18\x03 \x01(\x05\x12(\n last_frame_number_draw_performed\x18\x04 \x01(\x05\x12/\n\'last_frame_number_begin_main_frame_sent\x18\x05 \x01(\x05\x12\x10\n\x08\x64id_draw\x18\x06 \x01(\x08\x12\x33\n+did_send_begin_main_frame_for_current_frame\x18\x07 \x01(\x08\x12\x36\n.did_notify_begin_main_frame_not_expected_until\x18\x08 \x01(\x08\x12\x35\n-did_notify_begin_main_frame_not_expected_soon\x18\t \x01(\x08\x12+\n#wants_begin_main_frame_not_expected\x18\n \x01(\x08\x12\x1f\n\x17\x64id_commit_during_frame\x18\x0b \x01(\x08\x12,\n$did_invalidate_layer_tree_frame_sink\x18\x0c \x01(\x08\x12)\n!did_perform_impl_side_invalidaion\x18\r \x01(\x08\x12\x19\n\x11\x64id_prepare_tiles\x18\x0e \x01(\x08\x12+\n#consecutive_checkerboard_animations\x18\x0f \x01(\x05\x12\x1d\n\x15pending_submit_frames\x18\x10 \x01(\x05\x12\x38\n0submit_frames_with_current_layer_tree_frame_sink\x18\x11 \x01(\x05\x12\x14\n\x0cneeds_redraw\x18\x12 \x01(\x08\x12\x1b\n\x13needs_prepare_tiles\x18\x13 \x01(\x08\x12\x1e\n\x16needs_begin_main_frame\x18\x14 \x01(\x08\x12\"\n\x1aneeds_one_begin_impl_frame\x18\x15 \x01(\x08\x12\x0f\n\x07visible\x18\x16 \x01(\x08\x12!\n\x19\x62\x65gin_frame_source_paused\x18\x17 \x01(\x08\x12\x10\n\x08\x63\x61n_draw\x18\x18 \x01(\x08\x12\x19\n\x11resourceless_draw\x18\x19 \x01(\x08\x12\x18\n\x10has_pending_tree\x18\x1a \x01(\x08\x12,\n$pending_tree_is_ready_for_activation\x18\x1b \x01(\x08\x12$\n\x1c\x61\x63tive_tree_needs_first_draw\x18\x1c \x01(\x08\x12$\n\x1c\x61\x63tive_tree_is_ready_to_draw\x18\x1d \x01(\x08\x12=\n5did_create_and_initialize_first_layer_tree_frame_sink\x18\x1e \x01(\x08\x12\\\n\rtree_priority\x18\x1f \x01(\x0e\x32\x45.perfetto.protos.ChromeCompositorStateMachine.MinorState.TreePriority\x12i\n\x14scroll_handler_state\x18  \x01(\x0e\x32K.perfetto.protos.ChromeCompositorStateMachine.MinorState.ScrollHandlerState\x12\x35\n-critical_begin_main_frame_to_activate_is_fast\x18! \x01(\x08\x12(\n main_thread_missed_last_deadline\x18\" \x01(\x08\x12 \n\x18video_needs_begin_frames\x18$ \x01(\x08\x12\x1e\n\x16\x64\x65\x66\x65r_begin_main_frame\x18% \x01(\x08\x12\"\n\x1alast_commit_had_no_updates\x18& \x01(\x08\x12\x1e\n\x16\x64id_draw_in_last_frame\x18\' \x01(\x08\x12 \n\x18\x64id_submit_in_last_frame\x18( \x01(\x08\x12$\n\x1cneeds_impl_side_invalidation\x18) \x01(\x08\x12)\n!current_pending_tree_is_impl_side\x18* \x01(\x08\x12+\n#previous_pending_tree_was_impl_side\x18+ \x01(\x08\x12\x35\n-processing_animation_worklets_for_active_tree\x18, \x01(\x08\x12\x36\n.processing_animation_worklets_for_pending_tree\x18- \x01(\x08\x12\x32\n*processing_paint_worklets_for_pending_tree\x18. \x01(\x08\"\xb8\x01\n\x0cTreePriority\x12\x1d\n\x19TREE_PRIORITY_UNSPECIFIED\x10\x00\x12.\n*TREE_PRIORITY_SAME_PRIORITY_FOR_BOTH_TREES\x10\x01\x12+\n\'TREE_PRIORITY_SMOOTHNESS_TAKES_PRIORITY\x10\x02\x12,\n(TREE_PRIORITY_NEW_CONTENT_TAKES_PRIORITY\x10\x03\"\x82\x01\n\x12ScrollHandlerState\x12\x1e\n\x1aSCROLL_HANDLER_UNSPECIFIED\x10\x00\x12!\n\x1dSCROLL_AFFECTS_SCROLL_HANDLER\x10\x01\x12)\n%SCROLL_DOES_NOT_AFFECT_SCROLL_HANDLER\x10\x02J\x04\x08#\x10$\"\xaa\x04\n\x0e\x42\x65ginFrameArgs\x12@\n\x04type\x18\x01 \x01(\x0e\x32\x32.perfetto.protos.BeginFrameArgs.BeginFrameArgsType\x12\x11\n\tsource_id\x18\x02 \x01(\x04\x12\x17\n\x0fsequence_number\x18\x03 \x01(\x04\x12\x15\n\rframe_time_us\x18\x04 \x01(\x03\x12\x13\n\x0b\x64\x65\x61\x64line_us\x18\x05 \x01(\x03\x12\x19\n\x11interval_delta_us\x18\x06 \x01(\x03\x12\x18\n\x10on_critical_path\x18\x07 \x01(\x08\x12\x14\n\x0c\x61nimate_only\x18\x08 \x01(\x08\x12\x1d\n\x13source_location_iid\x18\t \x01(\x04H\x00\x12:\n\x0fsource_location\x18\n \x01(\x0b\x32\x1f.perfetto.protos.SourceLocationH\x00\x12#\n\x1b\x66rames_throttled_since_last\x18\x0c \x01(\x03\"\xa2\x01\n\x12\x42\x65ginFrameArgsType\x12%\n!BEGIN_FRAME_ARGS_TYPE_UNSPECIFIED\x10\x00\x12!\n\x1d\x42\x45GIN_FRAME_ARGS_TYPE_INVALID\x10\x01\x12 \n\x1c\x42\x45GIN_FRAME_ARGS_TYPE_NORMAL\x10\x02\x12 \n\x1c\x42\x45GIN_FRAME_ARGS_TYPE_MISSED\x10\x03\x42\x0e\n\x0c\x63reated_from\"\xc0\x04\n\x12\x42\x65ginImplFrameArgs\x12\x15\n\rupdated_at_us\x18\x01 \x01(\x03\x12\x16\n\x0e\x66inished_at_us\x18\x02 \x01(\x03\x12\x38\n\x05state\x18\x03 \x01(\x0e\x32).perfetto.protos.BeginImplFrameArgs.State\x12\x37\n\x0c\x63urrent_args\x18\x04 \x01(\x0b\x32\x1f.perfetto.protos.BeginFrameArgsH\x00\x12\x34\n\tlast_args\x18\x05 \x01(\x0b\x32\x1f.perfetto.protos.BeginFrameArgsH\x00\x12L\n\x10timestamps_in_us\x18\x06 \x01(\x0b\x32\x32.perfetto.protos.BeginImplFrameArgs.TimestampsInUs\x1a\xc1\x01\n\x0eTimestampsInUs\x12\x16\n\x0einterval_delta\x18\x01 \x01(\x03\x12\x1d\n\x15now_to_deadline_delta\x18\x02 \x01(\x03\x12\x1f\n\x17\x66rame_time_to_now_delta\x18\x03 \x01(\x03\x12$\n\x1c\x66rame_time_to_deadline_delta\x18\x04 \x01(\x03\x12\x0b\n\x03now\x18\x05 \x01(\x03\x12\x12\n\nframe_time\x18\x06 \x01(\x03\x12\x10\n\x08\x64\x65\x61\x64line\x18\x07 \x01(\x03\"8\n\x05State\x12\x18\n\x14\x42\x45GIN_FRAME_FINISHED\x10\x00\x12\x15\n\x11\x42\x45GIN_FRAME_USING\x10\x01\x42\x06\n\x04\x61rgs\"{\n\x17\x42\x65ginFrameObserverState\x12 \n\x18\x64ropped_begin_frame_args\x18\x01 \x01(\x03\x12>\n\x15last_begin_frame_args\x18\x02 \x01(\x0b\x32\x1f.perfetto.protos.BeginFrameArgs\"\x91\x01\n\x15\x42\x65ginFrameSourceState\x12\x11\n\tsource_id\x18\x01 \x01(\r\x12\x0e\n\x06paused\x18\x02 \x01(\x08\x12\x15\n\rnum_observers\x18\x03 \x01(\r\x12>\n\x15last_begin_frame_args\x18\x04 \x01(\x0b\x32\x1f.perfetto.protos.BeginFrameArgs\"\xfc\x02\n\x17\x43ompositorTimingHistory\x12\x39\n1begin_main_frame_queue_critical_estimate_delta_us\x18\x01 \x01(\x03\x12=\n5begin_main_frame_queue_not_critical_estimate_delta_us\x18\x02 \x01(\x03\x12\x43\n;begin_main_frame_start_to_ready_to_commit_estimate_delta_us\x18\x03 \x01(\x03\x12\x35\n-commit_to_ready_to_activate_estimate_delta_us\x18\x04 \x01(\x03\x12\'\n\x1fprepare_tiles_estimate_delta_us\x18\x05 \x01(\x03\x12\"\n\x1a\x61\x63tivate_estimate_delta_us\x18\x06 \x01(\x03\x12\x1e\n\x16\x64raw_estimate_delta_us\x18\x07 \x01(\x03\">\n\x1e\x43hromeContentSettingsEventInfo\x12\x1c\n\x14number_of_exceptions\x18\x01 \x01(\r\"\xe0\x08\n\x13\x43hromeFrameReporter\x12\x39\n\x05state\x18\x01 \x01(\x0e\x32*.perfetto.protos.ChromeFrameReporter.State\x12\x44\n\x06reason\x18\x02 \x01(\x0e\x32\x34.perfetto.protos.ChromeFrameReporter.FrameDropReason\x12\x14\n\x0c\x66rame_source\x18\x03 \x01(\x04\x12\x16\n\x0e\x66rame_sequence\x18\x04 \x01(\x04\x12\x1a\n\x12\x61\x66\x66\x65\x63ts_smoothness\x18\x05 \x01(\x08\x12\x46\n\x0cscroll_state\x18\x06 \x01(\x0e\x32\x30.perfetto.protos.ChromeFrameReporter.ScrollState\x12\x1a\n\x12has_main_animation\x18\x07 \x01(\x08\x12 \n\x18has_compositor_animation\x18\x08 \x01(\x08\x12\x1d\n\x15has_smooth_input_main\x18\t \x01(\x08\x12\x1b\n\x13has_missing_content\x18\n \x01(\x08\x12\x1a\n\x12layer_tree_host_id\x18\x0b \x01(\x04\x12\x18\n\x10has_high_latency\x18\x0c \x01(\x08\x12\x42\n\nframe_type\x18\r \x01(\x0e\x32..perfetto.protos.ChromeFrameReporter.FrameType\x12\'\n\x1fhigh_latency_contribution_stage\x18\x0e \x03(\t\x12#\n\x1b\x63heckerboarded_needs_raster\x18\x0f \x01(\x08\x12#\n\x1b\x63heckerboarded_needs_record\x18\x10 \x01(\x08\x12\x1e\n\x16surface_frame_trace_id\x18\x11 \x01(\x03\x12\x18\n\x10\x64isplay_trace_id\x18\x12 \x01(\x03\"m\n\x05State\x12\x1b\n\x17STATE_NO_UPDATE_DESIRED\x10\x00\x12\x17\n\x13STATE_PRESENTED_ALL\x10\x01\x12\x1b\n\x17STATE_PRESENTED_PARTIAL\x10\x02\x12\x11\n\rSTATE_DROPPED\x10\x03\"~\n\x0f\x46rameDropReason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\x1d\n\x19REASON_DISPLAY_COMPOSITOR\x10\x01\x12\x16\n\x12REASON_MAIN_THREAD\x10\x02\x12\x1c\n\x18REASON_CLIENT_COMPOSITOR\x10\x03\"{\n\x0bScrollState\x12\x0f\n\x0bSCROLL_NONE\x10\x00\x12\x16\n\x12SCROLL_MAIN_THREAD\x10\x01\x12\x1c\n\x18SCROLL_COMPOSITOR_THREAD\x10\x02\x12\x11\n\rSCROLL_RASTER\x10\x03\x12\x12\n\x0eSCROLL_UNKNOWN\x10\x04\"%\n\tFrameType\x12\n\n\x06\x46ORKED\x10\x00\x12\x0c\n\x08\x42\x41\x43KFILL\x10\x01:\x02\x18\x01\"\"\n\x12\x43hromeKeyedService\x12\x0c\n\x04name\x18\x01 \x01(\t\"\xf6\r\n\x11\x43hromeLatencyInfo\x12\x10\n\x08trace_id\x18\x01 \x01(\x03\x12\x35\n\x04step\x18\x02 \x01(\x0e\x32\'.perfetto.protos.ChromeLatencyInfo.Step\x12\x1a\n\x12\x66rame_tree_node_id\x18\x03 \x01(\x05\x12H\n\x0e\x63omponent_info\x18\x04 \x03(\x0b\x32\x30.perfetto.protos.ChromeLatencyInfo.ComponentInfo\x12\x14\n\x0cis_coalesced\x18\x05 \x01(\x08\x12\x19\n\x11gesture_scroll_id\x18\x06 \x01(\x03\x12\x10\n\x08touch_id\x18\x07 \x01(\x03\x12@\n\ninput_type\x18\x08 \x01(\x0e\x32,.perfetto.protos.ChromeLatencyInfo.InputType\x1aq\n\rComponentInfo\x12O\n\x0e\x63omponent_type\x18\x01 \x01(\x0e\x32\x37.perfetto.protos.ChromeLatencyInfo.LatencyComponentType\x12\x0f\n\x07time_us\x18\x02 \x01(\x04\"\x92\x03\n\x04Step\x12\x14\n\x10STEP_UNSPECIFIED\x10\x00\x12\x1c\n\x18STEP_SEND_INPUT_EVENT_UI\x10\x03\x12 \n\x1cSTEP_HANDLE_INPUT_EVENT_IMPL\x10\x05\x12(\n$STEP_DID_HANDLE_INPUT_AND_OVERSCROLL\x10\x08\x12 \n\x1cSTEP_HANDLE_INPUT_EVENT_MAIN\x10\x04\x12\"\n\x1eSTEP_MAIN_THREAD_SCROLL_UPDATE\x10\x02\x12\'\n#STEP_HANDLE_INPUT_EVENT_MAIN_COMMIT\x10\x01\x12)\n%STEP_HANDLED_INPUT_EVENT_MAIN_OR_IMPL\x10\t\x12!\n\x1dSTEP_HANDLED_INPUT_EVENT_IMPL\x10\n\x12\x15\n\x11STEP_SWAP_BUFFERS\x10\x06\x12\x16\n\x12STEP_DRAW_AND_SWAP\x10\x07\x12\x1e\n\x1aSTEP_FINISHED_SWAP_BUFFERS\x10\x0b\"\xf5\x05\n\x14LatencyComponentType\x12\x19\n\x15\x43OMPONENT_UNSPECIFIED\x10\x00\x12+\n\'COMPONENT_INPUT_EVENT_LATENCY_BEGIN_RWH\x10\x01\x12\x38\n4COMPONENT_INPUT_EVENT_LATENCY_SCROLL_UPDATE_ORIGINAL\x10\x02\x12>\n:COMPONENT_INPUT_EVENT_LATENCY_FIRST_SCROLL_UPDATE_ORIGINAL\x10\x03\x12*\n&COMPONENT_INPUT_EVENT_LATENCY_ORIGINAL\x10\x04\x12$\n COMPONENT_INPUT_EVENT_LATENCY_UI\x10\x05\x12/\n+COMPONENT_INPUT_EVENT_LATENCY_RENDERER_MAIN\x10\x06\x12:\n6COMPONENT_INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_MAIN\x10\x07\x12:\n6COMPONENT_INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_IMPL\x10\x08\x12:\n6COMPONENT_INPUT_EVENT_LATENCY_SCROLL_UPDATE_LAST_EVENT\x10\t\x12)\n%COMPONENT_INPUT_EVENT_LATENCY_ACK_RWH\x10\n\x12/\n+COMPONENT_INPUT_EVENT_LATENCY_RENDERER_SWAP\x10\x0b\x12/\n+COMPONENT_DISPLAY_COMPOSITOR_RECEIVED_FRAME\x10\x0c\x12)\n%COMPONENT_INPUT_EVENT_GPU_SWAP_BUFFER\x10\r\x12,\n(COMPONENT_INPUT_EVENT_LATENCY_FRAME_SWAP\x10\x0e\"\xac\x01\n\tInputType\x12\x18\n\x14UNSPECIFIED_OR_OTHER\x10\x00\x12\x0f\n\x0bTOUCH_MOVED\x10\x01\x12\x18\n\x14GESTURE_SCROLL_BEGIN\x10\x02\x12\x19\n\x15GESTURE_SCROLL_UPDATE\x10\x03\x12\x16\n\x12GESTURE_SCROLL_END\x10\x04\x12\x0f\n\x0bGESTURE_TAP\x10\x05\x12\x16\n\x12GESTURE_TAP_CANCEL\x10\x06\"\xce\x07\n\x0f\x43hromeLegacyIpc\x12\x44\n\rmessage_class\x18\x01 \x01(\x0e\x32-.perfetto.protos.ChromeLegacyIpc.MessageClass\x12\x14\n\x0cmessage_line\x18\x02 \x01(\r\"\xde\x06\n\x0cMessageClass\x12\x15\n\x11\x43LASS_UNSPECIFIED\x10\x00\x12\x14\n\x10\x43LASS_AUTOMATION\x10\x01\x12\x0f\n\x0b\x43LASS_FRAME\x10\x02\x12\x0e\n\nCLASS_PAGE\x10\x03\x12\x0e\n\nCLASS_VIEW\x10\x04\x12\x10\n\x0c\x43LASS_WIDGET\x10\x05\x12\x0f\n\x0b\x43LASS_INPUT\x10\x06\x12\x0e\n\nCLASS_TEST\x10\x07\x12\x10\n\x0c\x43LASS_WORKER\x10\x08\x12\x0e\n\nCLASS_NACL\x10\t\x12\x15\n\x11\x43LASS_GPU_CHANNEL\x10\n\x12\x0f\n\x0b\x43LASS_MEDIA\x10\x0b\x12\x0f\n\x0b\x43LASS_PPAPI\x10\x0c\x12\x10\n\x0c\x43LASS_CHROME\x10\r\x12\x0e\n\nCLASS_DRAG\x10\x0e\x12\x0f\n\x0b\x43LASS_PRINT\x10\x0f\x12\x13\n\x0f\x43LASS_EXTENSION\x10\x10\x12\x1b\n\x17\x43LASS_TEXT_INPUT_CLIENT\x10\x11\x12\x14\n\x10\x43LASS_BLINK_TEST\x10\x12\x12\x17\n\x13\x43LASS_ACCESSIBILITY\x10\x13\x12\x13\n\x0f\x43LASS_PRERENDER\x10\x14\x12\x14\n\x10\x43LASS_CHROMOTING\x10\x15\x12\x18\n\x14\x43LASS_BROWSER_PLUGIN\x10\x16\x12\x1a\n\x16\x43LASS_ANDROID_WEB_VIEW\x10\x17\x12\x13\n\x0f\x43LASS_NACL_HOST\x10\x18\x12\x19\n\x15\x43LASS_ENCRYPTED_MEDIA\x10\x19\x12\x0e\n\nCLASS_CAST\x10\x1a\x12\x19\n\x15\x43LASS_GIN_JAVA_BRIDGE\x10\x1b\x12!\n\x1d\x43LASS_CHROME_UTILITY_PRINTING\x10\x1c\x12\x13\n\x0f\x43LASS_OZONE_GPU\x10\x1d\x12\x12\n\x0e\x43LASS_WEB_TEST\x10\x1e\x12\x17\n\x13\x43LASS_NETWORK_HINTS\x10\x1f\x12\x1f\n\x1b\x43LASS_EXTENSIONS_GUEST_VIEW\x10 \x12\x14\n\x10\x43LASS_GUEST_VIEW\x10!\x12\x1f\n\x1b\x43LASS_MEDIA_PLAYER_DELEGATE\x10\"\x12\x1a\n\x16\x43LASS_EXTENSION_WORKER\x10#\x12\x1c\n\x18\x43LASS_SUBRESOURCE_FILTER\x10$\x12\x1b\n\x17\x43LASS_UNFREEZABLE_FRAME\x10%\"T\n\x11\x43hromeMessagePump\x12\x1e\n\x16sent_messages_in_queue\x18\x01 \x01(\x08\x12\x1f\n\x17io_handler_location_iid\x18\x02 \x01(\x04\"\xcc\x01\n\x13\x43hromeMojoEventInfo\x12$\n\x1cwatcher_notify_interface_tag\x18\x01 \x01(\t\x12\x10\n\x08ipc_hash\x18\x02 \x01(\r\x12\x1a\n\x12mojo_interface_tag\x18\x03 \x01(\t\x12!\n\x19mojo_interface_method_iid\x18\x04 \x01(\x04\x12\x10\n\x08is_reply\x18\x05 \x01(\x08\x12\x14\n\x0cpayload_size\x18\x06 \x01(\x04\x12\x16\n\x0e\x64\x61ta_num_bytes\x18\x07 \x01(\x04\"~\n\x1c\x43hromeRendererSchedulerState\x12\x32\n\trail_mode\x18\x01 \x01(\x0e\x32\x1f.perfetto.protos.ChromeRAILMode\x12\x17\n\x0fis_backgrounded\x18\x02 \x01(\x08\x12\x11\n\tis_hidden\x18\x03 \x01(\x08\"6\n\x0f\x43hromeUserEvent\x12\x0e\n\x06\x61\x63tion\x18\x01 \x01(\t\x12\x13\n\x0b\x61\x63tion_hash\x18\x02 \x01(\x04\"P\n\x1b\x43hromeWindowHandleEventInfo\x12\x0b\n\x03\x64pi\x18\x01 \x01(\r\x12\x12\n\nmessage_id\x18\x02 \x01(\r\x12\x10\n\x08hwnd_ptr\x18\x03 \x01(\x06\"\x1f\n\nScreenshot\x12\x11\n\tjpg_image\x18\x01 \x01(\x0c\"(\n\rTaskExecution\x12\x17\n\x0fposted_from_iid\x18\x01 \x01(\x04\"\xdc\x1a\n\nTrackEvent\x12\x15\n\rcategory_iids\x18\x03 \x03(\x04\x12\x12\n\ncategories\x18\x16 \x03(\t\x12\x12\n\x08name_iid\x18\n \x01(\x04H\x00\x12\x0e\n\x04name\x18\x17 \x01(\tH\x00\x12.\n\x04type\x18\t \x01(\x0e\x32 .perfetto.protos.TrackEvent.Type\x12\x12\n\ntrack_uuid\x18\x0b \x01(\x04\x12\x17\n\rcounter_value\x18\x1e \x01(\x03H\x01\x12\x1e\n\x14\x64ouble_counter_value\x18, \x01(\x01H\x01\x12!\n\x19\x65xtra_counter_track_uuids\x18\x1f \x03(\x04\x12\x1c\n\x14\x65xtra_counter_values\x18\x0c \x03(\x03\x12(\n extra_double_counter_track_uuids\x18- \x03(\x04\x12#\n\x1b\x65xtra_double_counter_values\x18. \x03(\x01\x12\x18\n\x0c\x66low_ids_old\x18$ \x03(\x04\x42\x02\x18\x01\x12\x10\n\x08\x66low_ids\x18/ \x03(\x06\x12$\n\x18terminating_flow_ids_old\x18* \x03(\x04\x42\x02\x18\x01\x12\x1c\n\x14terminating_flow_ids\x18\x30 \x03(\x06\x12\x18\n\x0e\x63orrelation_id\x18\x34 \x01(\x04H\x02\x12\x1c\n\x12\x63orrelation_id_str\x18\x35 \x01(\tH\x02\x12 \n\x16\x63orrelation_id_str_iid\x18\x36 \x01(\x04H\x02\x12:\n\tcallstack\x18\x37 \x01(\x0b\x32%.perfetto.protos.TrackEvent.CallstackH\x03\x12\x17\n\rcallstack_iid\x18\x38 \x01(\x04H\x03\x12;\n\x11\x64\x65\x62ug_annotations\x18\x04 \x03(\x0b\x32 .perfetto.protos.DebugAnnotation\x12\x36\n\x0etask_execution\x18\x05 \x01(\x0b\x32\x1e.perfetto.protos.TaskExecution\x12\x30\n\x0blog_message\x18\x15 \x01(\x0b\x32\x1b.perfetto.protos.LogMessage\x12K\n\x12\x63\x63_scheduler_state\x18\x18 \x01(\x0b\x32/.perfetto.protos.ChromeCompositorSchedulerState\x12;\n\x11\x63hrome_user_event\x18\x19 \x01(\x0b\x32 .perfetto.protos.ChromeUserEvent\x12\x41\n\x14\x63hrome_keyed_service\x18\x1a \x01(\x0b\x32#.perfetto.protos.ChromeKeyedService\x12;\n\x11\x63hrome_legacy_ipc\x18\x1b \x01(\x0b\x32 .perfetto.protos.ChromeLegacyIpc\x12G\n\x17\x63hrome_histogram_sample\x18\x1c \x01(\x0b\x32&.perfetto.protos.ChromeHistogramSample\x12?\n\x13\x63hrome_latency_info\x18\x1d \x01(\x0b\x32\".perfetto.protos.ChromeLatencyInfo\x12G\n\x15\x63hrome_frame_reporter\x18  \x01(\x0b\x32$.perfetto.protos.ChromeFrameReporterB\x02\x18\x01\x12R\n\x1d\x63hrome_application_state_info\x18\' \x01(\x0b\x32+.perfetto.protos.ChromeApplicationStateInfo\x12V\n\x1f\x63hrome_renderer_scheduler_state\x18( \x01(\x0b\x32-.perfetto.protos.ChromeRendererSchedulerState\x12U\n\x1f\x63hrome_window_handle_event_info\x18) \x01(\x0b\x32,.perfetto.protos.ChromeWindowHandleEventInfo\x12[\n\"chrome_content_settings_event_info\x18+ \x01(\x0b\x32/.perfetto.protos.ChromeContentSettingsEventInfo\x12G\n\x17\x63hrome_active_processes\x18\x31 \x01(\x0b\x32&.perfetto.protos.ChromeActiveProcesses\x12/\n\nscreenshot\x18\x32 \x01(\x0b\x32\x1b.perfetto.protos.Screenshot\x12:\n\x0fsource_location\x18! \x01(\x0b\x32\x1f.perfetto.protos.SourceLocationH\x04\x12\x1d\n\x13source_location_iid\x18\" \x01(\x04H\x04\x12?\n\x13\x63hrome_message_pump\x18# \x01(\x0b\x32\".perfetto.protos.ChromeMessagePump\x12\x44\n\x16\x63hrome_mojo_event_info\x18& \x01(\x0b\x32$.perfetto.protos.ChromeMojoEventInfo\x12\x1c\n\x12timestamp_delta_us\x18\x01 \x01(\x03H\x05\x12\x1f\n\x15timestamp_absolute_us\x18\x10 \x01(\x03H\x05\x12\x1e\n\x14thread_time_delta_us\x18\x02 \x01(\x03H\x06\x12!\n\x17thread_time_absolute_us\x18\x11 \x01(\x03H\x06\x12(\n\x1ethread_instruction_count_delta\x18\x08 \x01(\x03H\x07\x12+\n!thread_instruction_count_absolute\x18\x14 \x01(\x03H\x07\x12=\n\x0clegacy_event\x18\x06 \x01(\x0b\x32\'.perfetto.protos.TrackEvent.LegacyEvent\x1a\x92\x01\n\tCallstack\x12;\n\x06\x66rames\x18\x01 \x03(\x0b\x32+.perfetto.protos.TrackEvent.Callstack.Frame\x1aH\n\x05\x46rame\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12\x13\n\x0bsource_file\x18\x02 \x01(\t\x12\x13\n\x0bline_number\x18\x03 \x01(\r\x1a\xaa\x05\n\x0bLegacyEvent\x12\x10\n\x08name_iid\x18\x01 \x01(\x04\x12\r\n\x05phase\x18\x02 \x01(\x05\x12\x13\n\x0b\x64uration_us\x18\x03 \x01(\x03\x12\x1a\n\x12thread_duration_us\x18\x04 \x01(\x03\x12 \n\x18thread_instruction_delta\x18\x0f \x01(\x03\x12\x15\n\x0bunscoped_id\x18\x06 \x01(\x04H\x00\x12\x12\n\x08local_id\x18\n \x01(\x04H\x00\x12\x13\n\tglobal_id\x18\x0b \x01(\x04H\x00\x12\x10\n\x08id_scope\x18\x07 \x01(\t\x12\x15\n\ruse_async_tts\x18\t \x01(\x08\x12\x0f\n\x07\x62ind_id\x18\x08 \x01(\x04\x12\x19\n\x11\x62ind_to_enclosing\x18\x0c \x01(\x08\x12M\n\x0e\x66low_direction\x18\r \x01(\x0e\x32\x35.perfetto.protos.TrackEvent.LegacyEvent.FlowDirection\x12V\n\x13instant_event_scope\x18\x0e \x01(\x0e\x32\x39.perfetto.protos.TrackEvent.LegacyEvent.InstantEventScope\x12\x14\n\x0cpid_override\x18\x12 \x01(\x05\x12\x14\n\x0ctid_override\x18\x13 \x01(\x05\"P\n\rFlowDirection\x12\x14\n\x10\x46LOW_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x46LOW_IN\x10\x01\x12\x0c\n\x08\x46LOW_OUT\x10\x02\x12\x0e\n\nFLOW_INOUT\x10\x03\"a\n\x11InstantEventScope\x12\x15\n\x11SCOPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cSCOPE_GLOBAL\x10\x01\x12\x11\n\rSCOPE_PROCESS\x10\x02\x12\x10\n\x0cSCOPE_THREAD\x10\x03\x42\x04\n\x02idJ\x04\x08\x05\x10\x06\"j\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10TYPE_SLICE_BEGIN\x10\x01\x12\x12\n\x0eTYPE_SLICE_END\x10\x02\x12\x10\n\x0cTYPE_INSTANT\x10\x03\x12\x10\n\x0cTYPE_COUNTER\x10\x04*\x06\x08\xe8\x07\x10\xd0\x0f*\x06\x08\xd0\x0f\x10\xd1\x0f*\x06\x08\xd1\x0f\x10\xb8\x17*\x06\x08\xb8\x17\x10\xacM*\x06\x08\xacM\x10\x91NB\x0c\n\nname_fieldB\x15\n\x13\x63ounter_value_fieldB\x16\n\x14\x63orrelation_id_fieldB\x11\n\x0f\x63\x61llstack_fieldB\x17\n\x15source_location_fieldB\x0b\n\ttimestampB\r\n\x0bthread_timeB\x1a\n\x18thread_instruction_countJ\x04\x08\x33\x10\x34\"u\n\x12TrackEventDefaults\x12\x12\n\ntrack_uuid\x18\x0b \x01(\x04\x12!\n\x19\x65xtra_counter_track_uuids\x18\x1f \x03(\x04\x12(\n extra_double_counter_track_uuids\x18- \x03(\x04\"*\n\rEventCategory\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"&\n\tEventName\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"\xc3\x10\n\x0cInternedData\x12\x38\n\x10\x65vent_categories\x18\x01 \x03(\x0b\x32\x1e.perfetto.protos.EventCategory\x12/\n\x0b\x65vent_names\x18\x02 \x03(\x0b\x32\x1a.perfetto.protos.EventName\x12\x44\n\x16\x64\x65\x62ug_annotation_names\x18\x03 \x03(\x0b\x32$.perfetto.protos.DebugAnnotationName\x12X\n!debug_annotation_value_type_names\x18\x1b \x03(\x0b\x32-.perfetto.protos.DebugAnnotationValueTypeName\x12\x39\n\x10source_locations\x18\x04 \x03(\x0b\x32\x1f.perfetto.protos.SourceLocation\x12R\n\x1dunsymbolized_source_locations\x18\x1c \x03(\x0b\x32+.perfetto.protos.UnsymbolizedSourceLocation\x12\x39\n\x10log_message_body\x18\x14 \x03(\x0b\x32\x1f.perfetto.protos.LogMessageBody\x12\x37\n\x0fhistogram_names\x18\x19 \x03(\x0b\x32\x1e.perfetto.protos.HistogramName\x12\x32\n\tbuild_ids\x18\x10 \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12\x36\n\rmapping_paths\x18\x11 \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12\x35\n\x0csource_paths\x18\x12 \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12\x37\n\x0e\x66unction_names\x18\x05 \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12*\n\x08mappings\x18\x13 \x03(\x0b\x32\x18.perfetto.protos.Mapping\x12&\n\x06\x66rames\x18\x06 \x03(\x0b\x32\x16.perfetto.protos.Frame\x12.\n\ncallstacks\x18\x07 \x03(\x0b\x32\x1a.perfetto.protos.Callstack\x12;\n\x12vulkan_memory_keys\x18\x16 \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12\x43\n\x11graphics_contexts\x18\x17 \x03(\x0b\x32(.perfetto.protos.InternedGraphicsContext\x12P\n\x12gpu_specifications\x18\x18 \x03(\x0b\x32\x34.perfetto.protos.InternedGpuRenderStageSpecification\x12\x37\n\x0ekernel_symbols\x18\x1a \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12G\n\x1e\x64\x65\x62ug_annotation_string_values\x18\x1d \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12=\n\x0epacket_context\x18\x1e \x03(\x0b\x32%.perfetto.protos.NetworkPacketContext\x12>\n\x13v8_js_function_name\x18\x1f \x03(\x0b\x32!.perfetto.protos.InternedV8String\x12=\n\x0ev8_js_function\x18  \x03(\x0b\x32%.perfetto.protos.InternedV8JsFunction\x12\x39\n\x0cv8_js_script\x18! \x03(\x0b\x32#.perfetto.protos.InternedV8JsScript\x12=\n\x0ev8_wasm_script\x18\" \x03(\x0b\x32%.perfetto.protos.InternedV8WasmScript\x12\x36\n\nv8_isolate\x18# \x03(\x0b\x32\".perfetto.protos.InternedV8Isolate\x12=\n\x14protolog_string_args\x18$ \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12<\n\x13protolog_stacktrace\x18% \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12\x41\n\x18viewcapture_package_name\x18& \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12@\n\x17viewcapture_window_name\x18\' \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12<\n\x13viewcapture_view_id\x18( \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12?\n\x16viewcapture_class_name\x18) \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12;\n\x11\x61pp_wakelock_info\x18* \x03(\x0b\x32 .perfetto.protos.AppWakelockInfo\x12;\n\x12\x63orrelation_id_str\x18+ \x03(\x0b\x32\x1f.perfetto.protos.InternedStringJ\x04\x08\x15\x10\x16\"\xf0\x07\n\x15MemoryTrackerSnapshot\x12\x16\n\x0eglobal_dump_id\x18\x01 \x01(\x04\x12M\n\x0flevel_of_detail\x18\x02 \x01(\x0e\x32\x34.perfetto.protos.MemoryTrackerSnapshot.LevelOfDetail\x12T\n\x14process_memory_dumps\x18\x03 \x03(\x0b\x32\x36.perfetto.protos.MemoryTrackerSnapshot.ProcessSnapshot\x1a\xce\x05\n\x0fProcessSnapshot\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12Z\n\x0f\x61llocator_dumps\x18\x02 \x03(\x0b\x32\x41.perfetto.protos.MemoryTrackerSnapshot.ProcessSnapshot.MemoryNode\x12W\n\x0cmemory_edges\x18\x03 \x03(\x0b\x32\x41.perfetto.protos.MemoryTrackerSnapshot.ProcessSnapshot.MemoryEdge\x1a\x9b\x03\n\nMemoryNode\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x15\n\rabsolute_name\x18\x02 \x01(\t\x12\x0c\n\x04weak\x18\x03 \x01(\x08\x12\x12\n\nsize_bytes\x18\x04 \x01(\x04\x12\x62\n\x07\x65ntries\x18\x05 \x03(\x0b\x32Q.perfetto.protos.MemoryTrackerSnapshot.ProcessSnapshot.MemoryNode.MemoryNodeEntry\x1a\xe3\x01\n\x0fMemoryNodeEntry\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x66\n\x05units\x18\x02 \x01(\x0e\x32W.perfetto.protos.MemoryTrackerSnapshot.ProcessSnapshot.MemoryNode.MemoryNodeEntry.Units\x12\x14\n\x0cvalue_uint64\x18\x03 \x01(\x04\x12\x14\n\x0cvalue_string\x18\x04 \x01(\t\".\n\x05Units\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\t\n\x05\x42YTES\x10\x01\x12\t\n\x05\x43OUNT\x10\x02\x1a[\n\nMemoryEdge\x12\x11\n\tsource_id\x18\x01 \x01(\x04\x12\x11\n\ttarget_id\x18\x02 \x01(\x04\x12\x12\n\nimportance\x18\x03 \x01(\r\x12\x13\n\x0boverridable\x18\x04 \x01(\x08\"I\n\rLevelOfDetail\x12\x0f\n\x0b\x44\x45TAIL_FULL\x10\x00\x12\x10\n\x0c\x44\x45TAIL_LIGHT\x10\x01\x12\x15\n\x11\x44\x45TAIL_BACKGROUND\x10\x02\"\xa1\x04\n\x11PerfettoMetatrace\x12\x12\n\x08\x65vent_id\x18\x01 \x01(\rH\x00\x12\x14\n\ncounter_id\x18\x02 \x01(\rH\x00\x12\x14\n\nevent_name\x18\x08 \x01(\tH\x00\x12\x18\n\x0e\x65vent_name_iid\x18\x0b \x01(\x04H\x00\x12\x16\n\x0c\x63ounter_name\x18\t \x01(\tH\x00\x12\x19\n\x11\x65vent_duration_ns\x18\x03 \x01(\x04\x12\x15\n\rcounter_value\x18\x04 \x01(\x05\x12\x11\n\tthread_id\x18\x05 \x01(\r\x12\x14\n\x0chas_overruns\x18\x06 \x01(\x08\x12\x34\n\x04\x61rgs\x18\x07 \x03(\x0b\x32&.perfetto.protos.PerfettoMetatrace.Arg\x12K\n\x10interned_strings\x18\n \x03(\x0b\x32\x31.perfetto.protos.PerfettoMetatrace.InternedString\x1a\x7f\n\x03\x41rg\x12\r\n\x03key\x18\x01 \x01(\tH\x00\x12\x11\n\x07key_iid\x18\x03 \x01(\x04H\x00\x12\x0f\n\x05value\x18\x02 \x01(\tH\x01\x12\x13\n\tvalue_iid\x18\x04 \x01(\x04H\x01\x42\x15\n\x13key_or_interned_keyB\x19\n\x17value_or_interned_value\x1a,\n\x0eInternedString\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\tB\r\n\x0brecord_type\"\x8a\x05\n\x13TracingServiceEvent\x12\x19\n\x0ftracing_started\x18\x02 \x01(\x08H\x00\x12\"\n\x18\x61ll_data_sources_started\x18\x01 \x01(\x08H\x00\x12\x17\n\rflush_started\x18\t \x01(\x08H\x00\x12\"\n\x18\x61ll_data_sources_flushed\x18\x03 \x01(\x08H\x00\x12(\n\x1eread_tracing_buffers_completed\x18\x04 \x01(\x08H\x00\x12\x1a\n\x10tracing_disabled\x18\x05 \x01(\x08H\x00\x12\x1e\n\x14seized_for_bugreport\x18\x06 \x01(\x08H\x00\x12V\n\x1aslow_starting_data_sources\x18\x07 \x01(\x0b\x32\x30.perfetto.protos.TracingServiceEvent.DataSourcesH\x00\x12X\n\x1clast_flush_slow_data_sources\x18\x08 \x01(\x0b\x32\x30.perfetto.protos.TracingServiceEvent.DataSourcesH\x00\x12\x17\n\rclone_started\x18\n \x01(\x08H\x00\x12\x17\n\rbuffer_cloned\x18\x0b \x01(\rH\x00\x1a\x9e\x01\n\x0b\x44\x61taSources\x12P\n\x0b\x64\x61ta_source\x18\x01 \x03(\x0b\x32;.perfetto.protos.TracingServiceEvent.DataSources.DataSource\x1a=\n\nDataSource\x12\x15\n\rproducer_name\x18\x01 \x01(\t\x12\x18\n\x10\x64\x61ta_source_name\x18\x02 \x01(\tB\x0c\n\nevent_type\"`\n\x15\x41ndroidEnergyConsumer\x12\x1a\n\x12\x65nergy_consumer_id\x18\x01 \x01(\x05\x12\x0f\n\x07ordinal\x18\x02 \x01(\x05\x12\x0c\n\x04type\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\"c\n\x1f\x41ndroidEnergyConsumerDescriptor\x12@\n\x10\x65nergy_consumers\x18\x01 \x03(\x0b\x32&.perfetto.protos.AndroidEnergyConsumer\"\xc0\x02\n AndroidEnergyEstimationBreakdown\x12T\n\x1a\x65nergy_consumer_descriptor\x18\x01 \x01(\x0b\x32\x30.perfetto.protos.AndroidEnergyConsumerDescriptor\x12\x1a\n\x12\x65nergy_consumer_id\x18\x02 \x01(\x05\x12\x12\n\nenergy_uws\x18\x03 \x01(\x03\x12_\n\x11per_uid_breakdown\x18\x04 \x03(\x0b\x32\x44.perfetto.protos.AndroidEnergyEstimationBreakdown.EnergyUidBreakdown\x1a\x35\n\x12\x45nergyUidBreakdown\x12\x0b\n\x03uid\x18\x01 \x01(\x05\x12\x12\n\nenergy_uws\x18\x02 \x01(\x03\"\xbb\x03\n\x14\x45ntityStateResidency\x12R\n\x12power_entity_state\x18\x01 \x03(\x0b\x32\x36.perfetto.protos.EntityStateResidency.PowerEntityState\x12G\n\tresidency\x18\x02 \x03(\x0b\x32\x34.perfetto.protos.EntityStateResidency.StateResidency\x1a\x66\n\x10PowerEntityState\x12\x14\n\x0c\x65ntity_index\x18\x01 \x01(\x05\x12\x13\n\x0bstate_index\x18\x02 \x01(\x05\x12\x13\n\x0b\x65ntity_name\x18\x03 \x01(\t\x12\x12\n\nstate_name\x18\x04 \x01(\t\x1a\x9d\x01\n\x0eStateResidency\x12\x14\n\x0c\x65ntity_index\x18\x01 \x01(\x05\x12\x13\n\x0bstate_index\x18\x02 \x01(\x05\x12\x1e\n\x16total_time_in_state_ms\x18\x03 \x01(\x04\x12\x1f\n\x17total_state_entry_count\x18\x04 \x01(\x04\x12\x1f\n\x17last_entry_timestamp_ms\x18\x05 \x01(\x04\"\xb1\x01\n\x0f\x42\x61tteryCounters\x12\x1a\n\x12\x63harge_counter_uah\x18\x01 \x01(\x03\x12\x18\n\x10\x63\x61pacity_percent\x18\x02 \x01(\x02\x12\x12\n\ncurrent_ua\x18\x03 \x01(\x03\x12\x16\n\x0e\x63urrent_avg_ua\x18\x04 \x01(\x03\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x1a\n\x12\x65nergy_counter_uwh\x18\x06 \x01(\x03\x12\x12\n\nvoltage_uv\x18\x07 \x01(\x03\"\xc7\x02\n\nPowerRails\x12\x43\n\x0frail_descriptor\x18\x01 \x03(\x0b\x32*.perfetto.protos.PowerRails.RailDescriptor\x12;\n\x0b\x65nergy_data\x18\x02 \x03(\x0b\x32&.perfetto.protos.PowerRails.EnergyData\x12\x14\n\x0csession_uuid\x18\x03 \x01(\x04\x1a^\n\x0eRailDescriptor\x12\r\n\x05index\x18\x01 \x01(\r\x12\x11\n\trail_name\x18\x02 \x01(\t\x12\x13\n\x0bsubsys_name\x18\x03 \x01(\t\x12\x15\n\rsampling_rate\x18\x04 \x01(\r\x1a\x41\n\nEnergyData\x12\r\n\x05index\x18\x01 \x01(\r\x12\x14\n\x0ctimestamp_ms\x18\x02 \x01(\x04\x12\x0e\n\x06\x65nergy\x18\x03 \x01(\x04\"F\n\x10ObfuscatedMember\x12\x17\n\x0fobfuscated_name\x18\x01 \x01(\t\x12\x19\n\x11\x64\x65obfuscated_name\x18\x02 \x01(\t\"\xc3\x01\n\x0fObfuscatedClass\x12\x17\n\x0fobfuscated_name\x18\x01 \x01(\t\x12\x19\n\x11\x64\x65obfuscated_name\x18\x02 \x01(\t\x12=\n\x12obfuscated_members\x18\x03 \x03(\x0b\x32!.perfetto.protos.ObfuscatedMember\x12=\n\x12obfuscated_methods\x18\x04 \x03(\x0b\x32!.perfetto.protos.ObfuscatedMember\"\x80\x01\n\x14\x44\x65obfuscationMapping\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x14\n\x0cversion_code\x18\x02 \x01(\x03\x12<\n\x12obfuscated_classes\x18\x03 \x03(\x0b\x32 .perfetto.protos.ObfuscatedClass\"\xb6\x03\n\rHeapGraphRoot\x12\x16\n\nobject_ids\x18\x01 \x03(\x04\x42\x02\x10\x01\x12\x36\n\troot_type\x18\x02 \x01(\x0e\x32#.perfetto.protos.HeapGraphRoot.Type\"\xd4\x02\n\x04Type\x12\x10\n\x0cROOT_UNKNOWN\x10\x00\x12\x13\n\x0fROOT_JNI_GLOBAL\x10\x01\x12\x12\n\x0eROOT_JNI_LOCAL\x10\x02\x12\x13\n\x0fROOT_JAVA_FRAME\x10\x03\x12\x15\n\x11ROOT_NATIVE_STACK\x10\x04\x12\x15\n\x11ROOT_STICKY_CLASS\x10\x05\x12\x15\n\x11ROOT_THREAD_BLOCK\x10\x06\x12\x15\n\x11ROOT_MONITOR_USED\x10\x07\x12\x16\n\x12ROOT_THREAD_OBJECT\x10\x08\x12\x18\n\x14ROOT_INTERNED_STRING\x10\t\x12\x13\n\x0fROOT_FINALIZING\x10\n\x12\x11\n\rROOT_DEBUGGER\x10\x0b\x12\x1a\n\x16ROOT_REFERENCE_CLEANUP\x10\x0c\x12\x14\n\x10ROOT_VM_INTERNAL\x10\r\x12\x14\n\x10ROOT_JNI_MONITOR\x10\x0e\"\xe4\x03\n\rHeapGraphType\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x13\n\x0blocation_id\x18\x02 \x01(\x04\x12\x12\n\nclass_name\x18\x03 \x01(\t\x12\x13\n\x0bobject_size\x18\x04 \x01(\x04\x12\x15\n\rsuperclass_id\x18\x05 \x01(\x04\x12\x1e\n\x12reference_field_id\x18\x06 \x03(\x04\x42\x02\x10\x01\x12\x31\n\x04kind\x18\x07 \x01(\x0e\x32#.perfetto.protos.HeapGraphType.Kind\x12\x16\n\x0e\x63lassloader_id\x18\x08 \x01(\x04\"\x86\x02\n\x04Kind\x12\x10\n\x0cKIND_UNKNOWN\x10\x00\x12\x0f\n\x0bKIND_NORMAL\x10\x01\x12\x15\n\x11KIND_NOREFERENCES\x10\x02\x12\x0f\n\x0bKIND_STRING\x10\x03\x12\x0e\n\nKIND_ARRAY\x10\x04\x12\x0e\n\nKIND_CLASS\x10\x05\x12\x14\n\x10KIND_CLASSLOADER\x10\x06\x12\x11\n\rKIND_DEXCACHE\x10\x07\x12\x17\n\x13KIND_SOFT_REFERENCE\x10\x08\x12\x17\n\x13KIND_WEAK_REFERENCE\x10\t\x12\x1c\n\x18KIND_FINALIZER_REFERENCE\x10\n\x12\x1a\n\x16KIND_PHANTOM_REFERENCE\x10\x0b\"\xc8\x03\n\x0fHeapGraphObject\x12\x0c\n\x02id\x18\x01 \x01(\x04H\x00\x12\x12\n\x08id_delta\x18\x07 \x01(\x04H\x00\x12\x0f\n\x07type_id\x18\x02 \x01(\x04\x12\x11\n\tself_size\x18\x03 \x01(\x04\x12\x1f\n\x17reference_field_id_base\x18\x06 \x01(\x04\x12\x1e\n\x12reference_field_id\x18\x04 \x03(\x04\x42\x02\x10\x01\x12\x1f\n\x13reference_object_id\x18\x05 \x03(\x04\x42\x02\x10\x01\x12-\n%native_allocation_registry_size_field\x18\x08 \x01(\x03\x12\x42\n\x0fheap_type_delta\x18\t \x01(\x0e\x32).perfetto.protos.HeapGraphObject.HeapType\x12&\n\x1aruntime_internal_object_id\x18\n \x03(\x04\x42\x02\x10\x01\"d\n\x08HeapType\x12\x15\n\x11HEAP_TYPE_UNKNOWN\x10\x00\x12\x11\n\rHEAP_TYPE_APP\x10\x01\x12\x14\n\x10HEAP_TYPE_ZYGOTE\x10\x02\x12\x18\n\x14HEAP_TYPE_BOOT_IMAGE\x10\x03\x42\x0c\n\nidentifier\"\xc0\x02\n\tHeapGraph\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x31\n\x07objects\x18\x02 \x03(\x0b\x32 .perfetto.protos.HeapGraphObject\x12-\n\x05roots\x18\x07 \x03(\x0b\x32\x1e.perfetto.protos.HeapGraphRoot\x12-\n\x05types\x18\t \x03(\x0b\x32\x1e.perfetto.protos.HeapGraphType\x12\x34\n\x0b\x66ield_names\x18\x04 \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12\x37\n\x0elocation_names\x18\x08 \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12\x11\n\tcontinued\x18\x05 \x01(\x08\x12\r\n\x05index\x18\x06 \x01(\x04J\x04\x08\x03\x10\x04\"\xbc\x0b\n\rProfilePacket\x12\x30\n\x07strings\x18\x01 \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12*\n\x08mappings\x18\x04 \x03(\x0b\x32\x18.perfetto.protos.Mapping\x12&\n\x06\x66rames\x18\x02 \x03(\x0b\x32\x16.perfetto.protos.Frame\x12.\n\ncallstacks\x18\x03 \x03(\x0b\x32\x1a.perfetto.protos.Callstack\x12H\n\rprocess_dumps\x18\x05 \x03(\x0b\x32\x31.perfetto.protos.ProfilePacket.ProcessHeapSamples\x12\x11\n\tcontinued\x18\x06 \x01(\x08\x12\r\n\x05index\x18\x07 \x01(\x04\x1a\xba\x01\n\nHeapSample\x12\x14\n\x0c\x63\x61llstack_id\x18\x01 \x01(\x04\x12\x16\n\x0eself_allocated\x18\x02 \x01(\x04\x12\x12\n\nself_freed\x18\x03 \x01(\x04\x12\x10\n\x08self_max\x18\x08 \x01(\x04\x12\x16\n\x0eself_max_count\x18\t \x01(\x04\x12\x11\n\ttimestamp\x18\x04 \x01(\x04\x12\x13\n\x0b\x61lloc_count\x18\x05 \x01(\x04\x12\x12\n\nfree_count\x18\x06 \x01(\x04J\x04\x08\x07\x10\x08\x1a\x8f\x01\n\tHistogram\x12@\n\x07\x62uckets\x18\x01 \x03(\x0b\x32/.perfetto.protos.ProfilePacket.Histogram.Bucket\x1a@\n\x06\x42ucket\x12\x13\n\x0bupper_limit\x18\x01 \x01(\x04\x12\x12\n\nmax_bucket\x18\x02 \x01(\x08\x12\r\n\x05\x63ount\x18\x03 \x01(\x04\x1a\xde\x01\n\x0cProcessStats\x12\x18\n\x10unwinding_errors\x18\x01 \x01(\x04\x12\x14\n\x0cheap_samples\x18\x02 \x01(\x04\x12\x14\n\x0cmap_reparses\x18\x03 \x01(\x04\x12\x43\n\x11unwinding_time_us\x18\x04 \x01(\x0b\x32(.perfetto.protos.ProfilePacket.Histogram\x12\x1f\n\x17total_unwinding_time_us\x18\x05 \x01(\x04\x12\"\n\x1a\x63lient_spinlock_blocked_us\x18\x06 \x01(\x04\x1a\xd8\x04\n\x12ProcessHeapSamples\x12\x0b\n\x03pid\x18\x01 \x01(\x04\x12\x14\n\x0c\x66rom_startup\x18\x03 \x01(\x08\x12\x1b\n\x13rejected_concurrent\x18\x04 \x01(\x08\x12\x14\n\x0c\x64isconnected\x18\x06 \x01(\x08\x12\x16\n\x0e\x62uffer_overran\x18\x07 \x01(\x08\x12S\n\x0c\x63lient_error\x18\x0e \x01(\x0e\x32=.perfetto.protos.ProfilePacket.ProcessHeapSamples.ClientError\x12\x18\n\x10\x62uffer_corrupted\x18\x08 \x01(\x08\x12\x15\n\rhit_guardrail\x18\n \x01(\x08\x12\x11\n\theap_name\x18\x0b \x01(\t\x12\x1f\n\x17sampling_interval_bytes\x18\x0c \x01(\x04\x12$\n\x1corig_sampling_interval_bytes\x18\r \x01(\x04\x12\x11\n\ttimestamp\x18\t \x01(\x04\x12:\n\x05stats\x18\x05 \x01(\x0b\x32+.perfetto.protos.ProfilePacket.ProcessStats\x12:\n\x07samples\x18\x02 \x03(\x0b\x32).perfetto.protos.ProfilePacket.HeapSample\"i\n\x0b\x43lientError\x12\x15\n\x11\x43LIENT_ERROR_NONE\x10\x00\x12\x1c\n\x18\x43LIENT_ERROR_HIT_TIMEOUT\x10\x01\x12%\n!CLIENT_ERROR_INVALID_STACK_BOUNDS\x10\x02\"\x9d\x01\n\x13StreamingAllocation\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x03(\x04\x12\x0c\n\x04size\x18\x02 \x03(\x04\x12\x13\n\x0bsample_size\x18\x03 \x03(\x04\x12(\n clock_monotonic_coarse_timestamp\x18\x04 \x03(\x04\x12\x0f\n\x07heap_id\x18\x05 \x03(\r\x12\x17\n\x0fsequence_number\x18\x06 \x03(\x04\"J\n\rStreamingFree\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x03(\x04\x12\x0f\n\x07heap_id\x18\x02 \x03(\r\x12\x17\n\x0fsequence_number\x18\x03 \x03(\x04\"e\n\x16StreamingProfilePacket\x12\x15\n\rcallstack_iid\x18\x01 \x03(\x04\x12\x1a\n\x12timestamp_delta_us\x18\x02 \x03(\x03\x12\x18\n\x10process_priority\x18\x03 \x01(\x05\"\x90\x05\n\tProfiling\"|\n\x07\x43puMode\x12\x10\n\x0cMODE_UNKNOWN\x10\x00\x12\x0f\n\x0bMODE_KERNEL\x10\x01\x12\r\n\tMODE_USER\x10\x02\x12\x13\n\x0fMODE_HYPERVISOR\x10\x03\x12\x15\n\x11MODE_GUEST_KERNEL\x10\x04\x12\x13\n\x0fMODE_GUEST_USER\x10\x05\"\x84\x04\n\x10StackUnwindError\x12\x18\n\x14UNWIND_ERROR_UNKNOWN\x10\x00\x12\x15\n\x11UNWIND_ERROR_NONE\x10\x01\x12\x1f\n\x1bUNWIND_ERROR_MEMORY_INVALID\x10\x02\x12\x1c\n\x18UNWIND_ERROR_UNWIND_INFO\x10\x03\x12\x1c\n\x18UNWIND_ERROR_UNSUPPORTED\x10\x04\x12\x1c\n\x18UNWIND_ERROR_INVALID_MAP\x10\x05\x12$\n UNWIND_ERROR_MAX_FRAMES_EXCEEDED\x10\x06\x12\x1f\n\x1bUNWIND_ERROR_REPEATED_FRAME\x10\x07\x12\x1c\n\x18UNWIND_ERROR_INVALID_ELF\x10\x08\x12\x1c\n\x18UNWIND_ERROR_SYSTEM_CALL\x10\t\x12\x1f\n\x1bUNWIND_ERROR_THREAD_TIMEOUT\x10\n\x12&\n\"UNWIND_ERROR_THREAD_DOES_NOT_EXIST\x10\x0b\x12\x19\n\x15UNWIND_ERROR_BAD_ARCH\x10\x0c\x12\x1b\n\x17UNWIND_ERROR_MAPS_PARSE\x10\r\x12\"\n\x1eUNWIND_ERROR_INVALID_PARAMETER\x10\x0e\x12\x1c\n\x18UNWIND_ERROR_PTRACE_CALL\x10\x0f\"\xef\x06\n\nPerfSample\x12\x0b\n\x03\x63pu\x18\x01 \x01(\r\x12\x0b\n\x03pid\x18\x02 \x01(\r\x12\x0b\n\x03tid\x18\x03 \x01(\r\x12\x34\n\x08\x63pu_mode\x18\x05 \x01(\x0e\x32\".perfetto.protos.Profiling.CpuMode\x12\x16\n\x0etimebase_count\x18\x06 \x01(\x04\x12\x17\n\x0f\x66ollower_counts\x18\x07 \x03(\x04\x12\x15\n\rcallstack_iid\x18\x04 \x01(\x04\x12\x43\n\x0cunwind_error\x18\x10 \x01(\x0e\x32+.perfetto.protos.Profiling.StackUnwindErrorH\x00\x12\x1b\n\x13kernel_records_lost\x18\x11 \x01(\x04\x12M\n\x15sample_skipped_reason\x18\x12 \x01(\x0e\x32,.perfetto.protos.PerfSample.SampleSkipReasonH\x01\x12\x41\n\x0eproducer_event\x18\x13 \x01(\x0b\x32).perfetto.protos.PerfSample.ProducerEvent\x1a\xdc\x01\n\rProducerEvent\x12\\\n\x12source_stop_reason\x18\x01 \x01(\x0e\x32>.perfetto.protos.PerfSample.ProducerEvent.DataSourceStopReasonH\x00\"N\n\x14\x44\x61taSourceStopReason\x12\x19\n\x15PROFILER_STOP_UNKNOWN\x10\x00\x12\x1b\n\x17PROFILER_STOP_GUARDRAIL\x10\x01\x42\x1d\n\x1boptional_source_stop_reason\"\xad\x01\n\x10SampleSkipReason\x12\x19\n\x15PROFILER_SKIP_UNKNOWN\x10\x00\x12\x1c\n\x18PROFILER_SKIP_READ_STAGE\x10\x01\x12\x1e\n\x1aPROFILER_SKIP_UNWIND_STAGE\x10\x02\x12 \n\x1cPROFILER_SKIP_UNWIND_ENQUEUE\x10\x03\x12\x1e\n\x1aPROFILER_SKIP_NOT_IN_SCOPE\x10\x04\x42\x17\n\x15optional_unwind_errorB \n\x1eoptional_sample_skipped_reason\"\xba\x01\n\x12PerfSampleDefaults\x12\x36\n\x08timebase\x18\x01 \x01(\x0b\x32$.perfetto.protos.PerfEvents.Timebase\x12\x31\n\tfollowers\x18\x04 \x03(\x0b\x32\x1e.perfetto.protos.FollowerEvent\x12\x1b\n\x13process_shard_count\x18\x02 \x01(\r\x12\x1c\n\x14\x63hosen_process_shard\x18\x03 \x01(\r\"\x83\x03\n\nSmapsEntry\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0f\n\x07size_kb\x18\x02 \x01(\x04\x12\x18\n\x10private_dirty_kb\x18\x03 \x01(\x04\x12\x0f\n\x07swap_kb\x18\x04 \x01(\x04\x12\x11\n\tfile_name\x18\x05 \x01(\t\x12\x15\n\rstart_address\x18\x06 \x01(\x04\x12\x18\n\x10module_timestamp\x18\x07 \x01(\x04\x12\x16\n\x0emodule_debugid\x18\x08 \x01(\t\x12\x19\n\x11module_debug_path\x18\t \x01(\t\x12\x18\n\x10protection_flags\x18\n \x01(\r\x12!\n\x19private_clean_resident_kb\x18\x0b \x01(\x04\x12 \n\x18shared_dirty_resident_kb\x18\x0c \x01(\x04\x12 \n\x18shared_clean_resident_kb\x18\r \x01(\x04\x12\x11\n\tlocked_kb\x18\x0e \x01(\x04\x12 \n\x18proportional_resident_kb\x18\x0f \x01(\x04\"H\n\x0bSmapsPacket\x12\x0b\n\x03pid\x18\x01 \x01(\r\x12,\n\x07\x65ntries\x18\x02 \x03(\x0b\x32\x1b.perfetto.protos.SmapsEntry\"\xbb\x06\n\x0cProcessStats\x12\x38\n\tprocesses\x18\x01 \x03(\x0b\x32%.perfetto.protos.ProcessStats.Process\x12 \n\x18\x63ollection_end_timestamp\x18\x02 \x01(\x04\x1a\'\n\x06Thread\x12\x0b\n\x03tid\x18\x01 \x01(\x05J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05\x1a\"\n\x06\x46\x44Info\x12\n\n\x02\x66\x64\x18\x01 \x01(\x04\x12\x0c\n\x04path\x18\x02 \x01(\t\x1a\x81\x05\n\x07Process\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x35\n\x07threads\x18\x0b \x03(\x0b\x32$.perfetto.protos.ProcessStats.Thread\x12\x12\n\nvm_size_kb\x18\x02 \x01(\x04\x12\x11\n\tvm_rss_kb\x18\x03 \x01(\x04\x12\x13\n\x0brss_anon_kb\x18\x04 \x01(\x04\x12\x13\n\x0brss_file_kb\x18\x05 \x01(\x04\x12\x14\n\x0crss_shmem_kb\x18\x06 \x01(\x04\x12\x12\n\nvm_swap_kb\x18\x07 \x01(\x04\x12\x14\n\x0cvm_locked_kb\x18\x08 \x01(\x04\x12\x11\n\tvm_hwm_kb\x18\t \x01(\x04\x12\x15\n\room_score_adj\x18\n \x01(\x03\x12\x1e\n\x16is_peak_rss_resettable\x18\x0c \x01(\x08\x12#\n\x1b\x63hrome_private_footprint_kb\x18\r \x01(\r\x12#\n\x1b\x63hrome_peak_resident_set_kb\x18\x0e \x01(\r\x12\x31\n\x03\x66\x64s\x18\x0f \x03(\x0b\x32$.perfetto.protos.ProcessStats.FDInfo\x12\x12\n\nsmr_rss_kb\x18\x10 \x01(\x04\x12\x12\n\nsmr_pss_kb\x18\x11 \x01(\x04\x12\x17\n\x0fsmr_pss_anon_kb\x18\x12 \x01(\x04\x12\x17\n\x0fsmr_pss_file_kb\x18\x13 \x01(\x04\x12\x18\n\x10smr_pss_shmem_kb\x18\x14 \x01(\x04\x12\x17\n\x0fsmr_swap_pss_kb\x18\x17 \x01(\x04\x12\x19\n\x11runtime_user_mode\x18\x15 \x01(\x04\x12\x1b\n\x13runtime_kernel_mode\x18\x16 \x01(\x04\x12\x15\n\rdmabuf_rss_kb\x18\x18 \x01(\x04\"\x88\x03\n\x0bProcessTree\x12\x37\n\tprocesses\x18\x01 \x03(\x0b\x32$.perfetto.protos.ProcessTree.Process\x12\x34\n\x07threads\x18\x02 \x03(\x0b\x32#.perfetto.protos.ProcessTree.Thread\x12 \n\x18\x63ollection_end_timestamp\x18\x03 \x01(\x04\x1a@\n\x06Thread\x12\x0b\n\x03tid\x18\x01 \x01(\x05\x12\x0c\n\x04tgid\x18\x03 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\r\n\x05nstid\x18\x04 \x03(\x05\x1a\xa5\x01\n\x07Process\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x0c\n\x04ppid\x18\x02 \x01(\x05\x12\x0f\n\x07\x63mdline\x18\x03 \x03(\t\x12\x17\n\x0f\x63mdline_is_comm\x18\t \x01(\x08\x12\x0b\n\x03uid\x18\x05 \x01(\x05\x12\r\n\x05nspid\x18\x06 \x03(\x05\x12\x1f\n\x17process_start_from_boot\x18\x07 \x01(\x04\x12\x12\n\nis_kthread\x18\x08 \x01(\x08J\x04\x08\x04\x10\x05\"\xd3\x01\n\x0fRemoteClockSync\x12\x44\n\rsynced_clocks\x18\x01 \x03(\x0b\x32-.perfetto.protos.RemoteClockSync.SyncedClocks\x1az\n\x0cSyncedClocks\x12\x35\n\rclient_clocks\x18\x02 \x01(\x0b\x32\x1e.perfetto.protos.ClockSnapshot\x12\x33\n\x0bhost_clocks\x18\x03 \x01(\x0b\x32\x1e.perfetto.protos.ClockSnapshot\"\x06\n\x04\x41tom\"J\n\nStatsdAtom\x12#\n\x04\x61tom\x18\x01 \x03(\x0b\x32\x15.perfetto.protos.Atom\x12\x17\n\x0ftimestamp_nanos\x18\x02 \x03(\x03\"\xe8\x0f\n\x08SysStats\x12\x37\n\x07meminfo\x18\x01 \x03(\x0b\x32&.perfetto.protos.SysStats.MeminfoValue\x12\x35\n\x06vmstat\x18\x02 \x03(\x0b\x32%.perfetto.protos.SysStats.VmstatValue\x12\x34\n\x08\x63pu_stat\x18\x03 \x03(\x0b\x32\".perfetto.protos.SysStats.CpuTimes\x12\x11\n\tnum_forks\x18\x04 \x01(\x04\x12\x15\n\rnum_irq_total\x18\x05 \x01(\x04\x12\x39\n\x07num_irq\x18\x06 \x03(\x0b\x32(.perfetto.protos.SysStats.InterruptCount\x12\x19\n\x11num_softirq_total\x18\x07 \x01(\x04\x12=\n\x0bnum_softirq\x18\x08 \x03(\x0b\x32(.perfetto.protos.SysStats.InterruptCount\x12 \n\x18\x63ollection_end_timestamp\x18\t \x01(\x04\x12\x37\n\x07\x64\x65vfreq\x18\n \x03(\x0b\x32&.perfetto.protos.SysStats.DevfreqValue\x12\x13\n\x0b\x63pufreq_khz\x18\x0b \x03(\r\x12\x37\n\nbuddy_info\x18\x0c \x03(\x0b\x32#.perfetto.protos.SysStats.BuddyInfo\x12\x35\n\tdisk_stat\x18\r \x03(\x0b\x32\".perfetto.protos.SysStats.DiskStat\x12\x30\n\x03psi\x18\x0e \x03(\x0b\x32#.perfetto.protos.SysStats.PsiSample\x12;\n\x0cthermal_zone\x18\x0f \x03(\x0b\x32%.perfetto.protos.SysStats.ThermalZone\x12=\n\rcpuidle_state\x18\x10 \x03(\x0b\x32&.perfetto.protos.SysStats.CpuIdleState\x12\x13\n\x0bgpufreq_mhz\x18\x11 \x03(\x04\x1aL\n\x0cMeminfoValue\x12-\n\x03key\x18\x01 \x01(\x0e\x32 .perfetto.protos.MeminfoCounters\x12\r\n\x05value\x18\x02 \x01(\x04\x1aJ\n\x0bVmstatValue\x12,\n\x03key\x18\x01 \x01(\x0e\x32\x1f.perfetto.protos.VmstatCounters\x12\r\n\x05value\x18\x02 \x01(\x04\x1a\xb4\x01\n\x08\x43puTimes\x12\x0e\n\x06\x63pu_id\x18\x01 \x01(\r\x12\x0f\n\x07user_ns\x18\x02 \x01(\x04\x12\x14\n\x0cuser_nice_ns\x18\x03 \x01(\x04\x12\x16\n\x0esystem_mode_ns\x18\x04 \x01(\x04\x12\x0f\n\x07idle_ns\x18\x05 \x01(\x04\x12\x12\n\nio_wait_ns\x18\x06 \x01(\x04\x12\x0e\n\x06irq_ns\x18\x07 \x01(\x04\x12\x12\n\nsoftirq_ns\x18\x08 \x01(\x04\x12\x10\n\x08steal_ns\x18\t \x01(\x04\x1a,\n\x0eInterruptCount\x12\x0b\n\x03irq\x18\x01 \x01(\x05\x12\r\n\x05\x63ount\x18\x02 \x01(\x04\x1a*\n\x0c\x44\x65vfreqValue\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x04\x1a<\n\tBuddyInfo\x12\x0c\n\x04node\x18\x01 \x01(\t\x12\x0c\n\x04zone\x18\x02 \x01(\t\x12\x13\n\x0border_pages\x18\x03 \x03(\r\x1a\xd7\x01\n\x08\x44iskStat\x12\x13\n\x0b\x64\x65vice_name\x18\x01 \x01(\t\x12\x14\n\x0cread_sectors\x18\x02 \x01(\x04\x12\x14\n\x0cread_time_ms\x18\x03 \x01(\x04\x12\x15\n\rwrite_sectors\x18\x04 \x01(\x04\x12\x15\n\rwrite_time_ms\x18\x05 \x01(\x04\x12\x17\n\x0f\x64iscard_sectors\x18\x06 \x01(\x04\x12\x17\n\x0f\x64iscard_time_ms\x18\x07 \x01(\x04\x12\x13\n\x0b\x66lush_count\x18\x08 \x01(\x04\x12\x15\n\rflush_time_ms\x18\t \x01(\x04\x1a\xb4\x02\n\tPsiSample\x12\x41\n\x08resource\x18\x01 \x01(\x0e\x32/.perfetto.protos.SysStats.PsiSample.PsiResource\x12\x10\n\x08total_ns\x18\x02 \x01(\x04\"\xd1\x01\n\x0bPsiResource\x12\x1c\n\x18PSI_RESOURCE_UNSPECIFIED\x10\x00\x12\x19\n\x15PSI_RESOURCE_CPU_SOME\x10\x01\x12\x19\n\x15PSI_RESOURCE_CPU_FULL\x10\x02\x12\x18\n\x14PSI_RESOURCE_IO_SOME\x10\x03\x12\x18\n\x14PSI_RESOURCE_IO_FULL\x10\x04\x12\x1c\n\x18PSI_RESOURCE_MEMORY_SOME\x10\x05\x12\x1c\n\x18PSI_RESOURCE_MEMORY_FULL\x10\x06\x1a\x37\n\x0bThermalZone\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04temp\x18\x02 \x01(\x04\x12\x0c\n\x04type\x18\x03 \x01(\t\x1a\x37\n\x11\x43puIdleStateEntry\x12\r\n\x05state\x18\x01 \x01(\t\x12\x13\n\x0b\x64uration_us\x18\x02 \x01(\x04\x1ah\n\x0c\x43puIdleState\x12\x0e\n\x06\x63pu_id\x18\x01 \x01(\r\x12H\n\x13\x63puidle_state_entry\x18\x02 \x03(\x0b\x32+.perfetto.protos.SysStats.CpuIdleStateEntry\"\xcc\x02\n\x07\x43puInfo\x12*\n\x04\x63pus\x18\x01 \x03(\x0b\x32\x1c.perfetto.protos.CpuInfo.Cpu\x1an\n\x10\x41rmCpuIdentifier\x12\x13\n\x0bimplementer\x18\x01 \x01(\r\x12\x14\n\x0c\x61rchitecture\x18\x02 \x01(\r\x12\x0f\n\x07variant\x18\x03 \x01(\r\x12\x0c\n\x04part\x18\x04 \x01(\r\x12\x10\n\x08revision\x18\x05 \x01(\r\x1a\xa4\x01\n\x03\x43pu\x12\x11\n\tprocessor\x18\x01 \x01(\t\x12\x13\n\x0b\x66requencies\x18\x02 \x03(\r\x12\x10\n\x08\x63\x61pacity\x18\x03 \x01(\r\x12\x43\n\x0e\x61rm_identifier\x18\x04 \x01(\x0b\x32).perfetto.protos.CpuInfo.ArmCpuIdentifierH\x00\x12\x10\n\x08\x66\x65\x61tures\x18\x05 \x01(\x04\x42\x0c\n\nidentifier\"\xfb\x02\n\tTestEvent\x12\x0b\n\x03str\x18\x01 \x01(\t\x12\x11\n\tseq_value\x18\x02 \x01(\r\x12\x0f\n\x07\x63ounter\x18\x03 \x01(\x04\x12\x0f\n\x07is_last\x18\x04 \x01(\x08\x12\x37\n\x07payload\x18\x05 \x01(\x0b\x32&.perfetto.protos.TestEvent.TestPayload\x1a\xf2\x01\n\x0bTestPayload\x12\x0b\n\x03str\x18\x01 \x03(\t\x12\x36\n\x06nested\x18\x02 \x03(\x0b\x32&.perfetto.protos.TestEvent.TestPayload\x12\x15\n\rsingle_string\x18\x04 \x01(\t\x12\x12\n\nsingle_int\x18\x05 \x01(\x05\x12\x15\n\rrepeated_ints\x18\x06 \x03(\x05\x12\x1f\n\x17remaining_nesting_depth\x18\x03 \x01(\r\x12;\n\x11\x64\x65\x62ug_annotations\x18\x07 \x03(\x0b\x32 .perfetto.protos.DebugAnnotation\"\xf2\x01\n\x13TracePacketDefaults\x12\x1a\n\x12timestamp_clock_id\x18: \x01(\r\x12\x41\n\x14track_event_defaults\x18\x0b \x01(\x0b\x32#.perfetto.protos.TrackEventDefaults\x12\x41\n\x14perf_sample_defaults\x18\x0c \x01(\x0b\x32#.perfetto.protos.PerfSampleDefaults\x12\x39\n\x10v8_code_defaults\x18\x63 \x01(\x0b\x32\x1f.perfetto.protos.V8CodeDefaults\"%\n\tTraceUuid\x12\x0b\n\x03msb\x18\x01 \x01(\x03\x12\x0b\n\x03lsb\x18\x02 \x01(\x03\"\xe7\x03\n\x11ProcessDescriptor\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x0f\n\x07\x63mdline\x18\x02 \x03(\t\x12\x14\n\x0cprocess_name\x18\x06 \x01(\t\x12\x18\n\x10process_priority\x18\x05 \x01(\x05\x12\x1a\n\x12start_timestamp_ns\x18\x07 \x01(\x03\x12Q\n\x13\x63hrome_process_type\x18\x04 \x01(\x0e\x32\x34.perfetto.protos.ProcessDescriptor.ChromeProcessType\x12\x19\n\x11legacy_sort_index\x18\x03 \x01(\x05\x12\x16\n\x0eprocess_labels\x18\x08 \x03(\t\"\xe1\x01\n\x11\x43hromeProcessType\x12\x17\n\x13PROCESS_UNSPECIFIED\x10\x00\x12\x13\n\x0fPROCESS_BROWSER\x10\x01\x12\x14\n\x10PROCESS_RENDERER\x10\x02\x12\x13\n\x0fPROCESS_UTILITY\x10\x03\x12\x12\n\x0ePROCESS_ZYGOTE\x10\x04\x12\x1a\n\x16PROCESS_SANDBOX_HELPER\x10\x05\x12\x0f\n\x0bPROCESS_GPU\x10\x06\x12\x18\n\x14PROCESS_PPAPI_PLUGIN\x10\x07\x12\x18\n\x14PROCESS_PPAPI_BROKER\x10\x08\"-\n\x19TrackEventRangeOfInterest\x12\x10\n\x08start_us\x18\x01 \x01(\x03\"\xf4\x05\n\x10ThreadDescriptor\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x0b\n\x03tid\x18\x02 \x01(\x05\x12\x13\n\x0bthread_name\x18\x05 \x01(\t\x12N\n\x12\x63hrome_thread_type\x18\x04 \x01(\x0e\x32\x32.perfetto.protos.ThreadDescriptor.ChromeThreadType\x12\x1e\n\x16reference_timestamp_us\x18\x06 \x01(\x03\x12 \n\x18reference_thread_time_us\x18\x07 \x01(\x03\x12*\n\"reference_thread_instruction_count\x18\x08 \x01(\x03\x12\x19\n\x11legacy_sort_index\x18\x03 \x01(\x05\"\xd7\x03\n\x10\x43hromeThreadType\x12\x1d\n\x19\x43HROME_THREAD_UNSPECIFIED\x10\x00\x12\x16\n\x12\x43HROME_THREAD_MAIN\x10\x01\x12\x14\n\x10\x43HROME_THREAD_IO\x10\x02\x12 \n\x1c\x43HROME_THREAD_POOL_BG_WORKER\x10\x03\x12 \n\x1c\x43HROME_THREAD_POOL_FG_WORKER\x10\x04\x12\"\n\x1e\x43HROME_THREAD_POOL_FB_BLOCKING\x10\x05\x12\"\n\x1e\x43HROME_THREAD_POOL_BG_BLOCKING\x10\x06\x12\x1e\n\x1a\x43HROME_THREAD_POOL_SERVICE\x10\x07\x12\x1c\n\x18\x43HROME_THREAD_COMPOSITOR\x10\x08\x12 \n\x1c\x43HROME_THREAD_VIZ_COMPOSITOR\x10\t\x12#\n\x1f\x43HROME_THREAD_COMPOSITOR_WORKER\x10\n\x12 \n\x1c\x43HROME_THREAD_SERVICE_WORKER\x10\x0b\x12\x1e\n\x1a\x43HROME_THREAD_MEMORY_INFRA\x10\x32\x12#\n\x1f\x43HROME_THREAD_SAMPLING_PROFILER\x10\x33\"\x9b\x01\n\x17\x43hromeProcessDescriptor\x12\x14\n\x0cprocess_type\x18\x01 \x01(\x05\x12\x18\n\x10process_priority\x18\x02 \x01(\x05\x12\x19\n\x11legacy_sort_index\x18\x03 \x01(\x05\x12\x1d\n\x15host_app_package_name\x18\x04 \x01(\t\x12\x16\n\x0e\x63rash_trace_id\x18\x05 \x01(\x04\"b\n\x16\x43hromeThreadDescriptor\x12\x13\n\x0bthread_type\x18\x01 \x01(\x05\x12\x19\n\x11legacy_sort_index\x18\x02 \x01(\x05\x12\x18\n\x10is_sandboxed_tid\x18\x03 \x01(\x08\"\xc7\x03\n\x11\x43ounterDescriptor\x12\x43\n\x04type\x18\x01 \x01(\x0e\x32\x35.perfetto.protos.CounterDescriptor.BuiltinCounterType\x12\x12\n\ncategories\x18\x02 \x03(\t\x12\x35\n\x04unit\x18\x03 \x01(\x0e\x32\'.perfetto.protos.CounterDescriptor.Unit\x12\x11\n\tunit_name\x18\x06 \x01(\t\x12\x17\n\x0funit_multiplier\x18\x04 \x01(\x03\x12\x16\n\x0eis_incremental\x18\x05 \x01(\x08\x12\x18\n\x10y_axis_share_key\x18\x07 \x01(\t\"o\n\x12\x42uiltinCounterType\x12\x17\n\x13\x43OUNTER_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x43OUNTER_THREAD_TIME_NS\x10\x01\x12$\n COUNTER_THREAD_INSTRUCTION_COUNT\x10\x02\"S\n\x04Unit\x12\x14\n\x10UNIT_UNSPECIFIED\x10\x00\x12\x10\n\x0cUNIT_TIME_NS\x10\x01\x12\x0e\n\nUNIT_COUNT\x10\x02\x12\x13\n\x0fUNIT_SIZE_BYTES\x10\x03\"\x9c\x08\n\x0fTrackDescriptor\x12\x0c\n\x04uuid\x18\x01 \x01(\x04\x12\x13\n\x0bparent_uuid\x18\x05 \x01(\x04\x12\x0e\n\x04name\x18\x02 \x01(\tH\x00\x12\x15\n\x0bstatic_name\x18\n \x01(\tH\x00\x12\x15\n\x0b\x61trace_name\x18\r \x01(\tH\x00\x12\x13\n\x0b\x64\x65scription\x18\x0e \x01(\t\x12\x33\n\x07process\x18\x03 \x01(\x0b\x32\".perfetto.protos.ProcessDescriptor\x12@\n\x0e\x63hrome_process\x18\x06 \x01(\x0b\x32(.perfetto.protos.ChromeProcessDescriptor\x12\x31\n\x06thread\x18\x04 \x01(\x0b\x32!.perfetto.protos.ThreadDescriptor\x12>\n\rchrome_thread\x18\x07 \x01(\x0b\x32\'.perfetto.protos.ChromeThreadDescriptor\x12\x33\n\x07\x63ounter\x18\x08 \x01(\x0b\x32\".perfetto.protos.CounterDescriptor\x12+\n#disallow_merging_with_system_tracks\x18\t \x01(\x08\x12L\n\x0e\x63hild_ordering\x18\x0b \x01(\x0e\x32\x34.perfetto.protos.TrackDescriptor.ChildTracksOrdering\x12\x1a\n\x12sibling_order_rank\x18\x0c \x01(\x05\x12U\n\x16sibling_merge_behavior\x18\x0f \x01(\x0e\x32\x35.perfetto.protos.TrackDescriptor.SiblingMergeBehavior\x12\x1b\n\x11sibling_merge_key\x18\x10 \x01(\tH\x01\x12\x1f\n\x15sibling_merge_key_int\x18\x11 \x01(\x04H\x01\"V\n\x13\x43hildTracksOrdering\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rLEXICOGRAPHIC\x10\x01\x12\x11\n\rCHRONOLOGICAL\x10\x02\x12\x0c\n\x08\x45XPLICIT\x10\x03\"\xba\x01\n\x14SiblingMergeBehavior\x12&\n\"SIBLING_MERGE_BEHAVIOR_UNSPECIFIED\x10\x00\x12(\n$SIBLING_MERGE_BEHAVIOR_BY_TRACK_NAME\x10\x01\x12\x1f\n\x1bSIBLING_MERGE_BEHAVIOR_NONE\x10\x02\x12/\n+SIBLING_MERGE_BEHAVIOR_BY_SIBLING_MERGE_KEY\x10\x03\x42\x18\n\x16static_or_dynamic_nameB\x19\n\x17sibling_merge_key_field\"\xed\x03\n\x10TranslationTable\x12M\n\x10\x63hrome_histogram\x18\x01 \x01(\x0b\x32\x31.perfetto.protos.ChromeHistorgramTranslationTableH\x00\x12M\n\x11\x63hrome_user_event\x18\x02 \x01(\x0b\x32\x30.perfetto.protos.ChromeUserEventTranslationTableH\x00\x12Y\n\x17\x63hrome_performance_mark\x18\x03 \x01(\x0b\x32\x36.perfetto.protos.ChromePerformanceMarkTranslationTableH\x00\x12@\n\nslice_name\x18\x04 \x01(\x0b\x32*.perfetto.protos.SliceNameTranslationTableH\x00\x12O\n\x12process_track_name\x18\x05 \x01(\x0b\x32\x31.perfetto.protos.ProcessTrackNameTranslationTableH\x00\x12\x44\n\x0c\x63hrome_study\x18\x06 \x01(\x0b\x32,.perfetto.protos.ChromeStudyTranslationTableH\x00\x42\x07\n\x05table\"\xae\x01\n ChromeHistorgramTranslationTable\x12W\n\x0chash_to_name\x18\x01 \x03(\x0b\x32\x41.perfetto.protos.ChromeHistorgramTranslationTable.HashToNameEntry\x1a\x31\n\x0fHashToNameEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xbf\x01\n\x1f\x43hromeUserEventTranslationTable\x12\x63\n\x13\x61\x63tion_hash_to_name\x18\x01 \x03(\x0b\x32\x46.perfetto.protos.ChromeUserEventTranslationTable.ActionHashToNameEntry\x1a\x37\n\x15\x41\x63tionHashToNameEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xe3\x02\n%ChromePerformanceMarkTranslationTable\x12\x65\n\x11site_hash_to_name\x18\x01 \x03(\x0b\x32J.perfetto.protos.ChromePerformanceMarkTranslationTable.SiteHashToNameEntry\x12\x65\n\x11mark_hash_to_name\x18\x02 \x03(\x0b\x32J.perfetto.protos.ChromePerformanceMarkTranslationTable.MarkHashToNameEntry\x1a\x35\n\x13SiteHashToNameEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x35\n\x13MarkHashToNameEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xc2\x01\n\x19SliceNameTranslationTable\x12g\n\x18raw_to_deobfuscated_name\x18\x01 \x03(\x0b\x32\x45.perfetto.protos.SliceNameTranslationTable.RawToDeobfuscatedNameEntry\x1a<\n\x1aRawToDeobfuscatedNameEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xd0\x01\n ProcessTrackNameTranslationTable\x12n\n\x18raw_to_deobfuscated_name\x18\x01 \x03(\x0b\x32L.perfetto.protos.ProcessTrackNameTranslationTable.RawToDeobfuscatedNameEntry\x1a<\n\x1aRawToDeobfuscatedNameEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa4\x01\n\x1b\x43hromeStudyTranslationTable\x12R\n\x0chash_to_name\x18\x01 \x03(\x0b\x32<.perfetto.protos.ChromeStudyTranslationTable.HashToNameEntry\x1a\x31\n\x0fHashToNameEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"k\n\x07Trigger\x12\x14\n\x0ctrigger_name\x18\x01 \x01(\t\x12\x15\n\rproducer_name\x18\x02 \x01(\t\x12\x1c\n\x14trusted_producer_uid\x18\x03 \x01(\x05\x12\x15\n\rstop_delay_ms\x18\x04 \x01(\x04\"\xc5\x01\n\x07UiState\x12\x19\n\x11timeline_start_ts\x18\x01 \x01(\x03\x12\x17\n\x0ftimeline_end_ts\x18\x02 \x01(\x03\x12\x44\n\x11highlight_process\x18\x03 \x01(\x0b\x32).perfetto.protos.UiState.HighlightProcess\x1a@\n\x10HighlightProcess\x12\r\n\x03pid\x18\x01 \x01(\rH\x00\x12\x11\n\x07\x63mdline\x18\x02 \x01(\tH\x00\x42\n\n\x08selector\"\xdf\x30\n\x0bTracePacket\x12\x11\n\ttimestamp\x18\x08 \x01(\x04\x12\x1a\n\x12timestamp_clock_id\x18: \x01(\r\x12\x34\n\x0cprocess_tree\x18\x02 \x01(\x0b\x32\x1c.perfetto.protos.ProcessTreeH\x00\x12\x36\n\rprocess_stats\x18\t \x01(\x0b\x32\x1d.perfetto.protos.ProcessStatsH\x00\x12\x37\n\x0einode_file_map\x18\x04 \x01(\x0b\x32\x1d.perfetto.protos.InodeFileMapH\x00\x12;\n\rchrome_events\x18\x05 \x01(\x0b\x32\".perfetto.protos.ChromeEventBundleH\x00\x12\x38\n\x0e\x63lock_snapshot\x18\x06 \x01(\x0b\x32\x1e.perfetto.protos.ClockSnapshotH\x00\x12.\n\tsys_stats\x18\x07 \x01(\x0b\x32\x19.perfetto.protos.SysStatsH\x00\x12\x32\n\x0btrack_event\x18\x0b \x01(\x0b\x32\x1b.perfetto.protos.TrackEventH\x00\x12\x30\n\ntrace_uuid\x18Y \x01(\x0b\x32\x1a.perfetto.protos.TraceUuidH\x00\x12\x34\n\x0ctrace_config\x18! \x01(\x0b\x32\x1c.perfetto.protos.TraceConfigH\x00\x12\x34\n\x0c\x66trace_stats\x18\" \x01(\x0b\x32\x1c.perfetto.protos.FtraceStatsH\x00\x12\x32\n\x0btrace_stats\x18# \x01(\x0b\x32\x1b.perfetto.protos.TraceStatsH\x00\x12\x38\n\x0eprofile_packet\x18% \x01(\x0b\x32\x1e.perfetto.protos.ProfilePacketH\x00\x12\x44\n\x14streaming_allocation\x18J \x01(\x0b\x32$.perfetto.protos.StreamingAllocationH\x00\x12\x38\n\x0estreaming_free\x18K \x01(\x0b\x32\x1e.perfetto.protos.StreamingFreeH\x00\x12\x33\n\x07\x62\x61ttery\x18& \x01(\x0b\x32 .perfetto.protos.BatteryCountersH\x00\x12\x32\n\x0bpower_rails\x18( \x01(\x0b\x32\x1b.perfetto.protos.PowerRailsH\x00\x12\x38\n\x0b\x61ndroid_log\x18\' \x01(\x0b\x32!.perfetto.protos.AndroidLogPacketH\x00\x12\x32\n\x0bsystem_info\x18- \x01(\x0b\x32\x1b.perfetto.protos.SystemInfoH\x00\x12+\n\x07trigger\x18. \x01(\x0b\x32\x18.perfetto.protos.TriggerH\x00\x12\x38\n\x0e\x63hrome_trigger\x18m \x01(\x0b\x32\x1e.perfetto.protos.ChromeTriggerH\x00\x12\x36\n\rpackages_list\x18/ \x01(\x0b\x32\x1d.perfetto.protos.PackagesListH\x00\x12M\n\x19\x63hrome_benchmark_metadata\x18\x30 \x01(\x0b\x32(.perfetto.protos.ChromeBenchmarkMetadataH\x00\x12@\n\x12perfetto_metatrace\x18\x31 \x01(\x0b\x32\".perfetto.protos.PerfettoMetatraceH\x00\x12@\n\x0f\x63hrome_metadata\x18\x33 \x01(\x0b\x32%.perfetto.protos.ChromeMetadataPacketH\x00\x12=\n\x11gpu_counter_event\x18\x34 \x01(\x0b\x32 .perfetto.protos.GpuCounterEventH\x00\x12\x46\n\x16gpu_render_stage_event\x18\x35 \x01(\x0b\x32$.perfetto.protos.GpuRenderStageEventH\x00\x12K\n\x18streaming_profile_packet\x18\x36 \x01(\x0b\x32\'.perfetto.protos.StreamingProfilePacketH\x00\x12\x30\n\nheap_graph\x18\x38 \x01(\x0b\x32\x1a.perfetto.protos.HeapGraphH\x00\x12\x43\n\x14graphics_frame_event\x18\x39 \x01(\x0b\x32#.perfetto.protos.GraphicsFrameEventH\x00\x12\x41\n\x13vulkan_memory_event\x18> \x01(\x0b\x32\".perfetto.protos.VulkanMemoryEventH\x00\x12*\n\x07gpu_log\x18? \x01(\x0b\x32\x17.perfetto.protos.GpuLogH\x00\x12;\n\x10vulkan_api_event\x18\x41 \x01(\x0b\x32\x1f.perfetto.protos.VulkanApiEventH\x00\x12\x32\n\x0bperf_sample\x18\x42 \x01(\x0b\x32\x1b.perfetto.protos.PerfSampleH\x00\x12,\n\x08\x63pu_info\x18\x43 \x01(\x0b\x32\x18.perfetto.protos.CpuInfoH\x00\x12\x34\n\x0csmaps_packet\x18\x44 \x01(\x0b\x32\x1c.perfetto.protos.SmapsPacketH\x00\x12=\n\rservice_event\x18\x45 \x01(\x0b\x32$.perfetto.protos.TracingServiceEventH\x00\x12\x45\n\x15initial_display_state\x18\x46 \x01(\x0b\x32$.perfetto.protos.InitialDisplayStateH\x00\x12@\n\x13gpu_mem_total_event\x18G \x01(\x0b\x32!.perfetto.protos.GpuMemTotalEventH\x00\x12I\n\x17memory_tracker_snapshot\x18I \x01(\x0b\x32&.perfetto.protos.MemoryTrackerSnapshotH\x00\x12\x43\n\x14\x66rame_timeline_event\x18L \x01(\x0b\x32#.perfetto.protos.FrameTimelineEventH\x00\x12`\n#android_energy_estimation_breakdown\x18M \x01(\x0b\x32\x31.perfetto.protos.AndroidEnergyEstimationBreakdownH\x00\x12,\n\x08ui_state\x18N \x01(\x0b\x32\x18.perfetto.protos.UiStateH\x00\x12N\n\x1a\x61ndroid_camera_frame_event\x18P \x01(\x0b\x32(.perfetto.protos.AndroidCameraFrameEventH\x00\x12R\n\x1c\x61ndroid_camera_session_stats\x18Q \x01(\x0b\x32*.perfetto.protos.AndroidCameraSessionStatsH\x00\x12>\n\x11translation_table\x18R \x01(\x0b\x32!.perfetto.protos.TranslationTableH\x00\x12V\n\x1e\x61ndroid_game_intervention_list\x18S \x01(\x0b\x32,.perfetto.protos.AndroidGameInterventionListH\x00\x12\x32\n\x0bstatsd_atom\x18T \x01(\x0b\x32\x1b.perfetto.protos.StatsdAtomH\x00\x12I\n\x17\x61ndroid_system_property\x18V \x01(\x0b\x32&.perfetto.protos.AndroidSystemPropertyH\x00\x12G\n\x16\x65ntity_state_residency\x18[ \x01(\x0b\x32%.perfetto.protos.EntityStateResidencyH\x00\x12\x38\n\x0emodule_symbols\x18= \x01(\x0b\x32\x1e.perfetto.protos.ModuleSymbolsH\x00\x12\x46\n\x15\x64\x65obfuscation_mapping\x18@ \x01(\x0b\x32%.perfetto.protos.DeobfuscationMappingH\x00\x12<\n\x10track_descriptor\x18< \x01(\x0b\x32 .perfetto.protos.TrackDescriptorH\x00\x12@\n\x12process_descriptor\x18+ \x01(\x0b\x32\".perfetto.protos.ProcessDescriptorH\x00\x12>\n\x11thread_descriptor\x18, \x01(\x0b\x32!.perfetto.protos.ThreadDescriptorH\x00\x12;\n\rftrace_events\x18\x01 \x01(\x0b\x32\".perfetto.protos.FtraceEventBundleH\x00\x12 \n\x16synchronization_marker\x18$ \x01(\x0cH\x00\x12\x1c\n\x12\x63ompressed_packets\x18\x32 \x01(\x0cH\x00\x12\x44\n\x14\x65xtension_descriptor\x18H \x01(\x0b\x32$.perfetto.protos.ExtensionDescriptorH\x00\x12=\n\x0enetwork_packet\x18X \x01(\x0b\x32#.perfetto.protos.NetworkPacketEventH\x00\x12\x45\n\x15network_packet_bundle\x18\\ \x01(\x0b\x32$.perfetto.protos.NetworkPacketBundleH\x00\x12S\n\x1dtrack_event_range_of_interest\x18Z \x01(\x0b\x32*.perfetto.protos.TrackEventRangeOfInterestH\x00\x12N\n\x1esurfaceflinger_layers_snapshot\x18] \x01(\x0b\x32$.perfetto.protos.LayersSnapshotProtoH\x00\x12M\n\x1bsurfaceflinger_transactions\x18^ \x01(\x0b\x32&.perfetto.protos.TransactionTraceEntryH\x00\x12<\n\x10shell_transition\x18` \x01(\x0b\x32 .perfetto.protos.ShellTransitionH\x00\x12G\n\x16shell_handler_mappings\x18\x61 \x01(\x0b\x32%.perfetto.protos.ShellHandlerMappingsH\x00\x12<\n\x10protolog_message\x18h \x01(\x0b\x32 .perfetto.protos.ProtoLogMessageH\x00\x12G\n\x16protolog_viewer_config\x18i \x01(\x0b\x32%.perfetto.protos.ProtoLogViewerConfigH\x00\x12\x42\n\x13winscope_extensions\x18p \x01(\x0b\x32#.perfetto.protos.WinscopeExtensionsH\x00\x12:\n\netw_events\x18_ \x01(\x0b\x32$.perfetto.protos.EtwTraceEventBundleH\x00\x12/\n\nv8_js_code\x18\x63 \x01(\x0b\x32\x19.perfetto.protos.V8JsCodeH\x00\x12;\n\x10v8_internal_code\x18\x64 \x01(\x0b\x32\x1f.perfetto.protos.V8InternalCodeH\x00\x12\x33\n\x0cv8_wasm_code\x18\x65 \x01(\x0b\x32\x1b.perfetto.protos.V8WasmCodeH\x00\x12\x38\n\x0fv8_reg_exp_code\x18\x66 \x01(\x0b\x32\x1d.perfetto.protos.V8RegExpCodeH\x00\x12\x33\n\x0cv8_code_move\x18g \x01(\x0b\x32\x1b.perfetto.protos.V8CodeMoveH\x00\x12=\n\x11remote_clock_sync\x18k \x01(\x0b\x32 .perfetto.protos.RemoteClockSyncH\x00\x12?\n\x12pixel_modem_events\x18n \x01(\x0b\x32!.perfetto.protos.PixelModemEventsH\x00\x12N\n\x1apixel_modem_token_database\x18o \x01(\x0b\x32(.perfetto.protos.PixelModemTokenDatabaseH\x00\x12:\n\x16\x63lone_snapshot_trigger\x18q \x01(\x0b\x32\x18.perfetto.protos.TriggerH\x00\x12\x45\n\x15\x62luetooth_trace_event\x18r \x01(\x0b\x32$.perfetto.protos.BluetoothTraceEventH\x00\x12\x43\n\x14kernel_wakelock_data\x18s \x01(\x0b\x32#.perfetto.protos.KernelWakelockDataH\x00\x12\x41\n\x13\x61pp_wakelock_bundle\x18t \x01(\x0b\x32\".perfetto.protos.AppWakelockBundleH\x00\x12W\n\x1fgeneric_kernel_task_state_event\x18u \x01(\x0b\x32,.perfetto.protos.GenericKernelTaskStateEventH\x00\x12X\n\x1dgeneric_kernel_cpu_freq_event\x18v \x01(\x0b\x32/.perfetto.protos.GenericKernelCpuFrequencyEventH\x00\x12Y\n generic_kernel_task_rename_event\x18x \x01(\x0b\x32-.perfetto.protos.GenericKernelTaskRenameEventH\x00\x12P\n\x1bgeneric_kernel_process_tree\x18z \x01(\x0b\x32).perfetto.protos.GenericKernelProcessTreeH\x00\x12:\n\x10\x63pu_per_uid_data\x18w \x01(\x0b\x32\x1e.perfetto.protos.CpuPerUidDataH\x00\x12\x32\n\x0b\x65vdev_event\x18y \x01(\x0b\x32\x1b.perfetto.protos.EvdevEventH\x00\x12\x35\n\tuser_list\x18{ \x01(\x0b\x32 .perfetto.protos.AndroidUserListH\x00\x12\x32\n\x0b\x66or_testing\x18\x84\x07 \x01(\x0b\x32\x1a.perfetto.protos.TestEventH\x00\x12\x15\n\x0btrusted_uid\x18\x03 \x01(\x05H\x01\x12$\n\x1atrusted_packet_sequence_id\x18\n \x01(\rH\x02\x12\x13\n\x0btrusted_pid\x18O \x01(\x05\x12\x34\n\rinterned_data\x18\x0c \x01(\x0b\x32\x1d.perfetto.protos.InternedData\x12\x16\n\x0esequence_flags\x18\r \x01(\r\x12!\n\x19incremental_state_cleared\x18) \x01(\x08\x12\x43\n\x15trace_packet_defaults\x18; \x01(\x0b\x32$.perfetto.protos.TracePacketDefaults\x12\x1f\n\x17previous_packet_dropped\x18* \x01(\x08\x12 \n\x18\x66irst_packet_on_sequence\x18W \x01(\x08\x12\x12\n\nmachine_id\x18\x62 \x01(\r\"h\n\rSequenceFlags\x12\x13\n\x0fSEQ_UNSPECIFIED\x10\x00\x12!\n\x1dSEQ_INCREMENTAL_STATE_CLEARED\x10\x01\x12\x1f\n\x1bSEQ_NEEDS_INCREMENTAL_STATE\x10\x02\x42\x06\n\x04\x64\x61taB\x16\n\x14optional_trusted_uidB%\n#optional_trusted_packet_sequence_idJ\x04\x08j\x10kJ\x04\x08\x37\x10\x38\"5\n\x05Trace\x12,\n\x06packet\x18\x01 \x03(\x0b\x32\x1c.perfetto.protos.TracePacket*\xbb\x02\n\x0c\x42uiltinClock\x12\x19\n\x15\x42UILTIN_CLOCK_UNKNOWN\x10\x00\x12\x1a\n\x16\x42UILTIN_CLOCK_REALTIME\x10\x01\x12!\n\x1d\x42UILTIN_CLOCK_REALTIME_COARSE\x10\x02\x12\x1b\n\x17\x42UILTIN_CLOCK_MONOTONIC\x10\x03\x12\"\n\x1e\x42UILTIN_CLOCK_MONOTONIC_COARSE\x10\x04\x12\x1f\n\x1b\x42UILTIN_CLOCK_MONOTONIC_RAW\x10\x05\x12\x1a\n\x16\x42UILTIN_CLOCK_BOOTTIME\x10\x06\x12\x15\n\x11\x42UILTIN_CLOCK_TSC\x10\t\x12\x16\n\x12\x42UILTIN_CLOCK_PERF\x10\n\x12\x18\n\x14\x42UILTIN_CLOCK_MAX_ID\x10?\"\x04\x08\x07\x10\x07\"\x04\x08\x08\x10\x08*\x8e\x01\n\x0c\x41ndroidLogId\x12\x0f\n\x0bLID_DEFAULT\x10\x00\x12\r\n\tLID_RADIO\x10\x01\x12\x0e\n\nLID_EVENTS\x10\x02\x12\x0e\n\nLID_SYSTEM\x10\x03\x12\r\n\tLID_CRASH\x10\x04\x12\r\n\tLID_STATS\x10\x05\x12\x10\n\x0cLID_SECURITY\x10\x06\x12\x0e\n\nLID_KERNEL\x10\x07*\x9b\x01\n\x12\x41ndroidLogPriority\x12\x14\n\x10PRIO_UNSPECIFIED\x10\x00\x12\x0f\n\x0bPRIO_UNUSED\x10\x01\x12\x10\n\x0cPRIO_VERBOSE\x10\x02\x12\x0e\n\nPRIO_DEBUG\x10\x03\x12\r\n\tPRIO_INFO\x10\x04\x12\r\n\tPRIO_WARN\x10\x05\x12\x0e\n\nPRIO_ERROR\x10\x06\x12\x0e\n\nPRIO_FATAL\x10\x07*\xc7\x01\n\rProtoLogLevel\x12\x1c\n\x18PROTOLOG_LEVEL_UNDEFINED\x10\x00\x12\x18\n\x14PROTOLOG_LEVEL_DEBUG\x10\x01\x12\x1a\n\x16PROTOLOG_LEVEL_VERBOSE\x10\x02\x12\x17\n\x13PROTOLOG_LEVEL_INFO\x10\x03\x12\x17\n\x13PROTOLOG_LEVEL_WARN\x10\x04\x12\x18\n\x14PROTOLOG_LEVEL_ERROR\x10\x05\x12\x16\n\x12PROTOLOG_LEVEL_WTF\x10\x06*\xd7\xe8\x02\n\x06\x41tomId\x12\x14\n\x10\x41TOM_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x41TOM_BLE_SCAN_STATE_CHANGED\x10\x02\x12\x1e\n\x1a\x41TOM_PROCESS_STATE_CHANGED\x10\x03\x12!\n\x1d\x41TOM_BLE_SCAN_RESULT_RECEIVED\x10\x04\x12\x1d\n\x19\x41TOM_SENSOR_STATE_CHANGED\x10\x05\x12\x1f\n\x1b\x41TOM_GPS_SCAN_STATE_CHANGED\x10\x06\x12\x1b\n\x17\x41TOM_SYNC_STATE_CHANGED\x10\x07\x12$\n ATOM_SCHEDULED_JOB_STATE_CHANGED\x10\x08\x12\"\n\x1e\x41TOM_SCREEN_BRIGHTNESS_CHANGED\x10\t\x12\x1f\n\x1b\x41TOM_WAKELOCK_STATE_CHANGED\x10\n\x12,\n(ATOM_LONG_PARTIAL_WAKELOCK_STATE_CHANGED\x10\x0b\x12)\n%ATOM_MOBILE_RADIO_POWER_STATE_CHANGED\x10\x0c\x12\'\n#ATOM_WIFI_RADIO_POWER_STATE_CHANGED\x10\r\x12-\n)ATOM_ACTIVITY_MANAGER_SLEEP_STATE_CHANGED\x10\x0e\x12$\n ATOM_MEMORY_FACTOR_STATE_CHANGED\x10\x0f\x12%\n!ATOM_EXCESSIVE_CPU_USAGE_REPORTED\x10\x10\x12\x1d\n\x19\x41TOM_CACHED_KILL_REPORTED\x10\x11\x12%\n!ATOM_PROCESS_MEMORY_STAT_REPORTED\x10\x12\x12\x17\n\x13\x41TOM_LAUNCHER_EVENT\x10\x13\x12)\n%ATOM_BATTERY_SAVER_MODE_STATE_CHANGED\x10\x14\x12\'\n#ATOM_DEVICE_IDLE_MODE_STATE_CHANGED\x10\x15\x12)\n%ATOM_DEVICE_IDLING_MODE_STATE_CHANGED\x10\x16\x12\x1c\n\x18\x41TOM_AUDIO_STATE_CHANGED\x10\x17\x12\"\n\x1e\x41TOM_MEDIA_CODEC_STATE_CHANGED\x10\x18\x12\x1d\n\x19\x41TOM_CAMERA_STATE_CHANGED\x10\x19\x12!\n\x1d\x41TOM_FLASHLIGHT_STATE_CHANGED\x10\x1a\x12\"\n\x1e\x41TOM_UID_PROCESS_STATE_CHANGED\x10\x1b\x12)\n%ATOM_PROCESS_LIFE_CYCLE_STATE_CHANGED\x10\x1c\x12\x1d\n\x19\x41TOM_SCREEN_STATE_CHANGED\x10\x1d\x12\x1e\n\x1a\x41TOM_BATTERY_LEVEL_CHANGED\x10\x1e\x12\x1f\n\x1b\x41TOM_CHARGING_STATE_CHANGED\x10\x1f\x12\x1e\n\x1a\x41TOM_PLUGGED_STATE_CHANGED\x10 \x12\"\n\x1e\x41TOM_INTERACTIVE_STATE_CHANGED\x10!\x12\x1d\n\x19\x41TOM_TOUCH_EVENT_REPORTED\x10\"\x12\x1e\n\x1a\x41TOM_WAKEUP_ALARM_OCCURRED\x10#\x12\x1f\n\x1b\x41TOM_KERNEL_WAKEUP_REPORTED\x10$\x12 \n\x1c\x41TOM_WIFI_LOCK_STATE_CHANGED\x10%\x12%\n!ATOM_WIFI_SIGNAL_STRENGTH_CHANGED\x10&\x12 \n\x1c\x41TOM_WIFI_SCAN_STATE_CHANGED\x10\'\x12&\n\"ATOM_PHONE_SIGNAL_STRENGTH_CHANGED\x10(\x12\x18\n\x14\x41TOM_SETTING_CHANGED\x10)\x12*\n&ATOM_ACTIVITY_FOREGROUND_STATE_CHANGED\x10*\x12\x1d\n\x19\x41TOM_ISOLATED_UID_CHANGED\x10+\x12\x1f\n\x1b\x41TOM_PACKET_WAKEUP_OCCURRED\x10,\x12 \n\x1c\x41TOM_WALL_CLOCK_TIME_SHIFTED\x10-\x12\x19\n\x15\x41TOM_ANOMALY_DETECTED\x10.\x12 \n\x1c\x41TOM_APP_BREADCRUMB_REPORTED\x10/\x12\x1b\n\x17\x41TOM_APP_START_OCCURRED\x10\x30\x12\x1b\n\x17\x41TOM_APP_START_CANCELED\x10\x31\x12\x1e\n\x1a\x41TOM_APP_START_FULLY_DRAWN\x10\x32\x12\x1a\n\x16\x41TOM_LMK_KILL_OCCURRED\x10\x33\x12)\n%ATOM_PICTURE_IN_PICTURE_STATE_CHANGED\x10\x34\x12*\n&ATOM_WIFI_MULTICAST_LOCK_STATE_CHANGED\x10\x35\x12(\n$ATOM_APP_START_MEMORY_STATE_CAPTURED\x10\x37\x12#\n\x1f\x41TOM_SHUTDOWN_SEQUENCE_REPORTED\x10\x38\x12\x1f\n\x1b\x41TOM_BOOT_SEQUENCE_REPORTED\x10\x39\x12\x1e\n\x1a\x41TOM_OVERLAY_STATE_CHANGED\x10;\x12)\n%ATOM_FOREGROUND_SERVICE_STATE_CHANGED\x10<\x12\x1b\n\x17\x41TOM_CALL_STATE_CHANGED\x10=\x12\x1f\n\x1b\x41TOM_KEYGUARD_STATE_CHANGED\x10>\x12\'\n#ATOM_KEYGUARD_BOUNCER_STATE_CHANGED\x10?\x12*\n&ATOM_KEYGUARD_BOUNCER_PASSWORD_ENTERED\x10@\x12\x11\n\rATOM_APP_DIED\x10\x41\x12\'\n#ATOM_RESOURCE_CONFIGURATION_CHANGED\x10\x42\x12(\n$ATOM_BLUETOOTH_ENABLED_STATE_CHANGED\x10\x43\x12+\n\'ATOM_BLUETOOTH_CONNECTION_STATE_CHANGED\x10\x44\x12#\n\x1f\x41TOM_GPS_SIGNAL_QUALITY_CHANGED\x10\x45\x12$\n ATOM_USB_CONNECTOR_STATE_CHANGED\x10\x46\x12#\n\x1f\x41TOM_SPEAKER_IMPEDANCE_REPORTED\x10G\x12\x18\n\x14\x41TOM_HARDWARE_FAILED\x10H\x12\x1f\n\x1b\x41TOM_PHYSICAL_DROP_DETECTED\x10I\x12\x1f\n\x1b\x41TOM_CHARGE_CYCLES_REPORTED\x10J\x12(\n$ATOM_MOBILE_CONNECTION_STATE_CHANGED\x10K\x12(\n$ATOM_MOBILE_RADIO_TECHNOLOGY_CHANGED\x10L\x12\x1c\n\x18\x41TOM_USB_DEVICE_ATTACHED\x10M\x12\x1b\n\x17\x41TOM_APP_CRASH_OCCURRED\x10N\x12\x15\n\x11\x41TOM_ANR_OCCURRED\x10O\x12\x15\n\x11\x41TOM_WTF_OCCURRED\x10P\x12\x19\n\x15\x41TOM_LOW_MEM_REPORTED\x10Q\x12\x15\n\x11\x41TOM_GENERIC_ATOM\x10R\x12\x1f\n\x1b\x41TOM_VIBRATOR_STATE_CHANGED\x10T\x12$\n ATOM_DEFERRED_JOB_STATS_REPORTED\x10U\x12\x1b\n\x17\x41TOM_THERMAL_THROTTLING\x10V\x12\x1b\n\x17\x41TOM_BIOMETRIC_ACQUIRED\x10W\x12 \n\x1c\x41TOM_BIOMETRIC_AUTHENTICATED\x10X\x12!\n\x1d\x41TOM_BIOMETRIC_ERROR_OCCURRED\x10Y\x12\x1a\n\x16\x41TOM_UI_EVENT_REPORTED\x10Z\x12 \n\x1c\x41TOM_BATTERY_HEALTH_SNAPSHOT\x10[\x12\x10\n\x0c\x41TOM_SLOW_IO\x10\\\x12 \n\x1c\x41TOM_BATTERY_CAUSED_SHUTDOWN\x10]\x12$\n ATOM_PHONE_SERVICE_STATE_CHANGED\x10^\x12\x1c\n\x18\x41TOM_PHONE_STATE_CHANGED\x10_\x12!\n\x1d\x41TOM_USER_RESTRICTION_CHANGED\x10`\x12\x1c\n\x18\x41TOM_SETTINGS_UI_CHANGED\x10\x61\x12#\n\x1f\x41TOM_CONNECTIVITY_STATE_CHANGED\x10\x62\x12\x1e\n\x1a\x41TOM_SERVICE_STATE_CHANGED\x10\x63\x12 \n\x1c\x41TOM_SERVICE_LAUNCH_REPORTED\x10\x64\x12\"\n\x1e\x41TOM_FLAG_FLIP_UPDATE_OCCURRED\x10\x65\x12\"\n\x1e\x41TOM_BINARY_PUSH_STATE_CHANGED\x10\x66\x12\x1c\n\x18\x41TOM_DEVICE_POLICY_EVENT\x10g\x12!\n\x1d\x41TOM_DOCS_UI_FILE_OP_CANCELED\x10h\x12\x30\n,ATOM_DOCS_UI_FILE_OP_COPY_MOVE_MODE_REPORTED\x10i\x12 \n\x1c\x41TOM_DOCS_UI_FILE_OP_FAILURE\x10j\x12!\n\x1d\x41TOM_DOCS_UI_PROVIDER_FILE_OP\x10k\x12.\n*ATOM_DOCS_UI_INVALID_SCOPED_ACCESS_REQUEST\x10l\x12 \n\x1c\x41TOM_DOCS_UI_LAUNCH_REPORTED\x10m\x12\x1d\n\x19\x41TOM_DOCS_UI_ROOT_VISITED\x10n\x12\x1b\n\x17\x41TOM_DOCS_UI_STARTUP_MS\x10o\x12%\n!ATOM_DOCS_UI_USER_ACTION_REPORTED\x10p\x12#\n\x1f\x41TOM_WIFI_ENABLED_STATE_CHANGED\x10q\x12#\n\x1f\x41TOM_WIFI_RUNNING_STATE_CHANGED\x10r\x12\x16\n\x12\x41TOM_APP_COMPACTED\x10s\x12#\n\x1f\x41TOM_NETWORK_DNS_EVENT_REPORTED\x10t\x12.\n*ATOM_DOCS_UI_PICKER_LAUNCHED_FROM_REPORTED\x10u\x12%\n!ATOM_DOCS_UI_PICK_RESULT_REPORTED\x10v\x12%\n!ATOM_DOCS_UI_SEARCH_MODE_REPORTED\x10w\x12%\n!ATOM_DOCS_UI_SEARCH_TYPE_REPORTED\x10x\x12\x19\n\x15\x41TOM_DATA_STALL_EVENT\x10y\x12$\n ATOM_RESCUE_PARTY_RESET_REPORTED\x10z\x12\x1f\n\x1b\x41TOM_SIGNED_CONFIG_REPORTED\x10{\x12\x1f\n\x1b\x41TOM_GNSS_NI_EVENT_REPORTED\x10|\x12.\n*ATOM_BLUETOOTH_LINK_LAYER_CONNECTION_EVENT\x10}\x12/\n+ATOM_BLUETOOTH_ACL_CONNECTION_STATE_CHANGED\x10~\x12/\n+ATOM_BLUETOOTH_SCO_CONNECTION_STATE_CHANGED\x10\x7f\x12\x18\n\x13\x41TOM_APP_DOWNGRADED\x10\x80\x01\x12(\n#ATOM_APP_OPTIMIZED_AFTER_DOWNGRADED\x10\x81\x01\x12#\n\x1e\x41TOM_LOW_STORAGE_STATE_CHANGED\x10\x82\x01\x12(\n#ATOM_GNSS_NFW_NOTIFICATION_REPORTED\x10\x83\x01\x12%\n ATOM_GNSS_CONFIGURATION_REPORTED\x10\x84\x01\x12*\n%ATOM_USB_PORT_OVERHEAT_EVENT_REPORTED\x10\x85\x01\x12\x1c\n\x17\x41TOM_NFC_ERROR_OCCURRED\x10\x86\x01\x12\x1b\n\x16\x41TOM_NFC_STATE_CHANGED\x10\x87\x01\x12\x1b\n\x16\x41TOM_NFC_BEAM_OCCURRED\x10\x88\x01\x12$\n\x1f\x41TOM_NFC_CARDEMULATION_OCCURRED\x10\x89\x01\x12\x1a\n\x15\x41TOM_NFC_TAG_OCCURRED\x10\x8a\x01\x12&\n!ATOM_NFC_HCE_TRANSACTION_OCCURRED\x10\x8b\x01\x12\x1a\n\x15\x41TOM_SE_STATE_CHANGED\x10\x8c\x01\x12\x1b\n\x16\x41TOM_SE_OMAPI_REPORTED\x10\x8d\x01\x12-\n(ATOM_BROADCAST_DISPATCH_LATENCY_REPORTED\x10\x8e\x01\x12\x33\n.ATOM_ATTENTION_MANAGER_SERVICE_RESULT_REPORTED\x10\x8f\x01\x12 \n\x1b\x41TOM_ADB_CONNECTION_CHANGED\x10\x90\x01\x12\"\n\x1d\x41TOM_SPEECH_DSP_STAT_REPORTED\x10\x91\x01\x12\"\n\x1d\x41TOM_USB_CONTAMINANT_REPORTED\x10\x92\x01\x12$\n\x1f\x41TOM_WATCHDOG_ROLLBACK_OCCURRED\x10\x93\x01\x12\x30\n+ATOM_BIOMETRIC_SYSTEM_HEALTH_ISSUE_DETECTED\x10\x94\x01\x12\x1b\n\x16\x41TOM_BUBBLE_UI_CHANGED\x10\x95\x01\x12*\n%ATOM_SCHEDULED_JOB_CONSTRAINT_CHANGED\x10\x96\x01\x12)\n$ATOM_BLUETOOTH_ACTIVE_DEVICE_CHANGED\x10\x97\x01\x12/\n*ATOM_BLUETOOTH_A2DP_PLAYBACK_STATE_CHANGED\x10\x98\x01\x12-\n(ATOM_BLUETOOTH_A2DP_CODEC_CONFIG_CHANGED\x10\x99\x01\x12\x31\n,ATOM_BLUETOOTH_A2DP_CODEC_CAPABILITY_CHANGED\x10\x9a\x01\x12\x30\n+ATOM_BLUETOOTH_A2DP_AUDIO_UNDERRUN_REPORTED\x10\x9b\x01\x12/\n*ATOM_BLUETOOTH_A2DP_AUDIO_OVERRUN_REPORTED\x10\x9c\x01\x12(\n#ATOM_BLUETOOTH_DEVICE_RSSI_REPORTED\x10\x9d\x01\x12:\n5ATOM_BLUETOOTH_DEVICE_FAILED_CONTACT_COUNTER_REPORTED\x10\x9e\x01\x12\x32\n-ATOM_BLUETOOTH_DEVICE_TX_POWER_LEVEL_REPORTED\x10\x9f\x01\x12(\n#ATOM_BLUETOOTH_HCI_TIMEOUT_REPORTED\x10\xa0\x01\x12+\n&ATOM_BLUETOOTH_QUALITY_REPORT_REPORTED\x10\xa1\x01\x12(\n#ATOM_BLUETOOTH_DEVICE_INFO_REPORTED\x10\xa2\x01\x12\x30\n+ATOM_BLUETOOTH_REMOTE_VERSION_INFO_REPORTED\x10\xa3\x01\x12*\n%ATOM_BLUETOOTH_SDP_ATTRIBUTE_REPORTED\x10\xa4\x01\x12&\n!ATOM_BLUETOOTH_BOND_STATE_CHANGED\x10\xa5\x01\x12\x32\n-ATOM_BLUETOOTH_CLASSIC_PAIRING_EVENT_REPORTED\x10\xa6\x01\x12.\n)ATOM_BLUETOOTH_SMP_PAIRING_EVENT_REPORTED\x10\xa7\x01\x12+\n&ATOM_SCREEN_TIMEOUT_EXTENSION_REPORTED\x10\xa8\x01\x12\x1c\n\x17\x41TOM_PROCESS_START_TIME\x10\xa9\x01\x12\x32\n-ATOM_PERMISSION_GRANT_REQUEST_RESULT_REPORTED\x10\xaa\x01\x12\x33\n.ATOM_BLUETOOTH_SOCKET_CONNECTION_STATE_CHANGED\x10\xab\x01\x12)\n$ATOM_DEVICE_IDENTIFIER_ACCESS_DENIED\x10\xac\x01\x12)\n$ATOM_BUBBLE_DEVELOPER_ERROR_REPORTED\x10\xad\x01\x12\'\n\"ATOM_ASSIST_GESTURE_STAGE_REPORTED\x10\xae\x01\x12*\n%ATOM_ASSIST_GESTURE_FEEDBACK_REPORTED\x10\xaf\x01\x12*\n%ATOM_ASSIST_GESTURE_PROGRESS_REPORTED\x10\xb0\x01\x12\"\n\x1d\x41TOM_TOUCH_GESTURE_CLASSIFIED\x10\xb1\x01\x12\x19\n\x14\x41TOM_HIDDEN_API_USED\x10\xb2\x01\x12\x1a\n\x15\x41TOM_STYLE_UI_CHANGED\x10\xb3\x01\x12\'\n\"ATOM_PRIVACY_INDICATORS_INTERACTED\x10\xb4\x01\x12\x32\n-ATOM_APP_INSTALL_ON_EXTERNAL_STORAGE_REPORTED\x10\xb5\x01\x12 \n\x1b\x41TOM_NETWORK_STACK_REPORTED\x10\xb6\x01\x12$\n\x1f\x41TOM_APP_MOVED_STORAGE_REPORTED\x10\xb7\x01\x12\x1c\n\x17\x41TOM_BIOMETRIC_ENROLLED\x10\xb8\x01\x12)\n$ATOM_SYSTEM_SERVER_WATCHDOG_OCCURRED\x10\xb9\x01\x12\x1d\n\x18\x41TOM_TOMB_STONE_OCCURRED\x10\xba\x01\x12,\n\'ATOM_BLUETOOTH_CLASS_OF_DEVICE_REPORTED\x10\xbb\x01\x12%\n ATOM_INTELLIGENCE_EVENT_REPORTED\x10\xbc\x01\x12\x33\n.ATOM_THERMAL_THROTTLING_SEVERITY_STATE_CHANGED\x10\xbd\x01\x12&\n!ATOM_ROLE_REQUEST_RESULT_REPORTED\x10\xbe\x01\x12+\n&ATOM_MEDIAMETRICS_AUDIOPOLICY_REPORTED\x10\xbf\x01\x12+\n&ATOM_MEDIAMETRICS_AUDIORECORD_REPORTED\x10\xc0\x01\x12+\n&ATOM_MEDIAMETRICS_AUDIOTHREAD_REPORTED\x10\xc1\x01\x12*\n%ATOM_MEDIAMETRICS_AUDIOTRACK_REPORTED\x10\xc2\x01\x12%\n ATOM_MEDIAMETRICS_CODEC_REPORTED\x10\xc3\x01\x12,\n\'ATOM_MEDIAMETRICS_DRM_WIDEVINE_REPORTED\x10\xc4\x01\x12)\n$ATOM_MEDIAMETRICS_EXTRACTOR_REPORTED\x10\xc5\x01\x12(\n#ATOM_MEDIAMETRICS_MEDIADRM_REPORTED\x10\xc6\x01\x12(\n#ATOM_MEDIAMETRICS_NUPLAYER_REPORTED\x10\xc7\x01\x12(\n#ATOM_MEDIAMETRICS_RECORDER_REPORTED\x10\xc8\x01\x12*\n%ATOM_MEDIAMETRICS_DRMMANAGER_REPORTED\x10\xc9\x01\x12!\n\x1c\x41TOM_CAR_POWER_STATE_CHANGED\x10\xcb\x01\x12\x1a\n\x15\x41TOM_GARAGE_MODE_INFO\x10\xcc\x01\x12\x1c\n\x17\x41TOM_TEST_ATOM_REPORTED\x10\xcd\x01\x12\x32\n-ATOM_CONTENT_CAPTURE_CALLER_MISMATCH_REPORTED\x10\xce\x01\x12(\n#ATOM_CONTENT_CAPTURE_SERVICE_EVENTS\x10\xcf\x01\x12(\n#ATOM_CONTENT_CAPTURE_SESSION_EVENTS\x10\xd0\x01\x12!\n\x1c\x41TOM_CONTENT_CAPTURE_FLUSHED\x10\xd1\x01\x12-\n(ATOM_LOCATION_MANAGER_API_USAGE_REPORTED\x10\xd2\x01\x12\x35\n0ATOM_REVIEW_PERMISSIONS_FRAGMENT_RESULT_REPORTED\x10\xd3\x01\x12,\n\'ATOM_RUNTIME_PERMISSIONS_UPGRADE_RESULT\x10\xd4\x01\x12\x33\n.ATOM_GRANT_PERMISSIONS_ACTIVITY_BUTTON_ACTIONS\x10\xd5\x01\x12\x33\n.ATOM_LOCATION_ACCESS_CHECK_NOTIFICATION_ACTION\x10\xd6\x01\x12\x31\n,ATOM_APP_PERMISSION_FRAGMENT_ACTION_REPORTED\x10\xd7\x01\x12(\n#ATOM_APP_PERMISSION_FRAGMENT_VIEWED\x10\xd8\x01\x12)\n$ATOM_APP_PERMISSIONS_FRAGMENT_VIEWED\x10\xd9\x01\x12)\n$ATOM_PERMISSION_APPS_FRAGMENT_VIEWED\x10\xda\x01\x12\x1e\n\x19\x41TOM_TEXT_SELECTION_EVENT\x10\xdb\x01\x12\x1c\n\x17\x41TOM_TEXT_LINKIFY_EVENT\x10\xdc\x01\x12$\n\x1f\x41TOM_CONVERSATION_ACTIONS_EVENT\x10\xdd\x01\x12\"\n\x1d\x41TOM_LANGUAGE_DETECTION_EVENT\x10\xde\x01\x12&\n!ATOM_EXCLUSION_RECT_STATE_CHANGED\x10\xdf\x01\x12(\n#ATOM_BACK_GESTURE_REPORTED_REPORTED\x10\xe0\x01\x12/\n*ATOM_UPDATE_ENGINE_UPDATE_ATTEMPT_REPORTED\x10\xe1\x01\x12\x32\n-ATOM_UPDATE_ENGINE_SUCCESSFUL_UPDATE_REPORTED\x10\xe2\x01\x12\x1d\n\x18\x41TOM_CAMERA_ACTION_EVENT\x10\xe3\x01\x12+\n&ATOM_APP_COMPATIBILITY_CHANGE_REPORTED\x10\xe4\x01\x12\x1b\n\x16\x41TOM_PERFETTO_UPLOADED\x10\xe5\x01\x12-\n(ATOM_VMS_CLIENT_CONNECTION_STATE_CHANGED\x10\xe6\x01\x12&\n!ATOM_MEDIA_PROVIDER_SCAN_OCCURRED\x10\xe9\x01\x12\x1f\n\x1a\x41TOM_MEDIA_CONTENT_DELETED\x10\xea\x01\x12-\n(ATOM_MEDIA_PROVIDER_PERMISSION_REQUESTED\x10\xeb\x01\x12\'\n\"ATOM_MEDIA_PROVIDER_SCHEMA_CHANGED\x10\xec\x01\x12\x32\n-ATOM_MEDIA_PROVIDER_IDLE_MAINTENANCE_FINISHED\x10\xed\x01\x12)\n$ATOM_REBOOT_ESCROW_RECOVERY_REPORTED\x10\xee\x01\x12+\n&ATOM_BOOT_TIME_EVENT_DURATION_REPORTED\x10\xef\x01\x12/\n*ATOM_BOOT_TIME_EVENT_ELAPSED_TIME_REPORTED\x10\xf0\x01\x12+\n&ATOM_BOOT_TIME_EVENT_UTC_TIME_REPORTED\x10\xf1\x01\x12-\n(ATOM_BOOT_TIME_EVENT_ERROR_CODE_REPORTED\x10\xf2\x01\x12#\n\x1e\x41TOM_USERSPACE_REBOOT_REPORTED\x10\xf3\x01\x12\x1f\n\x1a\x41TOM_NOTIFICATION_REPORTED\x10\xf4\x01\x12%\n ATOM_NOTIFICATION_PANEL_REPORTED\x10\xf5\x01\x12\'\n\"ATOM_NOTIFICATION_CHANNEL_MODIFIED\x10\xf6\x01\x12)\n$ATOM_INTEGRITY_CHECK_RESULT_REPORTED\x10\xf7\x01\x12 \n\x1b\x41TOM_INTEGRITY_RULES_PUSHED\x10\xf8\x01\x12\x1d\n\x18\x41TOM_CB_MESSAGE_REPORTED\x10\xf9\x01\x12\x1a\n\x15\x41TOM_CB_MESSAGE_ERROR\x10\xfa\x01\x12#\n\x1e\x41TOM_WIFI_HEALTH_STAT_REPORTED\x10\xfb\x01\x12$\n\x1f\x41TOM_WIFI_FAILURE_STAT_REPORTED\x10\xfc\x01\x12)\n$ATOM_WIFI_CONNECTION_RESULT_REPORTED\x10\xfd\x01\x12\x1c\n\x17\x41TOM_APP_FREEZE_CHANGED\x10\xfe\x01\x12!\n\x1c\x41TOM_SNAPSHOT_MERGE_REPORTED\x10\xff\x01\x12\x31\n,ATOM_FOREGROUND_SERVICE_APP_OP_SESSION_ENDED\x10\x80\x02\x12\x1f\n\x1a\x41TOM_DISPLAY_JANK_REPORTED\x10\x81\x02\x12$\n\x1f\x41TOM_APP_STANDBY_BUCKET_CHANGED\x10\x82\x02\x12\x1c\n\x17\x41TOM_SHARESHEET_STARTED\x10\x83\x02\x12\x1a\n\x15\x41TOM_RANKING_SELECTED\x10\x84\x02\x12\"\n\x1d\x41TOM_TVSETTINGS_UI_INTERACTED\x10\x85\x02\x12\x1b\n\x16\x41TOM_LAUNCHER_SNAPSHOT\x10\x86\x02\x12\'\n\"ATOM_PACKAGE_INSTALLER_V2_REPORTED\x10\x87\x02\x12)\n$ATOM_USER_LIFECYCLE_JOURNEY_REPORTED\x10\x88\x02\x12\'\n\"ATOM_USER_LIFECYCLE_EVENT_OCCURRED\x10\x89\x02\x12)\n$ATOM_ACCESSIBILITY_SHORTCUT_REPORTED\x10\x8a\x02\x12(\n#ATOM_ACCESSIBILITY_SERVICE_REPORTED\x10\x8b\x02\x12(\n#ATOM_DOCS_UI_DRAG_AND_DROP_REPORTED\x10\x8c\x02\x12\"\n\x1d\x41TOM_APP_USAGE_EVENT_OCCURRED\x10\x8d\x02\x12*\n%ATOM_AUTO_REVOKE_NOTIFICATION_CLICKED\x10\x8e\x02\x12)\n$ATOM_AUTO_REVOKE_FRAGMENT_APP_VIEWED\x10\x8f\x02\x12&\n!ATOM_AUTO_REVOKED_APP_INTERACTION\x10\x90\x02\x12;\n6ATOM_APP_PERMISSION_GROUPS_FRAGMENT_AUTO_REVOKE_ACTION\x10\x91\x02\x12\"\n\x1d\x41TOM_EVS_USAGE_STATS_REPORTED\x10\x92\x02\x12)\n$ATOM_AUDIO_POWER_USAGE_DATA_REPORTED\x10\x93\x02\x12 \n\x1b\x41TOM_TV_TUNER_STATE_CHANGED\x10\x94\x02\x12(\n#ATOM_MEDIAOUTPUT_OP_SWITCH_REPORTED\x10\x95\x02\x12\x1d\n\x18\x41TOM_CB_MESSAGE_FILTERED\x10\x96\x02\x12\x1d\n\x18\x41TOM_TV_TUNER_DVR_STATUS\x10\x97\x02\x12$\n\x1f\x41TOM_TV_CAS_SESSION_OPEN_STATUS\x10\x98\x02\x12\'\n\"ATOM_ASSISTANT_INVOCATION_REPORTED\x10\x99\x02\x12\x1f\n\x1a\x41TOM_DISPLAY_WAKE_REPORTED\x10\x9a\x02\x12\x33\n.ATOM_CAR_USER_HAL_MODIFY_USER_REQUEST_REPORTED\x10\x9b\x02\x12\x34\n/ATOM_CAR_USER_HAL_MODIFY_USER_RESPONSE_REPORTED\x10\x9c\x02\x12\x34\n/ATOM_CAR_USER_HAL_POST_SWITCH_RESPONSE_REPORTED\x10\x9d\x02\x12\x39\n4ATOM_CAR_USER_HAL_INITIAL_USER_INFO_REQUEST_REPORTED\x10\x9e\x02\x12:\n5ATOM_CAR_USER_HAL_INITIAL_USER_INFO_RESPONSE_REPORTED\x10\x9f\x02\x12\x38\n3ATOM_CAR_USER_HAL_USER_ASSOCIATION_REQUEST_REPORTED\x10\xa0\x02\x12=\n8ATOM_CAR_USER_HAL_SET_USER_ASSOCIATION_RESPONSE_REPORTED\x10\xa1\x02\x12*\n%ATOM_NETWORK_IP_PROVISIONING_REPORTED\x10\xa2\x02\x12%\n ATOM_NETWORK_DHCP_RENEW_REPORTED\x10\xa3\x02\x12%\n ATOM_NETWORK_VALIDATION_REPORTED\x10\xa4\x02\x12&\n!ATOM_NETWORK_STACK_QUIRK_REPORTED\x10\xa5\x02\x12\x36\n1ATOM_MEDIAMETRICS_AUDIORECORDDEVICEUSAGE_REPORTED\x10\xa6\x02\x12\x36\n1ATOM_MEDIAMETRICS_AUDIOTHREADDEVICEUSAGE_REPORTED\x10\xa7\x02\x12\x35\n0ATOM_MEDIAMETRICS_AUDIOTRACKDEVICEUSAGE_REPORTED\x10\xa8\x02\x12\x35\n0ATOM_MEDIAMETRICS_AUDIODEVICECONNECTION_REPORTED\x10\xa9\x02\x12\x18\n\x13\x41TOM_BLOB_COMMITTED\x10\xaa\x02\x12\x15\n\x10\x41TOM_BLOB_LEASED\x10\xab\x02\x12\x15\n\x10\x41TOM_BLOB_OPENED\x10\xac\x02\x12+\n&ATOM_CONTACTS_PROVIDER_STATUS_REPORTED\x10\xad\x02\x12%\n ATOM_KEYSTORE_KEY_EVENT_REPORTED\x10\xae\x02\x12$\n\x1f\x41TOM_NETWORK_TETHERING_REPORTED\x10\xaf\x02\x12\x1c\n\x17\x41TOM_IME_TOUCH_REPORTED\x10\xb0\x02\x12,\n\'ATOM_UI_INTERACTION_FRAME_INFO_REPORTED\x10\xb1\x02\x12$\n\x1f\x41TOM_UI_ACTION_LATENCY_REPORTED\x10\xb2\x02\x12\"\n\x1d\x41TOM_WIFI_DISCONNECT_REPORTED\x10\xb3\x02\x12\'\n\"ATOM_WIFI_CONNECTION_STATE_CHANGED\x10\xb4\x02\x12(\n#ATOM_HDMI_CEC_ACTIVE_SOURCE_CHANGED\x10\xb5\x02\x12#\n\x1e\x41TOM_HDMI_CEC_MESSAGE_REPORTED\x10\xb6\x02\x12\x17\n\x12\x41TOM_AIRPLANE_MODE\x10\xb7\x02\x12\x17\n\x12\x41TOM_MODEM_RESTART\x10\xb8\x02\x12&\n!ATOM_CARRIER_ID_MISMATCH_REPORTED\x10\xb9\x02\x12\"\n\x1d\x41TOM_CARRIER_ID_TABLE_UPDATED\x10\xba\x02\x12&\n!ATOM_DATA_STALL_RECOVERY_REPORTED\x10\xbb\x02\x12+\n&ATOM_MEDIAMETRICS_MEDIAPARSER_REPORTED\x10\xbc\x02\x12 \n\x1b\x41TOM_TLS_HANDSHAKE_REPORTED\x10\xbd\x02\x12,\n\'ATOM_TEXT_CLASSIFIER_API_USAGE_REPORTED\x10\xbe\x02\x12*\n%ATOM_CAR_WATCHDOG_KILL_STATS_REPORTED\x10\xbf\x02\x12(\n#ATOM_MEDIAMETRICS_PLAYBACK_REPORTED\x10\xc0\x02\x12$\n\x1f\x41TOM_MEDIA_NETWORK_INFO_CHANGED\x10\xc1\x02\x12&\n!ATOM_MEDIA_PLAYBACK_STATE_CHANGED\x10\xc2\x02\x12\'\n\"ATOM_MEDIA_PLAYBACK_ERROR_REPORTED\x10\xc3\x02\x12&\n!ATOM_MEDIA_PLAYBACK_TRACK_CHANGED\x10\xc4\x02\x12\x1c\n\x17\x41TOM_WIFI_SCAN_REPORTED\x10\xc5\x02\x12 \n\x1b\x41TOM_WIFI_PNO_SCAN_REPORTED\x10\xc6\x02\x12\x1a\n\x15\x41TOM_TIF_TUNE_CHANGED\x10\xc7\x02\x12\x1e\n\x19\x41TOM_AUTO_ROTATE_REPORTED\x10\xc8\x02\x12\x1a\n\x15\x41TOM_PERFETTO_TRIGGER\x10\xc9\x02\x12\x1a\n\x15\x41TOM_TRANSCODING_DATA\x10\xca\x02\x12)\n$ATOM_IMS_SERVICE_ENTITLEMENT_UPDATED\x10\xcb\x02\x12\x18\n\x13\x41TOM_DEVICE_ROTATED\x10\xcd\x02\x12(\n#ATOM_SIM_SPECIFIC_SETTINGS_RESTORED\x10\xce\x02\x12+\n&ATOM_TEXT_CLASSIFIER_DOWNLOAD_REPORTED\x10\xcf\x02\x12\x1b\n\x16\x41TOM_PIN_STORAGE_EVENT\x10\xd0\x02\x12\x1c\n\x17\x41TOM_FACE_DOWN_REPORTED\x10\xd1\x02\x12-\n(ATOM_BLUETOOTH_HAL_CRASH_REASON_REPORTED\x10\xd2\x02\x12,\n\'ATOM_REBOOT_ESCROW_PREPARATION_REPORTED\x10\xd3\x02\x12-\n(ATOM_REBOOT_ESCROW_LSKF_CAPTURE_REPORTED\x10\xd4\x02\x12\'\n\"ATOM_REBOOT_ESCROW_REBOOT_REPORTED\x10\xd5\x02\x12!\n\x1c\x41TOM_BINDER_LATENCY_REPORTED\x10\xd6\x02\x12,\n\'ATOM_MEDIAMETRICS_AAUDIOSTREAM_REPORTED\x10\xd7\x02\x12)\n$ATOM_MEDIA_TRANSCODING_SESSION_ENDED\x10\xd8\x02\x12&\n!ATOM_MAGNIFICATION_USAGE_REPORTED\x10\xd9\x02\x12\x31\n,ATOM_MAGNIFICATION_MODE_WITH_IME_ON_REPORTED\x10\xda\x02\x12(\n#ATOM_APP_SEARCH_CALL_STATS_REPORTED\x10\xdb\x02\x12\x30\n+ATOM_APP_SEARCH_PUT_DOCUMENT_STATS_REPORTED\x10\xdc\x02\x12 \n\x1b\x41TOM_DEVICE_CONTROL_CHANGED\x10\xdd\x02\x12\x1e\n\x19\x41TOM_DEVICE_STATE_CHANGED\x10\xde\x02\x12 \n\x1b\x41TOM_INPUTDEVICE_REGISTERED\x10\xdf\x02\x12\"\n\x1d\x41TOM_SMARTSPACE_CARD_REPORTED\x10\xe0\x02\x12*\n%ATOM_AUTH_PROMPT_AUTHENTICATE_INVOKED\x10\xe1\x02\x12/\n*ATOM_AUTH_MANAGER_CAN_AUTHENTICATE_INVOKED\x10\xe2\x02\x12$\n\x1f\x41TOM_AUTH_ENROLL_ACTION_INVOKED\x10\xe3\x02\x12\"\n\x1d\x41TOM_AUTH_DEPRECATED_API_USED\x10\xe4\x02\x12$\n\x1f\x41TOM_UNATTENDED_REBOOT_OCCURRED\x10\xe5\x02\x12\'\n\"ATOM_LONG_REBOOT_BLOCKING_REPORTED\x10\xe6\x02\x12\x33\n.ATOM_LOCATION_TIME_ZONE_PROVIDER_STATE_CHANGED\x10\xe7\x02\x12 \n\x1b\x41TOM_FDTRACK_EVENT_OCCURRED\x10\xec\x02\x12(\n#ATOM_TIMEOUT_AUTO_EXTENDED_REPORTED\x10\xed\x02\x12\x1f\n\x1a\x41TOM_ALARM_BATCH_DELIVERED\x10\xef\x02\x12\x19\n\x14\x41TOM_ALARM_SCHEDULED\x10\xf0\x02\x12\x30\n+ATOM_CAR_WATCHDOG_IO_OVERUSE_STATS_REPORTED\x10\xf1\x02\x12.\n)ATOM_USER_LEVEL_HIBERNATION_STATE_CHANGED\x10\xf2\x02\x12.\n)ATOM_APP_SEARCH_INITIALIZE_STATS_REPORTED\x10\xf3\x02\x12)\n$ATOM_APP_SEARCH_QUERY_STATS_REPORTED\x10\xf4\x02\x12\x1a\n\x15\x41TOM_APP_PROCESS_DIED\x10\xf5\x02\x12\x32\n-ATOM_NETWORK_IP_REACHABILITY_MONITOR_REPORTED\x10\xf6\x02\x12#\n\x1e\x41TOM_SLOW_INPUT_EVENT_REPORTED\x10\xf7\x02\x12)\n$ATOM_ANR_OCCURRED_PROCESSING_STARTED\x10\xf8\x02\x12*\n%ATOM_APP_SEARCH_REMOVE_STATS_REPORTED\x10\xf9\x02\x12\x1e\n\x19\x41TOM_MEDIA_CODEC_REPORTED\x10\xfa\x02\x12/\n*ATOM_PERMISSION_USAGE_FRAGMENT_INTERACTION\x10\xfb\x02\x12(\n#ATOM_PERMISSION_DETAILS_INTERACTION\x10\xfc\x02\x12+\n&ATOM_PRIVACY_SENSOR_TOGGLE_INTERACTION\x10\xfd\x02\x12+\n&ATOM_PRIVACY_TOGGLE_DIALOG_INTERACTION\x10\xfe\x02\x12,\n\'ATOM_APP_SEARCH_OPTIMIZE_STATS_REPORTED\x10\xff\x02\x12.\n)ATOM_NON_A11Y_TOOL_SERVICE_WARNING_REPORT\x10\x80\x03\x12\"\n\x1d\x41TOM_APP_COMPAT_STATE_CHANGED\x10\x82\x03\x12\x33\n.ATOM_SIZE_COMPAT_RESTART_BUTTON_EVENT_REPORTED\x10\x83\x03\x12 \n\x1b\x41TOM_SPLITSCREEN_UI_CHANGED\x10\x84\x03\x12(\n#ATOM_NETWORK_DNS_HANDSHAKE_REPORTED\x10\x85\x03\x12%\n ATOM_BLUETOOTH_CODE_PATH_COUNTER\x10\x86\x03\x12.\n)ATOM_BLUETOOTH_LE_BATCH_SCAN_REPORT_DELAY\x10\x88\x03\x12\x30\n+ATOM_ACCESSIBILITY_FLOATING_MENU_UI_CHANGED\x10\x89\x03\x12.\n)ATOM_NEURALNETWORKS_COMPILATION_COMPLETED\x10\x8a\x03\x12,\n\'ATOM_NEURALNETWORKS_EXECUTION_COMPLETED\x10\x8b\x03\x12+\n&ATOM_NEURALNETWORKS_COMPILATION_FAILED\x10\x8c\x03\x12)\n$ATOM_NEURALNETWORKS_EXECUTION_FAILED\x10\x8d\x03\x12\x1c\n\x17\x41TOM_CONTEXT_HUB_BOOTED\x10\x8e\x03\x12\x1f\n\x1a\x41TOM_CONTEXT_HUB_RESTARTED\x10\x8f\x03\x12\x36\n1ATOM_CONTEXT_HUB_LOADED_NANOAPP_SNAPSHOT_REPORTED\x10\x90\x03\x12\'\n\"ATOM_CHRE_CODE_DOWNLOAD_TRANSACTED\x10\x91\x03\x12\x1c\n\x17\x41TOM_UWB_SESSION_INITED\x10\x92\x03\x12\x1c\n\x17\x41TOM_UWB_SESSION_CLOSED\x10\x93\x03\x12$\n\x1f\x41TOM_UWB_FIRST_RANGING_RECEIVED\x10\x94\x03\x12*\n%ATOM_UWB_RANGING_MEASUREMENT_RECEIVED\x10\x95\x03\x12\x31\n,ATOM_TEXT_CLASSIFIER_DOWNLOAD_WORK_SCHEDULED\x10\x96\x03\x12\x31\n,ATOM_TEXT_CLASSIFIER_DOWNLOAD_WORK_COMPLETED\x10\x97\x03\x12\x1b\n\x16\x41TOM_CLIPBOARD_CLEARED\x10\x98\x03\x12\x1f\n\x1a\x41TOM_VM_CREATION_REQUESTED\x10\x99\x03\x12*\n%ATOM_NEARBY_DEVICE_SCAN_STATE_CHANGED\x10\x9a\x03\x12%\n ATOM_APPLICATION_LOCALES_CHANGED\x10\x9c\x03\x12\x30\n+ATOM_MEDIAMETRICS_AUDIOTRACKSTATUS_REPORTED\x10\x9d\x03\x12&\n!ATOM_FOLD_STATE_DURATION_REPORTED\x10\x9e\x03\x12>\n9ATOM_LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED\x10\x9f\x03\x12#\n\x1e\x41TOM_DISPLAY_HBM_STATE_CHANGED\x10\xa0\x03\x12(\n#ATOM_DISPLAY_HBM_BRIGHTNESS_CHANGED\x10\xa1\x03\x12,\n\'ATOM_PERSISTENT_URI_PERMISSIONS_FLUSHED\x10\xa2\x03\x12\x35\n0ATOM_EARLY_BOOT_COMP_OS_ARTIFACTS_CHECK_REPORTED\x10\xa3\x03\x12 \n\x1b\x41TOM_VBMETA_DIGEST_REPORTED\x10\xa4\x03\x12\x1c\n\x17\x41TOM_APEX_INFO_GATHERED\x10\xa5\x03\x12\x1b\n\x16\x41TOM_PVM_INFO_GATHERED\x10\xa6\x03\x12%\n ATOM_WEAR_SETTINGS_UI_INTERACTED\x10\xa7\x03\x12&\n!ATOM_TRACING_SERVICE_REPORT_EVENT\x10\xa8\x03\x12\x31\n,ATOM_MEDIAMETRICS_AUDIORECORDSTATUS_REPORTED\x10\xa9\x03\x12\x1a\n\x15\x41TOM_LAUNCHER_LATENCY\x10\xaa\x03\x12\x1f\n\x1a\x41TOM_DROPBOX_ENTRY_DROPPED\x10\xab\x03\x12&\n!ATOM_WIFI_P2P_CONNECTION_REPORTED\x10\xac\x03\x12\x1c\n\x17\x41TOM_GAME_STATE_CHANGED\x10\xad\x03\x12+\n&ATOM_HOTWORD_DETECTOR_CREATE_REQUESTED\x10\xae\x03\x12\x38\n3ATOM_HOTWORD_DETECTION_SERVICE_INIT_RESULT_REPORTED\x10\xaf\x03\x12-\n(ATOM_HOTWORD_DETECTION_SERVICE_RESTARTED\x10\xb0\x03\x12.\n)ATOM_HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED\x10\xb1\x03\x12!\n\x1c\x41TOM_HOTWORD_DETECTOR_EVENTS\x10\xb2\x03\x12>\n9ATOM_BOOT_COMPLETED_BROADCAST_COMPLETION_LATENCY_REPORTED\x10\xb5\x03\x12\x30\n+ATOM_CONTACTS_INDEXER_UPDATE_STATS_REPORTED\x10\xb8\x03\x12*\n%ATOM_APP_BACKGROUND_RESTRICTIONS_INFO\x10\xb9\x03\x12/\n*ATOM_MMS_SMS_PROVIDER_GET_THREAD_ID_FAILED\x10\xba\x03\x12\x33\n.ATOM_MMS_SMS_DATABASE_HELPER_ON_UPGRADE_FAILED\x10\xbb\x03\x12\x35\n0ATOM_PERMISSION_REMINDER_NOTIFICATION_INTERACTED\x10\xbc\x03\x12\x30\n+ATOM_RECENT_PERMISSION_DECISIONS_INTERACTED\x10\xbd\x03\x12%\n ATOM_GNSS_PSDS_DOWNLOAD_REPORTED\x10\xbe\x03\x12.\n)ATOM_LE_AUDIO_CONNECTION_SESSION_REPORTED\x10\xbf\x03\x12-\n(ATOM_LE_AUDIO_BROADCAST_SESSION_REPORTED\x10\xc0\x03\x12!\n\x1c\x41TOM_DREAM_UI_EVENT_REPORTED\x10\xc1\x03\x12%\n ATOM_TASK_MANAGER_EVENT_REPORTED\x10\xc2\x03\x12 \n\x1b\x41TOM_CDM_ASSOCIATION_ACTION\x10\xc3\x03\x12\x46\nAATOM_MAGNIFICATION_TRIPLE_TAP_AND_HOLD_ACTIVATED_SESSION_REPORTED\x10\xc4\x03\x12\x46\nAATOM_MAGNIFICATION_FOLLOW_TYPING_FOCUS_ACTIVATED_SESSION_REPORTED\x10\xc5\x03\x12\x34\n/ATOM_ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED\x10\xc6\x03\x12+\n&ATOM_WIFI_SETUP_FAILURE_CRASH_REPORTED\x10\xc7\x03\x12#\n\x1e\x41TOM_UWB_DEVICE_ERROR_REPORTED\x10\xc8\x03\x12(\n#ATOM_ISOLATED_COMPILATION_SCHEDULED\x10\xc9\x03\x12$\n\x1f\x41TOM_ISOLATED_COMPILATION_ENDED\x10\xca\x03\x12\x36\n1ATOM_ONS_OPPORTUNISTIC_ESIM_PROVISIONING_COMPLETE\x10\xcb\x03\x12-\n(ATOM_SYSTEM_SERVER_PRE_WATCHDOG_OCCURRED\x10\xcc\x03\x12$\n\x1f\x41TOM_TELEPHONY_ANOMALY_DETECTED\x10\xcd\x03\x12$\n\x1f\x41TOM_LETTERBOX_POSITION_CHANGED\x10\xce\x03\x12)\n$ATOM_REMOTE_KEY_PROVISIONING_ATTEMPT\x10\xcf\x03\x12.\n)ATOM_REMOTE_KEY_PROVISIONING_NETWORK_INFO\x10\xd0\x03\x12(\n#ATOM_REMOTE_KEY_PROVISIONING_TIMING\x10\xd1\x03\x12+\n&ATOM_MEDIAOUTPUT_OP_INTERACTION_REPORT\x10\xd2\x03\x12!\n\x1c\x41TOM_SYNC_EXEMPTION_OCCURRED\x10\xd4\x03\x12.\n)ATOM_AUTOFILL_PRESENTATION_EVENT_REPORTED\x10\xd5\x03\x12\x1c\n\x17\x41TOM_DOCK_STATE_CHANGED\x10\xd6\x03\x12\'\n\"ATOM_SAFETY_SOURCE_STATE_COLLECTED\x10\xd7\x03\x12-\n(ATOM_SAFETY_CENTER_SYSTEM_EVENT_REPORTED\x10\xd8\x03\x12,\n\'ATOM_SAFETY_CENTER_INTERACTION_REPORTED\x10\xd9\x03\x12+\n&ATOM_SETTINGS_PROVIDER_SETTING_CHANGED\x10\xda\x03\x12+\n&ATOM_BROADCAST_DELIVERY_EVENT_REPORTED\x10\xdb\x03\x12(\n#ATOM_SERVICE_REQUEST_EVENT_REPORTED\x10\xdc\x03\x12-\n(ATOM_PROVIDER_ACQUISITION_EVENT_REPORTED\x10\xdd\x03\x12(\n#ATOM_BLUETOOTH_DEVICE_NAME_REPORTED\x10\xde\x03\x12\x1b\n\x16\x41TOM_CB_CONFIG_UPDATED\x10\xdf\x03\x12\"\n\x1d\x41TOM_CB_MODULE_ERROR_REPORTED\x10\xe0\x03\x12$\n\x1f\x41TOM_CB_SERVICE_FEATURE_CHANGED\x10\xe1\x03\x12%\n ATOM_CB_RECEIVER_FEATURE_CHANGED\x10\xe2\x03\x12\x31\n,ATOM_PRIVACY_SIGNAL_NOTIFICATION_INTERACTION\x10\xe4\x03\x12/\n*ATOM_PRIVACY_SIGNAL_ISSUE_CARD_INTERACTION\x10\xe5\x03\x12%\n ATOM_PRIVACY_SIGNALS_JOB_FAILURE\x10\xe6\x03\x12\x1c\n\x17\x41TOM_VIBRATION_REPORTED\x10\xe7\x03\x12\x1b\n\x16\x41TOM_UWB_RANGING_START\x10\xe9\x03\x12\x1a\n\x15\x41TOM_APP_COMPACTED_V2\x10\xeb\x03\x12$\n\x1f\x41TOM_DISPLAY_BRIGHTNESS_CHANGED\x10\xee\x03\x12!\n\x1c\x41TOM_ACTIVITY_ACTION_BLOCKED\x10\xef\x03\x12-\n(ATOM_NETWORK_DNS_SERVER_SUPPORT_REPORTED\x10\xf8\x03\x12\x13\n\x0e\x41TOM_VM_BOOTED\x10\xf9\x03\x12\x13\n\x0e\x41TOM_VM_EXITED\x10\xfa\x03\x12+\n&ATOM_AMBIENT_BRIGHTNESS_STATS_REPORTED\x10\xfb\x03\x12\x37\n2ATOM_MEDIAMETRICS_SPATIALIZERCAPABILITIES_REPORTED\x10\xfc\x03\x12\x38\n3ATOM_MEDIAMETRICS_SPATIALIZERDEVICEENABLED_REPORTED\x10\xfd\x03\x12\x38\n3ATOM_MEDIAMETRICS_HEADTRACKERDEVICEENABLED_REPORTED\x10\xfe\x03\x12:\n5ATOM_MEDIAMETRICS_HEADTRACKERDEVICESUPPORTED_REPORTED\x10\xff\x03\x12#\n\x1e\x41TOM_HEARING_AID_INFO_REPORTED\x10\x81\x04\x12,\n\'ATOM_DEVICE_WIDE_JOB_CONSTRAINT_CHANGED\x10\x82\x04\x12\x1e\n\x19\x41TOM_AMBIENT_MODE_CHANGED\x10\x83\x04\x12\x1e\n\x19\x41TOM_ANR_LATENCY_REPORTED\x10\x84\x04\x12\x1b\n\x16\x41TOM_RESOURCE_API_INFO\x10\x85\x04\x12(\n#ATOM_SYSTEM_DEFAULT_NETWORK_CHANGED\x10\x86\x04\x12/\n*ATOM_IWLAN_SETUP_DATA_CALL_RESULT_REPORTED\x10\x87\x04\x12\x30\n+ATOM_IWLAN_PDN_DISCONNECTED_REASON_REPORTED\x10\x88\x04\x12(\n#ATOM_AIRPLANE_MODE_SESSION_REPORTED\x10\x89\x04\x12 \n\x1b\x41TOM_VM_CPU_STATUS_REPORTED\x10\x8a\x04\x12 \n\x1b\x41TOM_VM_MEM_STATUS_REPORTED\x10\x8b\x04\x12/\n*ATOM_PACKAGE_INSTALLATION_SESSION_REPORTED\x10\x8c\x04\x12&\n!ATOM_DEFAULT_NETWORK_REMATCH_INFO\x10\x8d\x04\x12\'\n\"ATOM_NETWORK_SELECTION_PERFORMANCE\x10\x8e\x04\x12\x1e\n\x19\x41TOM_NETWORK_NSD_REPORTED\x10\x8f\x04\x12\x31\n,ATOM_BLUETOOTH_DISCONNECTION_REASON_REPORTED\x10\x91\x04\x12+\n&ATOM_BLUETOOTH_LOCAL_VERSIONS_REPORTED\x10\x92\x04\x12\x36\n1ATOM_BLUETOOTH_REMOTE_SUPPORTED_FEATURES_REPORTED\x10\x93\x04\x12\x35\n0ATOM_BLUETOOTH_LOCAL_SUPPORTED_FEATURES_REPORTED\x10\x94\x04\x12!\n\x1c\x41TOM_BLUETOOTH_GATT_APP_INFO\x10\x95\x04\x12*\n%ATOM_BRIGHTNESS_CONFIGURATION_UPDATED\x10\x96\x04\x12-\n(ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_LAUNCHED\x10\x9a\x04\x12-\n(ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FINISHED\x10\x9b\x04\x12\x38\n3ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_CONNECTION_REPORTED\x10\x9c\x04\x12:\n5ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_DEVICE_SCAN_TRIGGERED\x10\x9d\x04\x12>\n9ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FIRST_DEVICE_SCAN_LATENCY\x10\x9e\x04\x12;\n6ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_CONNECT_DEVICE_LATENCY\x10\x9f\x04\x12+\n&ATOM_PACKAGE_MANAGER_SNAPSHOT_REPORTED\x10\xa0\x04\x12:\n5ATOM_PACKAGE_MANAGER_APPS_FILTER_CACHE_BUILD_REPORTED\x10\xa1\x04\x12;\n6ATOM_PACKAGE_MANAGER_APPS_FILTER_CACHE_UPDATE_REPORTED\x10\xa2\x04\x12#\n\x1e\x41TOM_LAUNCHER_IMPRESSION_EVENT\x10\xa3\x04\x12=\n8ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_ALL_DEVICES_SCAN_LATENCY\x10\xa5\x04\x12\x1e\n\x19\x41TOM_WS_WATCH_FACE_EDITED\x10\xa7\x04\x12\x30\n+ATOM_WS_WATCH_FACE_FAVORITE_ACTION_REPORTED\x10\xa8\x04\x12+\n&ATOM_WS_WATCH_FACE_SET_ACTION_REPORTED\x10\xa9\x04\x12)\n$ATOM_PACKAGE_UNINSTALLATION_REPORTED\x10\xaa\x04\x12\x1b\n\x16\x41TOM_GAME_MODE_CHANGED\x10\xab\x04\x12)\n$ATOM_GAME_MODE_CONFIGURATION_CHANGED\x10\xac\x04\x12$\n\x1f\x41TOM_BEDTIME_MODE_STATE_CHANGED\x10\xad\x04\x12%\n ATOM_NETWORK_SLICE_SESSION_ENDED\x10\xae\x04\x12\x31\n,ATOM_NETWORK_SLICE_DAILY_DATA_USAGE_REPORTED\x10\xaf\x04\x12\x1f\n\x1a\x41TOM_NFC_TAG_TYPE_OCCURRED\x10\xb0\x04\x12#\n\x1e\x41TOM_NFC_AID_CONFLICT_OCCURRED\x10\xb1\x04\x12&\n!ATOM_NFC_READER_CONFLICT_OCCURRED\x10\xb2\x04\x12\x1e\n\x19\x41TOM_WS_TILE_LIST_CHANGED\x10\xb3\x04\x12.\n)ATOM_GET_TYPE_ACCESSED_WITHOUT_PERMISSION\x10\xb4\x04\x12*\n%ATOM_MOBILE_BUNDLED_APP_INFO_GATHERED\x10\xb6\x04\x12\x30\n+ATOM_WS_WATCH_FACE_COMPLICATION_SET_CHANGED\x10\xb7\x04\x12\x1b\n\x16\x41TOM_MEDIA_DRM_CREATED\x10\xb8\x04\x12\x1b\n\x16\x41TOM_MEDIA_DRM_ERRORED\x10\xb9\x04\x12\"\n\x1d\x41TOM_MEDIA_DRM_SESSION_OPENED\x10\xba\x04\x12\"\n\x1d\x41TOM_MEDIA_DRM_SESSION_CLOSED\x10\xbb\x04\x12\"\n\x1d\x41TOM_USER_SELECTED_RESOLUTION\x10\xbc\x04\x12&\n!ATOM_UNSAFE_INTENT_EVENT_REPORTED\x10\xbd\x04\x12+\n&ATOM_PERFORMANCE_HINT_SESSION_REPORTED\x10\xbe\x04\x12\x31\n,ATOM_MEDIAMETRICS_MIDI_DEVICE_CLOSE_REPORTED\x10\xc0\x04\x12\"\n\x1d\x41TOM_BIOMETRIC_TOUCH_REPORTED\x10\xc1\x04\x12-\n(ATOM_HOTWORD_AUDIO_EGRESS_EVENT_REPORTED\x10\xc2\x04\x12(\n#ATOM_LOCATION_ENABLED_STATE_CHANGED\x10\xc4\x04\x12\x1e\n\x19\x41TOM_IME_REQUEST_FINISHED\x10\xc5\x04\x12*\n%ATOM_USB_COMPLIANCE_WARNINGS_REPORTED\x10\xc6\x04\x12\'\n\"ATOM_APP_SUPPORTED_LOCALES_CHANGED\x10\xc7\x04\x12\x31\n,ATOM_MEDIA_PROVIDER_VOLUME_RECOVERY_REPORTED\x10\xca\x04\x12(\n#ATOM_BIOMETRIC_PROPERTIES_COLLECTED\x10\xcb\x04\x12\"\n\x1d\x41TOM_KERNEL_WAKEUP_ATTRIBUTED\x10\xcc\x04\x12!\n\x1c\x41TOM_SCREEN_STATE_CHANGED_V2\x10\xcd\x04\x12#\n\x1e\x41TOM_WS_BACKUP_ACTION_REPORTED\x10\xce\x04\x12$\n\x1f\x41TOM_WS_RESTORE_ACTION_REPORTED\x10\xcf\x04\x12*\n%ATOM_DEVICE_LOG_ACCESS_EVENT_REPORTED\x10\xd0\x04\x12\x1f\n\x1a\x41TOM_MEDIA_SESSION_UPDATED\x10\xd2\x04\x12!\n\x1c\x41TOM_WEAR_OOBE_STATE_CHANGED\x10\xd3\x04\x12!\n\x1c\x41TOM_WS_NOTIFICATION_UPDATED\x10\xd4\x04\x12\x39\n4ATOM_NETWORK_VALIDATION_FAILURE_STATS_DAILY_REPORTED\x10\xd9\x04\x12 \n\x1b\x41TOM_WS_COMPLICATION_TAPPED\x10\xda\x04\x12\"\n\x1d\x41TOM_WS_NOTIFICATION_BLOCKING\x10\x8c\x06\x12,\n\'ATOM_WS_NOTIFICATION_BRIDGEMODE_UPDATED\x10\xb6\x06\x12,\n\'ATOM_WS_NOTIFICATION_DISMISSAL_ACTIONED\x10\xb7\x06\x12\"\n\x1d\x41TOM_WS_NOTIFICATION_ACTIONED\x10\xb8\x06\x12!\n\x1c\x41TOM_WS_NOTIFICATION_LATENCY\x10\xf0\x06\x12\x1d\n\x18\x41TOM_WIFI_BYTES_TRANSFER\x10\x90N\x12&\n!ATOM_WIFI_BYTES_TRANSFER_BY_FG_BG\x10\x91N\x12\x1f\n\x1a\x41TOM_MOBILE_BYTES_TRANSFER\x10\x92N\x12(\n#ATOM_MOBILE_BYTES_TRANSFER_BY_FG_BG\x10\x93N\x12\"\n\x1d\x41TOM_BLUETOOTH_BYTES_TRANSFER\x10\x96N\x12\x19\n\x14\x41TOM_KERNEL_WAKELOCK\x10\x94N\x12\x1f\n\x1a\x41TOM_SUBSYSTEM_SLEEP_STATE\x10\x95N\x12\x1a\n\x15\x41TOM_CPU_TIME_PER_UID\x10\x99N\x12\x1f\n\x1a\x41TOM_CPU_TIME_PER_UID_FREQ\x10\x9aN\x12\x1c\n\x17\x41TOM_WIFI_ACTIVITY_INFO\x10\x9bN\x12\x1d\n\x18\x41TOM_MODEM_ACTIVITY_INFO\x10\x9cN\x12!\n\x1c\x41TOM_BLUETOOTH_ACTIVITY_INFO\x10\x97N\x12\x1e\n\x19\x41TOM_PROCESS_MEMORY_STATE\x10\x9dN\x12!\n\x1c\x41TOM_SYSTEM_ELAPSED_REALTIME\x10\x9eN\x12\x17\n\x12\x41TOM_SYSTEM_UPTIME\x10\x9fN\x12\x19\n\x14\x41TOM_CPU_ACTIVE_TIME\x10\xa0N\x12\x1a\n\x15\x41TOM_CPU_CLUSTER_TIME\x10\xa1N\x12\x14\n\x0f\x41TOM_DISK_SPACE\x10\xa2N\x12$\n\x1f\x41TOM_REMAINING_BATTERY_CAPACITY\x10\xa3N\x12\x1f\n\x1a\x41TOM_FULL_BATTERY_CAPACITY\x10\xa4N\x12\x15\n\x10\x41TOM_TEMPERATURE\x10\xa5N\x12\x16\n\x11\x41TOM_BINDER_CALLS\x10\xa6N\x12!\n\x1c\x41TOM_BINDER_CALLS_EXCEPTIONS\x10\xa7N\x12\x16\n\x11\x41TOM_LOOPER_STATS\x10\xa8N\x12\x14\n\x0f\x41TOM_DISK_STATS\x10\xa9N\x12\x19\n\x14\x41TOM_DIRECTORY_USAGE\x10\xaaN\x12\x12\n\rATOM_APP_SIZE\x10\xabN\x12\x17\n\x12\x41TOM_CATEGORY_SIZE\x10\xacN\x12\x14\n\x0f\x41TOM_PROC_STATS\x10\xadN\x12\x19\n\x14\x41TOM_BATTERY_VOLTAGE\x10\xaeN\x12#\n\x1e\x41TOM_NUM_FINGERPRINTS_ENROLLED\x10\xafN\x12\x11\n\x0c\x41TOM_DISK_IO\x10\xb0N\x12\x17\n\x12\x41TOM_POWER_PROFILE\x10\xb1N\x12\x1d\n\x18\x41TOM_PROC_STATS_PKG_PROC\x10\xb2N\x12\x1a\n\x15\x41TOM_PROCESS_CPU_TIME\x10\xb3N\x12\"\n\x1d\x41TOM_CPU_TIME_PER_THREAD_FREQ\x10\xb5N\x12%\n ATOM_ON_DEVICE_POWER_MEASUREMENT\x10\xb6N\x12%\n ATOM_DEVICE_CALCULATED_POWER_USE\x10\xb7N\x12(\n#ATOM_PROCESS_MEMORY_HIGH_WATER_MARK\x10\xbaN\x12\x17\n\x12\x41TOM_BATTERY_LEVEL\x10\xbbN\x12\x1b\n\x16\x41TOM_BUILD_INFORMATION\x10\xbcN\x12\x1d\n\x18\x41TOM_BATTERY_CYCLE_COUNT\x10\xbdN\x12\x1d\n\x18\x41TOM_DEBUG_ELAPSED_CLOCK\x10\xbeN\x12%\n ATOM_DEBUG_FAILING_ELAPSED_CLOCK\x10\xbfN\x12\x1c\n\x17\x41TOM_NUM_FACES_ENROLLED\x10\xc0N\x12\x15\n\x10\x41TOM_ROLE_HOLDER\x10\xc1N\x12$\n\x1f\x41TOM_DANGEROUS_PERMISSION_STATE\x10\xc2N\x12\x14\n\x0f\x41TOM_TRAIN_INFO\x10\xc3N\x12\x1d\n\x18\x41TOM_TIME_ZONE_DATA_INFO\x10\xc4N\x12\x1f\n\x1a\x41TOM_EXTERNAL_STORAGE_INFO\x10\xc5N\x12\x1f\n\x1a\x41TOM_GPU_STATS_GLOBAL_INFO\x10\xc6N\x12\x1c\n\x17\x41TOM_GPU_STATS_APP_INFO\x10\xc7N\x12\x1e\n\x19\x41TOM_SYSTEM_ION_HEAP_SIZE\x10\xc8N\x12\'\n\"ATOM_APPS_ON_EXTERNAL_STORAGE_INFO\x10\xc9N\x12\x17\n\x12\x41TOM_FACE_SETTINGS\x10\xcaN\x12\x18\n\x13\x41TOM_COOLING_DEVICE\x10\xcbN\x12\x11\n\x0c\x41TOM_APP_OPS\x10\xccN\x12&\n!ATOM_PROCESS_SYSTEM_ION_HEAP_SIZE\x10\xcdN\x12*\n%ATOM_SURFACEFLINGER_STATS_GLOBAL_INFO\x10\xceN\x12)\n$ATOM_SURFACEFLINGER_STATS_LAYER_INFO\x10\xcfN\x12!\n\x1c\x41TOM_PROCESS_MEMORY_SNAPSHOT\x10\xd0N\x12\x1a\n\x15\x41TOM_VMS_CLIENT_STATS\x10\xd1N\x12#\n\x1e\x41TOM_NOTIFICATION_REMOTE_VIEWS\x10\xd2N\x12,\n\'ATOM_DANGEROUS_PERMISSION_STATE_SAMPLED\x10\xd3N\x12\x18\n\x13\x41TOM_GRAPHICS_STATS\x10\xd4N\x12\x1f\n\x1a\x41TOM_RUNTIME_APP_OP_ACCESS\x10\xd5N\x12\x17\n\x12\x41TOM_ION_HEAP_SIZE\x10\xd6N\x12*\n%ATOM_PACKAGE_NOTIFICATION_PREFERENCES\x10\xd7N\x12\x32\n-ATOM_PACKAGE_NOTIFICATION_CHANNEL_PREFERENCES\x10\xd8N\x12\x38\n3ATOM_PACKAGE_NOTIFICATION_CHANNEL_GROUP_PREFERENCES\x10\xd9N\x12\x14\n\x0f\x41TOM_GNSS_STATS\x10\xdaN\x12\x1c\n\x17\x41TOM_ATTRIBUTED_APP_OPS\x10\xdbN\x12\x1c\n\x17\x41TOM_VOICE_CALL_SESSION\x10\xdcN\x12\x1e\n\x19\x41TOM_VOICE_CALL_RAT_USAGE\x10\xddN\x12\x18\n\x13\x41TOM_SIM_SLOT_STATE\x10\xdeN\x12\'\n\"ATOM_SUPPORTED_RADIO_ACCESS_FAMILY\x10\xdfN\x12\x1a\n\x15\x41TOM_SETTING_SNAPSHOT\x10\xe0N\x12\x13\n\x0e\x41TOM_BLOB_INFO\x10\xe1N\x12#\n\x1e\x41TOM_DATA_USAGE_BYTES_TRANSFER\x10\xe2N\x12+\n&ATOM_BYTES_TRANSFER_BY_TAG_AND_METERED\x10\xe3N\x12\x17\n\x12\x41TOM_DND_MODE_RULE\x10\xe4N\x12/\n*ATOM_GENERAL_EXTERNAL_STORAGE_ACCESS_STATS\x10\xe5N\x12\x16\n\x11\x41TOM_INCOMING_SMS\x10\xe6N\x12\x16\n\x11\x41TOM_OUTGOING_SMS\x10\xe7N\x12\"\n\x1d\x41TOM_CARRIER_ID_TABLE_VERSION\x10\xe8N\x12\x1b\n\x16\x41TOM_DATA_CALL_SESSION\x10\xe9N\x12 \n\x1b\x41TOM_CELLULAR_SERVICE_STATE\x10\xeaN\x12&\n!ATOM_CELLULAR_DATA_SERVICE_SWITCH\x10\xebN\x12\x17\n\x12\x41TOM_SYSTEM_MEMORY\x10\xecN\x12&\n!ATOM_IMS_REGISTRATION_TERMINATION\x10\xedN\x12 \n\x1b\x41TOM_IMS_REGISTRATION_STATS\x10\xeeN\x12#\n\x1e\x41TOM_CPU_TIME_PER_CLUSTER_FREQ\x10\xefN\x12$\n\x1f\x41TOM_CPU_CYCLES_PER_UID_CLUSTER\x10\xf0N\x12\x1d\n\x18\x41TOM_DEVICE_ROTATED_DATA\x10\xf1N\x12-\n(ATOM_CPU_CYCLES_PER_THREAD_GROUP_CLUSTER\x10\xf2N\x12!\n\x1c\x41TOM_MEDIA_DRM_ACTIVITY_INFO\x10\xf3N\x12$\n\x1f\x41TOM_OEM_MANAGED_BYTES_TRANSFER\x10\xf4N\x12\x1a\n\x15\x41TOM_GNSS_POWER_STATS\x10\xf5N\x12\"\n\x1d\x41TOM_TIME_ZONE_DETECTOR_STATE\x10\xf6N\x12!\n\x1c\x41TOM_KEYSTORE2_STORAGE_STATS\x10\xf7N\x12\x18\n\x13\x41TOM_RKP_POOL_STATS\x10\xf8N\x12\x1f\n\x1a\x41TOM_PROCESS_DMABUF_MEMORY\x10\xf9N\x12\x1c\n\x17\x41TOM_PENDING_ALARM_INFO\x10\xfaN\x12$\n\x1f\x41TOM_USER_LEVEL_HIBERNATED_APPS\x10\xfbN\x12\"\n\x1d\x41TOM_LAUNCHER_LAYOUT_SNAPSHOT\x10\xfcN\x12 \n\x1b\x41TOM_GLOBAL_HIBERNATED_APPS\x10\xfdN\x12$\n\x1f\x41TOM_INPUT_EVENT_LATENCY_SKETCH\x10\xfeN\x12*\n%ATOM_BATTERY_USAGE_STATS_BEFORE_RESET\x10\xffN\x12)\n$ATOM_BATTERY_USAGE_STATS_SINCE_RESET\x10\x80O\x12\x43\n>ATOM_BATTERY_USAGE_STATS_SINCE_RESET_USING_POWER_PROFILE_MODEL\x10\x81O\x12\'\n\"ATOM_INSTALLED_INCREMENTAL_PACKAGE\x10\x82O\x12$\n\x1f\x41TOM_TELEPHONY_NETWORK_REQUESTS\x10\x83O\x12!\n\x1c\x41TOM_APP_SEARCH_STORAGE_INFO\x10\x84O\x12\x10\n\x0b\x41TOM_VMSTAT\x10\x85O\x12\x32\n-ATOM_KEYSTORE2_KEY_CREATION_WITH_GENERAL_INFO\x10\x86O\x12/\n*ATOM_KEYSTORE2_KEY_CREATION_WITH_AUTH_INFO\x10\x87O\x12<\n7ATOM_KEYSTORE2_KEY_CREATION_WITH_PURPOSE_AND_MODES_INFO\x10\x88O\x12&\n!ATOM_KEYSTORE2_ATOM_WITH_OVERFLOW\x10\x89O\x12=\n8ATOM_KEYSTORE2_KEY_OPERATION_WITH_PURPOSE_AND_MODES_INFO\x10\x8aO\x12\x33\n.ATOM_KEYSTORE2_KEY_OPERATION_WITH_GENERAL_INFO\x10\x8bO\x12\x19\n\x14\x41TOM_RKP_ERROR_STATS\x10\x8cO\x12\x1f\n\x1a\x41TOM_KEYSTORE2_CRASH_STATS\x10\x8dO\x12\x1a\n\x15\x41TOM_VENDOR_APEX_INFO\x10\x8eO\x12&\n!ATOM_ACCESSIBILITY_SHORTCUT_STATS\x10\x8fO\x12+\n&ATOM_ACCESSIBILITY_FLOATING_MENU_STATS\x10\x90O\x12&\n!ATOM_DATA_USAGE_BYTES_TRANSFER_V2\x10\x91O\x12\x1c\n\x17\x41TOM_MEDIA_CAPABILITIES\x10\x92O\x12.\n)ATOM_CAR_WATCHDOG_SYSTEM_IO_USAGE_SUMMARY\x10\x93O\x12+\n&ATOM_CAR_WATCHDOG_UID_IO_USAGE_SUMMARY\x10\x94O\x12,\n\'ATOM_IMS_REGISTRATION_FEATURE_TAG_STATS\x10\x95O\x12\'\n\"ATOM_RCS_CLIENT_PROVISIONING_STATS\x10\x96O\x12$\n\x1f\x41TOM_RCS_ACS_PROVISIONING_STATS\x10\x97O\x12\x1c\n\x17\x41TOM_SIP_DELEGATE_STATS\x10\x98O\x12)\n$ATOM_SIP_TRANSPORT_FEATURE_TAG_STATS\x10\x99O\x12\x1e\n\x19\x41TOM_SIP_MESSAGE_RESPONSE\x10\x9aO\x12\x1f\n\x1a\x41TOM_SIP_TRANSPORT_SESSION\x10\x9bO\x12-\n(ATOM_IMS_DEDICATED_BEARER_LISTENER_EVENT\x10\x9cO\x12$\n\x1f\x41TOM_IMS_DEDICATED_BEARER_EVENT\x10\x9dO\x12-\n(ATOM_IMS_REGISTRATION_SERVICE_DESC_STATS\x10\x9eO\x12\x19\n\x14\x41TOM_UCE_EVENT_STATS\x10\x9fO\x12\x1f\n\x1a\x41TOM_PRESENCE_NOTIFY_EVENT\x10\xa0O\x12\x13\n\x0e\x41TOM_GBA_EVENT\x10\xa1O\x12\x18\n\x13\x41TOM_PER_SIM_STATUS\x10\xa2O\x12\x1a\n\x15\x41TOM_GPU_WORK_PER_UID\x10\xa3O\x12\x37\n2ATOM_PERSISTENT_URI_PERMISSIONS_AMOUNT_PER_PACKAGE\x10\xa4O\x12\x1f\n\x1a\x41TOM_SIGNED_PARTITION_INFO\x10\xa5O\x12\'\n\"ATOM_PINNED_FILE_SIZES_PER_PACKAGE\x10\xa6O\x12%\n ATOM_PENDING_INTENTS_PER_PACKAGE\x10\xa7O\x12\x13\n\x0e\x41TOM_USER_INFO\x10\xa8O\x12\'\n\"ATOM_TELEPHONY_NETWORK_REQUESTS_V2\x10\xa9O\x12%\n ATOM_DEVICE_TELEPHONY_PROPERTIES\x10\xaaO\x12.\n)ATOM_REMOTE_KEY_PROVISIONING_ERROR_COUNTS\x10\xabO\x12\x16\n\x11\x41TOM_SAFETY_STATE\x10\xacO\x12\x16\n\x11\x41TOM_INCOMING_MMS\x10\xadO\x12\x16\n\x11\x41TOM_OUTGOING_MMS\x10\xaeO\x12\x19\n\x14\x41TOM_MULTI_USER_INFO\x10\xb0O\x12\x1e\n\x19\x41TOM_NETWORK_BPF_MAP_INFO\x10\xb1O\x12!\n\x1c\x41TOM_OUTGOING_SHORT_CODE_SMS\x10\xb2O\x12#\n\x1e\x41TOM_CONNECTIVITY_STATE_SAMPLE\x10\xb3O\x12\x30\n+ATOM_NETWORK_SELECTION_REMATCH_REASONS_INFO\x10\xb4O\x12\x18\n\x13\x41TOM_GAME_MODE_INFO\x10\xb5O\x12!\n\x1c\x41TOM_GAME_MODE_CONFIGURATION\x10\xb6O\x12\x1c\n\x17\x41TOM_GAME_MODE_LISTENER\x10\xb7O\x12%\n ATOM_NETWORK_SLICE_REQUEST_COUNT\x10\xb8O\x12\x1a\n\x15\x41TOM_WS_TILE_SNAPSHOT\x10\xb9O\x12\x38\n3ATOM_WS_ACTIVE_WATCH_FACE_COMPLICATION_SET_SNAPSHOT\x10\xbaO\x12\x17\n\x12\x41TOM_PROCESS_STATE\x10\xbbO\x12\x1d\n\x18\x41TOM_PROCESS_ASSOCIATION\x10\xbcO\x12$\n\x1f\x41TOM_ADPF_SYSTEM_COMPONENT_INFO\x10\xbdO\x12!\n\x1c\x41TOM_NOTIFICATION_MEMORY_USE\x10\xbeO\x12\x1a\n\x15\x41TOM_HDR_CAPABILITIES\x10\xbfO\x12/\n*ATOM_WS_FAVOURITE_WATCH_FACE_LIST_SNAPSHOT\x10\xc0O\x12-\n(ATOM_ACCESSIBILITY_CHECK_RESULT_REPORTED\x10\x8e\x07\x12\x32\n-ATOM_ADAPTIVE_AUTH_UNLOCK_AFTER_LOCK_REPORTED\x10\xb4\x06\x12\x1f\n\x1a\x41TOM_THERMAL_STATUS_CALLED\x10\x84\x06\x12!\n\x1c\x41TOM_THERMAL_HEADROOM_CALLED\x10\x85\x06\x12,\n\'ATOM_THERMAL_HEADROOM_THRESHOLDS_CALLED\x10\x86\x06\x12\'\n\"ATOM_ADPF_HINT_SESSION_TID_CLEANUP\x10\xc7\x06\x12%\n ATOM_THERMAL_HEADROOM_THRESHOLDS\x10\xd9O\x12\x1f\n\x1a\x41TOM_ADPF_SESSION_SNAPSHOT\x10\xeaO\x12)\n$ATOM_JSSCRIPTENGINE_LATENCY_REPORTED\x10\xe3\x03\x12 \n\x1b\x41TOM_AD_SERVICES_API_CALLED\x10\xb3\x03\x12\x31\n,ATOM_AD_SERVICES_MESUREMENT_REPORTS_UPLOADED\x10\xb4\x03\x12\x39\n4ATOM_MOBILE_DATA_DOWNLOAD_FILE_GROUP_STATUS_REPORTED\x10\xea\x03\x12\x37\n2ATOM_MOBILE_DATA_DOWNLOAD_DOWNLOAD_RESULT_REPORTED\x10\xf6\x03\x12-\n(ATOM_AD_SERVICES_SETTINGS_USAGE_REPORTED\x10\xed\x03\x12+\n&ATOM_BACKGROUND_FETCH_PROCESS_REPORTED\x10\xf0\x03\x12\x31\n,ATOM_UPDATE_CUSTOM_AUDIENCE_PROCESS_REPORTED\x10\xf1\x03\x12)\n$ATOM_RUN_AD_BIDDING_PROCESS_REPORTED\x10\xf2\x03\x12)\n$ATOM_RUN_AD_SCORING_PROCESS_REPORTED\x10\xf3\x03\x12+\n&ATOM_RUN_AD_SELECTION_PROCESS_REPORTED\x10\xf4\x03\x12\x30\n+ATOM_RUN_AD_BIDDING_PER_CA_PROCESS_REPORTED\x10\xf5\x03\x12@\n;ATOM_MOBILE_DATA_DOWNLOAD_FILE_GROUP_STORAGE_STATS_REPORTED\x10\xf7\x03\x12/\n*ATOM_AD_SERVICES_MEASUREMENT_REGISTRATIONS\x10\x80\x04\x12)\n$ATOM_AD_SERVICES_GET_TOPICS_REPORTED\x10\x97\x04\x12?\n:ATOM_AD_SERVICES_EPOCH_COMPUTATION_GET_TOP_TOPICS_REPORTED\x10\x98\x04\x12;\n6ATOM_AD_SERVICES_EPOCH_COMPUTATION_CLASSIFIER_REPORTED\x10\x99\x04\x12\x35\n0ATOM_AD_SERVICES_BACK_COMPAT_GET_TOPICS_REPORTED\x10\xd6\x04\x12G\nBATOM_AD_SERVICES_BACK_COMPAT_EPOCH_COMPUTATION_CLASSIFIER_REPORTED\x10\xd7\x04\x12,\n\'ATOM_AD_SERVICES_MEASUREMENT_DEBUG_KEYS\x10\x80\x05\x12$\n\x1f\x41TOM_AD_SERVICES_ERROR_REPORTED\x10\x96\x05\x12\x38\n3ATOM_AD_SERVICES_BACKGROUND_JOBS_EXECUTION_REPORTED\x10\x97\x05\x12=\n8ATOM_AD_SERVICES_MEASUREMENT_DELAYED_SOURCE_REGISTRATION\x10\xa1\x05\x12-\n(ATOM_AD_SERVICES_MEASUREMENT_ATTRIBUTION\x10\xa2\x05\x12&\n!ATOM_AD_SERVICES_MEASUREMENT_JOBS\x10\xa3\x05\x12)\n$ATOM_AD_SERVICES_MEASUREMENT_WIPEOUT\x10\xa4\x05\x12<\n7ATOM_AD_SERVICES_MEASUREMENT_AD_ID_MATCH_FOR_DEBUG_KEYS\x10\xb7\x05\x12,\n\'ATOM_AD_SERVICES_ENROLLMENT_DATA_STORED\x10\xb9\x05\x12\x30\n+ATOM_AD_SERVICES_ENROLLMENT_FILE_DOWNLOADED\x10\xba\x05\x12(\n#ATOM_AD_SERVICES_ENROLLMENT_MATCHED\x10\xbb\x05\x12&\n!ATOM_AD_SERVICES_CONSENT_MIGRATED\x10\xbe\x05\x12\'\n\"ATOM_AD_SERVICES_ENROLLMENT_FAILED\x10\xca\x05\x12\x34\n/ATOM_AD_SERVICES_MEASUREMENT_CLICK_VERIFICATION\x10\xf4\x05\x12,\n\'ATOM_AD_SERVICES_ENCRYPTION_KEY_FETCHED\x10\xfd\x05\x12\x39\n4ATOM_AD_SERVICES_ENCRYPTION_KEY_DB_TRANSACTION_ENDED\x10\xfe\x05\x12(\n#ATOM_DESTINATION_REGISTERED_BEACONS\x10\xff\x05\x12\'\n\"ATOM_REPORT_INTERACTION_API_CALLED\x10\x80\x06\x12-\n(ATOM_INTERACTION_REPORTING_TABLE_CLEARED\x10\x81\x06\x12+\n&ATOM_APP_MANIFEST_CONFIG_HELPER_CALLED\x10\x94\x06\x12/\n*ATOM_AD_FILTERING_PROCESS_JOIN_CA_REPORTED\x10\x99\x06\x12\x34\n/ATOM_AD_FILTERING_PROCESS_AD_SELECTION_REPORTED\x10\x9a\x06\x12/\n*ATOM_AD_COUNTER_HISTOGRAM_UPDATER_REPORTED\x10\x9b\x06\x12 \n\x1b\x41TOM_SIGNATURE_VERIFICATION\x10\xa7\x06\x12\x34\n/ATOM_K_ANON_IMMEDIATE_SIGN_JOIN_STATUS_REPORTED\x10\xa8\x06\x12/\n*ATOM_K_ANON_BACKGROUND_JOB_STATUS_REPORTED\x10\xa9\x06\x12+\n&ATOM_K_ANON_INITIALIZE_STATUS_REPORTED\x10\xaa\x06\x12%\n ATOM_K_ANON_SIGN_STATUS_REPORTED\x10\xab\x06\x12%\n ATOM_K_ANON_JOIN_STATUS_REPORTED\x10\xac\x06\x12\x30\n+ATOM_K_ANON_KEY_ATTESTATION_STATUS_REPORTED\x10\xad\x06\x12*\n%ATOM_GET_AD_SELECTION_DATA_API_CALLED\x10\xae\x06\x12\x35\n0ATOM_GET_AD_SELECTION_DATA_BUYER_INPUT_GENERATED\x10\xaf\x06\x12,\n\'ATOM_BACKGROUND_JOB_SCHEDULING_REPORTED\x10\xc2\x06\x12\x36\n1ATOM_TOPICS_ENCRYPTION_EPOCH_COMPUTATION_REPORTED\x10\xc8\x06\x12/\n*ATOM_TOPICS_ENCRYPTION_GET_TOPICS_REPORTED\x10\xc9\x06\x12)\n$ATOM_ADSERVICES_SHELL_COMMAND_CALLED\x10\xca\x06\x12#\n\x1e\x41TOM_UPDATE_SIGNALS_API_CALLED\x10\xcb\x06\x12\x1a\n\x15\x41TOM_ENCODING_JOB_RUN\x10\xcc\x06\x12\x1b\n\x16\x41TOM_ENCODING_JS_FETCH\x10\xcd\x06\x12\x1f\n\x1a\x41TOM_ENCODING_JS_EXECUTION\x10\xce\x06\x12,\n\'ATOM_PERSIST_AD_SELECTION_RESULT_CALLED\x10\xcf\x06\x12)\n$ATOM_SERVER_AUCTION_KEY_FETCH_CALLED\x10\xd0\x06\x12\x35\n0ATOM_SERVER_AUCTION_BACKGROUND_KEY_FETCH_ENABLED\x10\xd1\x06\x12:\n5ATOM_AD_SERVICES_MEASUREMENT_PROCESS_ODP_REGISTRATION\x10\xe0\x06\x12<\n7ATOM_AD_SERVICES_MEASUREMENT_NOTIFY_REGISTRATION_TO_ODP\x10\xe1\x06\x12-\n(ATOM_SELECT_ADS_FROM_OUTCOMES_API_CALLED\x10\xec\x06\x12&\n!ATOM_REPORT_IMPRESSION_API_CALLED\x10\xed\x06\x12\x32\n-ATOM_AD_SERVICES_ENROLLMENT_TRANSACTION_STATS\x10\xf5\x06\x12\x32\n-ATOM_AD_SERVICES_COBALT_LOGGER_EVENT_REPORTED\x10\x86\x07\x12\x38\n3ATOM_AD_SERVICES_COBALT_PERIODIC_JOB_EVENT_REPORTED\x10\x87\x07\x12)\n$ATOM_UPDATE_SIGNALS_PROCESS_REPORTED\x10\x89\x07\x12\x34\n/ATOM_TOPICS_SCHEDULE_EPOCH_JOB_SETTING_REPORTED\x10\xa2\x07\x12&\n!ATOM_AI_WALLPAPERS_BUTTON_PRESSED\x10\xc2\x05\x12)\n$ATOM_AI_WALLPAPERS_TEMPLATE_SELECTED\x10\xc3\x05\x12%\n ATOM_AI_WALLPAPERS_TERM_SELECTED\x10\xc4\x05\x12%\n ATOM_AI_WALLPAPERS_WALLPAPER_SET\x10\xc5\x05\x12\'\n\"ATOM_AI_WALLPAPERS_SESSION_SUMMARY\x10\xc6\x05\x12%\n ATOM_APEX_INSTALLATION_REQUESTED\x10\xdc\x05\x12\"\n\x1d\x41TOM_APEX_INSTALLATION_STAGED\x10\xdd\x05\x12!\n\x1c\x41TOM_APEX_INSTALLATION_ENDED\x10\xde\x05\x12.\n)ATOM_APP_SEARCH_SET_SCHEMA_STATS_REPORTED\x10\x81\x03\x12\x34\n/ATOM_APP_SEARCH_SCHEMA_MIGRATION_STATS_REPORTED\x10\xc3\x04\x12\x37\n2ATOM_APP_SEARCH_USAGE_SEARCH_INTENT_STATS_REPORTED\x10\xb9\x06\x12\x41\n<ATOM_APP_SEARCH_USAGE_SEARCH_INTENT_RAW_QUERY_STATS_REPORTED\x10\xba\x06\x12\x30\n+ATOM_APP_SEARCH_APPS_INDEXER_STATS_REPORTED\x10\x8d\x07\x12\x1c\n\x17\x41TOM_ART_DATUM_REPORTED\x10\xcc\x02\x12#\n\x1e\x41TOM_ART_DEVICE_DATUM_REPORTED\x10\xa6\x04\x12\"\n\x1d\x41TOM_ART_DATUM_DELTA_REPORTED\x10\xb5\x04\x12\x1e\n\x19\x41TOM_ART_DEX2OAT_REPORTED\x10\xa1\x07\x12\x1b\n\x16\x41TOM_ART_DEVICE_STATUS\x10\xddO\x12%\n ATOM_BACKGROUND_DEXOPT_JOB_ENDED\x10\xd3\x03\x12$\n\x1f\x41TOM_PREREBOOT_DEXOPT_JOB_ENDED\x10\xf3\x06\x12\x1c\n\x17\x41TOM_ODREFRESH_REPORTED\x10\xee\x02\x12\x19\n\x14\x41TOM_ODSIGN_REPORTED\x10\xa4\x04\x12$\n\x1f\x41TOM_AUTOFILL_UI_EVENT_REPORTED\x10\xdb\x04\x12(\n#ATOM_AUTOFILL_FILL_REQUEST_REPORTED\x10\xdc\x04\x12)\n$ATOM_AUTOFILL_FILL_RESPONSE_REPORTED\x10\xdd\x04\x12&\n!ATOM_AUTOFILL_SAVE_EVENT_REPORTED\x10\xde\x04\x12$\n\x1f\x41TOM_AUTOFILL_SESSION_COMMITTED\x10\xdf\x04\x12\x36\n1ATOM_AUTOFILL_FIELD_CLASSIFICATION_EVENT_REPORTED\x10\x93\x05\x12$\n\x1f\x41TOM_CAR_RECENTS_EVENT_REPORTED\x10\x82\x06\x12&\n!ATOM_CAR_CALM_MODE_EVENT_REPORTED\x10\x9d\x06\x12*\n%ATOM_CAR_WAKEUP_FROM_SUSPEND_REPORTED\x10\xd4\x06\x12\x1c\n\x17\x41TOM_PLUGIN_INITIALIZED\x10\x8f\x05\x12/\n*ATOM_BLUETOOTH_HASHED_DEVICE_NAME_REPORTED\x10\xe5\x04\x12/\n*ATOM_BLUETOOTH_L2CAP_COC_CLIENT_CONNECTION\x10\xe6\x04\x12/\n*ATOM_BLUETOOTH_L2CAP_COC_SERVER_CONNECTION\x10\xe7\x04\x12(\n#ATOM_BLUETOOTH_LE_SESSION_CONNECTED\x10\x90\x05\x12\x33\n.ATOM_RESTRICTED_BLUETOOTH_DEVICE_NAME_REPORTED\x10\x9a\x05\x12\x30\n+ATOM_BLUETOOTH_PROFILE_CONNECTION_ATTEMPTED\x10\xb8\x05\x12\x32\n-ATOM_BLUETOOTH_CONTENT_PROFILE_ERROR_REPORTED\x10\x8d\x06\x12/\n*ATOM_BLUETOOTH_RFCOMM_CONNECTION_ATTEMPTED\x10\x8e\x06\x12\x32\n-ATOM_REMOTE_DEVICE_INFORMATION_WITH_METRIC_ID\x10\xde\x06\x12#\n\x1e\x41TOM_LE_APP_SCAN_STATE_CHANGED\x10\xe6\x06\x12\x1f\n\x1a\x41TOM_LE_RADIO_SCAN_STOPPED\x10\xe7\x06\x12!\n\x1c\x41TOM_LE_SCAN_RESULT_RECEIVED\x10\xe8\x06\x12\x18\n\x13\x41TOM_LE_SCAN_ABUSED\x10\xe9\x06\x12\x1e\n\x19\x41TOM_LE_ADV_STATE_CHANGED\x10\xea\x06\x12\x1f\n\x1a\x41TOM_LE_ADV_ERROR_REPORTED\x10\xeb\x06\x12\x1f\n\x1a\x41TOM_A2DP_SESSION_REPORTED\x10\x88\x07\x12.\n)ATOM_BLUETOOTH_CROSS_LAYER_EVENT_REPORTED\x10\x94\x07\x12*\n%ATOM_BROADCAST_AUDIO_SESSION_REPORTED\x10\x9f\x07\x12\'\n\"ATOM_BROADCAST_AUDIO_SYNC_REPORTED\x10\xa0\x07\x12\x37\n2ATOM_BLUETOOTH_RFCOMM_CONNECTION_REPORTED_AT_CLOSE\x10\xd6\x07\x12!\n\x1c\x41TOM_BLUETOOTH_LE_CONNECTION\x10\xdc\x07\x12\x18\n\x13\x41TOM_BROADCAST_SENT\x10\x9a\x07\x12\x30\n+ATOM_CAMERA_FEATURE_COMBINATION_QUERY_EVENT\x10\x84\x07\x12\x39\n4ATOM_CERTIFICATE_TRANSPARENCY_LOG_LIST_STATE_CHANGED\x10\xa6\x07\x12\x39\n4ATOM_CERTIFICATE_TRANSPARENCY_LOG_LIST_UPDATE_FAILED\x10\xcc\x07\x12\'\n\"ATOM_DAILY_KEEPALIVE_INFO_REPORTED\x10\x8a\x05\x12\'\n\"ATOM_NETWORK_REQUEST_STATE_CHANGED\x10\x8b\x06\x12,\n\'ATOM_TETHERING_ACTIVE_SESSIONS_REPORTED\x10\x9d\x07\x12.\n)ATOM_NETWORK_STATS_RECORDER_FILE_OPERATED\x10\x8f\x06\x12\x31\n,ATOM_CORE_NETWORKING_TERRIBLE_ERROR_OCCURRED\x10\xd3\x07\x12#\n\x1e\x41TOM_APF_SESSION_INFO_REPORTED\x10\x89\x06\x12$\n\x1f\x41TOM_IP_CLIENT_RA_INFO_REPORTED\x10\x8a\x06\x12&\n!ATOM_VPN_CONNECTION_STATE_CHANGED\x10\xd2\x06\x12!\n\x1c\x41TOM_VPN_CONNECTION_REPORTED\x10\xd3\x06\x12\x14\n\x0f\x41TOM_CPU_POLICY\x10\xd7O\x12\'\n\"ATOM_CREDENTIAL_MANAGER_API_CALLED\x10\xc9\x04\x12\x30\n+ATOM_CREDENTIAL_MANAGER_INIT_PHASE_REPORTED\x10\x8b\x05\x12\x35\n0ATOM_CREDENTIAL_MANAGER_CANDIDATE_PHASE_REPORTED\x10\x8c\x05\x12\x31\n,ATOM_CREDENTIAL_MANAGER_FINAL_PHASE_REPORTED\x10\x8d\x05\x12+\n&ATOM_CREDENTIAL_MANAGER_TOTAL_REPORTED\x10\x9b\x05\x12\x30\n+ATOM_CREDENTIAL_MANAGER_FINALNOUID_REPORTED\x10\x9c\x05\x12)\n$ATOM_CREDENTIAL_MANAGER_GET_REPORTED\x10\x9d\x05\x12\x30\n+ATOM_CREDENTIAL_MANAGER_AUTH_CLICK_REPORTED\x10\x9e\x05\x12)\n$ATOM_CREDENTIAL_MANAGER_APIV2_CALLED\x10\x9f\x05\x12\x1f\n\x1a\x41TOM_CRONET_ENGINE_CREATED\x10\xbf\x05\x12!\n\x1c\x41TOM_CRONET_TRAFFIC_REPORTED\x10\xc0\x05\x12+\n&ATOM_CRONET_ENGINE_BUILDER_INITIALIZED\x10\xfa\x05\x12\'\n\"ATOM_CRONET_HTTP_FLAGS_INITIALIZED\x10\xfb\x05\x12\x1c\n\x17\x41TOM_CRONET_INITIALIZED\x10\xfc\x05\x12!\n\x1c\x41TOM_DESKTOP_MODE_UI_CHANGED\x10\xb2\x06\x12*\n%ATOM_DESKTOP_MODE_SESSION_TASK_UPDATE\x10\xb3\x06\x12(\n#ATOM_DESKTOP_MODE_TASK_SIZE_UPDATED\x10\xa7\x07\x12/\n*ATOM_DEVICE_LOCK_CHECK_IN_REQUEST_REPORTED\x10\xd6\x05\x12\x34\n/ATOM_DEVICE_LOCK_PROVISIONING_COMPLETE_REPORTED\x10\xd7\x05\x12\x30\n+ATOM_DEVICE_LOCK_KIOSK_APP_REQUEST_REPORTED\x10\xd8\x05\x12-\n(ATOM_DEVICE_LOCK_CHECK_IN_RETRY_REPORTED\x10\x95\x06\x12\x30\n+ATOM_DEVICE_LOCK_PROVISION_FAILURE_REPORTED\x10\x96\x06\x12\x39\n4ATOM_DEVICE_LOCK_LOCK_UNLOCK_DEVICE_FAILURE_REPORTED\x10\x97\x06\x12\'\n\"ATOM_DEVICE_POLICY_MANAGEMENT_MODE\x10\xe8O\x12\x1d\n\x18\x41TOM_DEVICE_POLICY_STATE\x10\xe9O\x12,\n\'ATOM_DISPLAY_MODE_DIRECTOR_VOTE_CHANGED\x10\x98\x06\x12(\n#ATOM_EXTERNAL_DISPLAY_STATE_CHANGED\x10\xa6\x06\x12\x1b\n\x16\x41TOM_DND_STATE_CHANGED\x10\x91\x05\x12\x1f\n\x1a\x41TOM_DREAM_SETTING_CHANGED\x10\xc1\x05\x12 \n\x1b\x41TOM_DREAM_SETTING_SNAPSHOT\x10\xd0O\x12 \n\x1b\x41TOM_EXPRESS_EVENT_REPORTED\x10\x90\x04\x12+\n&ATOM_EXPRESS_HISTOGRAM_SAMPLE_REPORTED\x10\xd1\x04\x12$\n\x1f\x41TOM_EXPRESS_UID_EVENT_REPORTED\x10\x84\x05\x12/\n*ATOM_EXPRESS_UID_HISTOGRAM_SAMPLE_REPORTED\x10\x92\x05\x12&\n!ATOM_FEDERATED_COMPUTE_API_CALLED\x10\xc8\x05\x12\x33\n.ATOM_FEDERATED_COMPUTE_TRAINING_EVENT_REPORTED\x10\x83\x06\x12\x30\n+ATOM_EXAMPLE_ITERATOR_NEXT_LATENCY_REPORTED\x10\xc6\x06\x12%\n ATOM_FULL_SCREEN_INTENT_LAUNCHED\x10\xf7\x04\x12\x15\n\x10\x41TOM_BAL_ALLOWED\x10\xf8\x04\x12\"\n\x1d\x41TOM_IN_TASK_ACTIVITY_STARTED\x10\xad\x05\x12$\n\x1f\x41TOM_DEVICE_ORIENTATION_CHANGED\x10\x8a\x07\x12$\n\x1f\x41TOM_CACHED_APPS_HIGH_WATERMARK\x10\xcdO\x12,\n\'ATOM_STYLUS_PREDICTION_METRICS_REPORTED\x10\xce\x05\x12\"\n\x1d\x41TOM_USER_RISK_EVENT_REPORTED\x10\xd5\x05\x12(\n#ATOM_MEDIA_PROJECTION_STATE_CHANGED\x10\xd9\x05\x12)\n$ATOM_MEDIA_PROJECTION_TARGET_CHANGED\x10\xda\x05\x12/\n*ATOM_EXCESSIVE_BINDER_PROXY_COUNT_REPORTED\x10\xd5\x06\x12\'\n\"ATOM_PROXY_BYTES_TRANSFER_BY_FG_BG\x10\xd8O\x12-\n(ATOM_MOBILE_BYTES_TRANSFER_BY_PROC_STATE\x10\xdcO\x12$\n\x1f\x41TOM_BIOMETRIC_FRR_NOTIFICATION\x10\xb1\x06\x12\x34\n/ATOM_SENSITIVE_CONTENT_MEDIA_PROJECTION_SESSION\x10\xbe\x06\x12\x37\n2ATOM_SENSITIVE_NOTIFICATION_APP_PROTECTION_SESSION\x10\xbf\x06\x12\x37\n2ATOM_SENSITIVE_NOTIFICATION_APP_PROTECTION_APPLIED\x10\xc0\x06\x12*\n%ATOM_SENSITIVE_NOTIFICATION_REDACTION\x10\xc1\x06\x12*\n%ATOM_SENSITIVE_CONTENT_APP_PROTECTION\x10\xc3\x06\x12\'\n\"ATOM_APP_RESTRICTION_STATE_CHANGED\x10\xe2\x06\x12%\n ATOM_BATTERY_USAGE_STATS_PER_UID\x10\xe1O\x12 \n\x1b\x41TOM_POSTGC_MEMORY_SNAPSHOT\x10\x9c\x07\x12+\n&ATOM_POWER_SAVE_TEMP_ALLOWLIST_CHANGED\x10\x9e\x07\x12\x1f\n\x1a\x41TOM_APP_OP_ACCESS_TRACKED\x10\xa3\x07\x12,\n\'ATOM_CONTENT_OR_FILE_URI_EVENT_REPORTED\x10\xa5\x07\x12\x34\n/ATOM_APPLICATION_GRAMMATICAL_INFLECTION_CHANGED\x10\xc8\x04\x12/\n*ATOM_SYSTEM_GRAMMATICAL_INFLECTION_CHANGED\x10\xb0\x06\x12\x18\n\x13\x41TOM_BATTERY_HEALTH\x10\xecO\x12#\n\x1e\x41TOM_HDMI_EARC_STATUS_REPORTED\x10\xbd\x05\x12,\n\'ATOM_HDMI_SOUNDBAR_MODE_STATUS_REPORTED\x10\xd4\x05\x12#\n\x1e\x41TOM_HEALTH_CONNECT_API_CALLED\x10\xe8\x04\x12$\n\x1f\x41TOM_HEALTH_CONNECT_USAGE_STATS\x10\xe9\x04\x12&\n!ATOM_HEALTH_CONNECT_STORAGE_STATS\x10\xea\x04\x12$\n\x1f\x41TOM_HEALTH_CONNECT_API_INVOKED\x10\x83\x05\x12#\n\x1e\x41TOM_EXERCISE_ROUTE_API_CALLED\x10\x8e\x05\x12\'\n\"ATOM_HEALTH_CONNECT_EXPORT_INVOKED\x10\x8b\x07\x12\'\n\"ATOM_HEALTH_CONNECT_IMPORT_INVOKED\x10\x96\x07\x12\x35\n0ATOM_HEALTH_CONNECT_EXPORT_IMPORT_STATS_REPORTED\x10\x97\x07\x12&\n!ATOM_HEALTH_CONNECT_UI_IMPRESSION\x10\xef\x04\x12\'\n\"ATOM_HEALTH_CONNECT_UI_INTERACTION\x10\xf0\x04\x12,\n\'ATOM_HEALTH_CONNECT_APP_OPENED_REPORTED\x10\xf1\x04\x12+\n&ATOM_HOTWORD_EGRESS_SIZE_ATOM_REPORTED\x10\xf9\x05\x12 \n\x1b\x41TOM_IKE_SESSION_TERMINATED\x10\xa6\x05\x12.\n)ATOM_IKE_LIVENESS_CHECK_SESSION_VALIDATED\x10\xf8\x05\x12)\n$ATOM_NEGOTIATED_SECURITY_ASSOCIATION\x10\xb5\x06\x12\x1d\n\x18\x41TOM_KEYBOARD_CONFIGURED\x10\xaa\x05\x12)\n$ATOM_KEYBOARD_SYSTEMS_EVENT_REPORTED\x10\xab\x05\x12$\n\x1f\x41TOM_INPUTDEVICE_USAGE_REPORTED\x10\xae\x05\x12&\n!ATOM_INPUT_EVENT_LATENCY_REPORTED\x10\xa4\x07\x12\x18\n\x13\x41TOM_TOUCHPAD_USAGE\x10\xcfO\x12\"\n\x1d\x41TOM_KERNEL_OOM_KILL_OCCURRED\x10\xf2\x05\x12!\n\x1c\x41TOM_EMERGENCY_STATE_CHANGED\x10\xf9\x04\x12/\n*ATOM_CHRE_SIGNIFICANT_MOTION_STATE_CHANGED\x10\xe4\x06\x12\x36\n1ATOM_POPULATION_DENSITY_PROVIDER_LOADING_REPORTED\x10\xea\x07\x12\x37\n2ATOM_DENSITY_BASED_COARSE_LOCATIONS_USAGE_REPORTED\x10\xeb\x07\x12@\n;ATOM_DENSITY_BASED_COARSE_LOCATIONS_PROVIDER_QUERY_REPORTED\x10\xec\x07\x12/\n*ATOM_MEDIA_CODEC_RECLAIM_REQUEST_COMPLETED\x10\xd8\x04\x12\x1d\n\x18\x41TOM_MEDIA_CODEC_STARTED\x10\x81\x05\x12\x1d\n\x18\x41TOM_MEDIA_CODEC_STOPPED\x10\x82\x05\x12\x1e\n\x19\x41TOM_MEDIA_CODEC_RENDERED\x10\xac\x05\x12&\n!ATOM_MEDIA_EDITING_ENDED_REPORTED\x10\x9e\x06\x12\x13\n\x0e\x41TOM_MTE_STATE\x10\xc5O\x12/\n*ATOM_MICROXR_DEVICE_BOOT_COMPLETE_REPORTED\x10\x85\x07\x12(\n#ATOM_NFC_OBSERVE_MODE_STATE_CHANGED\x10\xd7\x06\x12\x1b\n\x16\x41TOM_NFC_FIELD_CHANGED\x10\xd8\x06\x12\x30\n+ATOM_NFC_POLLING_LOOP_NOTIFICATION_REPORTED\x10\xd9\x06\x12/\n*ATOM_NFC_PROPRIETARY_CAPABILITIES_REPORTED\x10\xda\x06\x12,\n\'ATOM_ONDEVICEPERSONALIZATION_API_CALLED\x10\xc7\x05\x12*\n%ATOM_COMPONENT_STATE_CHANGED_REPORTED\x10\xdf\x06\x12\x1b\n\x16\x41TOM_PDF_LOAD_REPORTED\x10\xdb\x06\x12 \n\x1b\x41TOM_PDF_API_USAGE_REPORTED\x10\xdc\x06\x12\x1d\n\x18\x41TOM_PDF_SEARCH_REPORTED\x10\xdd\x06\x12$\n\x1f\x41TOM_PRESSURE_STALL_INFORMATION\x10\xf5O\x12,\n\'ATOM_PERMISSION_RATIONALE_DIALOG_VIEWED\x10\x85\x05\x12\x35\n0ATOM_PERMISSION_RATIONALE_DIALOG_ACTION_REPORTED\x10\x86\x05\x12;\n6ATOM_APP_DATA_SHARING_UPDATES_NOTIFICATION_INTERACTION\x10\x87\x05\x12\x32\n-ATOM_APP_DATA_SHARING_UPDATES_FRAGMENT_VIEWED\x10\x88\x05\x12;\n6ATOM_APP_DATA_SHARING_UPDATES_FRAGMENT_ACTION_REPORTED\x10\x89\x05\x12\x36\n1ATOM_ENHANCED_CONFIRMATION_DIALOG_RESULT_REPORTED\x10\xbb\x06\x12\x33\n.ATOM_ENHANCED_CONFIRMATION_RESTRICTION_CLEARED\x10\xbc\x06\x12+\n&ATOM_PHOTOPICKER_SESSION_INFO_REPORTED\x10\xf6\x06\x12\'\n\"ATOM_PHOTOPICKER_API_INFO_REPORTED\x10\xf7\x06\x12%\n ATOM_PHOTOPICKER_UI_EVENT_LOGGED\x10\xf8\x06\x12\x30\n+ATOM_PHOTOPICKER_MEDIA_ITEM_STATUS_REPORTED\x10\xf9\x06\x12)\n$ATOM_PHOTOPICKER_PREVIEW_INFO_LOGGED\x10\xfa\x06\x12-\n(ATOM_PHOTOPICKER_MENU_INTERACTION_LOGGED\x10\xfb\x06\x12/\n*ATOM_PHOTOPICKER_BANNER_INTERACTION_LOGGED\x10\xfc\x06\x12/\n*ATOM_PHOTOPICKER_MEDIA_LIBRARY_INFO_LOGGED\x10\xfd\x06\x12&\n!ATOM_PHOTOPICKER_PAGE_INFO_LOGGED\x10\xfe\x06\x12\x33\n.ATOM_PHOTOPICKER_MEDIA_GRID_SYNC_INFO_REPORTED\x10\xff\x06\x12.\n)ATOM_PHOTOPICKER_ALBUM_SYNC_INFO_REPORTED\x10\x80\x07\x12*\n%ATOM_PHOTOPICKER_SEARCH_INFO_REPORTED\x10\x81\x07\x12\x31\n,ATOM_SEARCH_DATA_EXTRACTION_DETAILS_REPORTED\x10\x82\x07\x12,\n\'ATOM_EMBEDDED_PHOTOPICKER_INFO_REPORTED\x10\x83\x07\x12\x13\n\x0e\x41TOM_ATOM_9999\x10\x8fN\x12\x15\n\x0f\x41TOM_ATOM_99999\x10\x9f\x8d\x06\x12\x1d\n\x18\x41TOM_SCREEN_OFF_REPORTED\x10\x88\x06\x12*\n%ATOM_SCREEN_TIMEOUT_OVERRIDE_REPORTED\x10\xc4\x06\x12-\n(ATOM_SCREEN_INTERACTIVE_SESSION_REPORTED\x10\xc5\x06\x12\x1d\n\x18\x41TOM_SCREEN_DIM_REPORTED\x10\xe3\x06\x12\x33\n.ATOM_MEDIA_PROVIDER_DATABASE_ROLLBACK_REPORTED\x10\x90\x06\x12&\n!ATOM_BACKUP_SETUP_STATUS_REPORTED\x10\x91\x06\x12$\n\x1f\x41TOM_RANGING_SESSION_CONFIGURED\x10\xe1\x07\x12!\n\x1c\x41TOM_RANGING_SESSION_STARTED\x10\xe2\x07\x12 \n\x1b\x41TOM_RANGING_SESSION_CLOSED\x10\xe3\x07\x12$\n\x1f\x41TOM_RANGING_TECHNOLOGY_STARTED\x10\xe4\x07\x12$\n\x1f\x41TOM_RANGING_TECHNOLOGY_STOPPED\x10\xe5\x07\x12\x19\n\x14\x41TOM_RKPD_POOL_STATS\x10\x98\x05\x12\x1f\n\x1a\x41TOM_RKPD_CLIENT_OPERATION\x10\x99\x05\x12\x1c\n\x17\x41TOM_SANDBOX_API_CALLED\x10\xe8\x03\x12)\n$ATOM_SANDBOX_ACTIVITY_EVENT_OCCURRED\x10\xdf\x05\x12\x32\n-ATOM_SDK_SANDBOX_RESTRICTED_ACCESS_IN_SESSION\x10\x9c\x06\x12\x1d\n\x18\x41TOM_SANDBOX_SDK_STORAGE\x10\xafO\x12\x1b\n\x16\x41TOM_SELINUX_AUDIT_LOG\x10\x9f\x06\x12\x1f\n\x1a\x41TOM_SETTINGS_SPA_REPORTED\x10\xee\x04\x12&\n!ATOM_TEST_EXTENSION_ATOM_REPORTED\x10\x94\x05\x12\'\n\"ATOM_TEST_RESTRICTED_ATOM_REPORTED\x10\xa0\x05\x12$\n\x1f\x41TOM_STATS_SOCKET_LOSS_REPORTED\x10\xf0\x05\x12&\n!ATOM_LOCKSCREEN_SHORTCUT_SELECTED\x10\xe3\x04\x12\'\n\"ATOM_LOCKSCREEN_SHORTCUT_TRIGGERED\x10\xe4\x04\x12&\n!ATOM_LAUNCHER_IMPRESSION_EVENT_V2\x10\xcc\x05\x12(\n#ATOM_DISPLAY_SWITCH_LATENCY_TRACKED\x10\xf1\x05\x12\'\n\"ATOM_NOTIFICATION_LISTENER_SERVICE\x10\xbd\x06\x12!\n\x1c\x41TOM_NAV_HANDLE_TOUCH_POINTS\x10\xe5\x06\x12,\n\'ATOM_COMMUNAL_HUB_WIDGET_EVENT_REPORTED\x10\x8c\x07\x12\x1f\n\x1a\x41TOM_COMMUNAL_HUB_SNAPSHOT\x10\xf2O\x12!\n\x1c\x41TOM_EMERGENCY_NUMBER_DIALED\x10\xfd\x04\x12\x14\n\x0f\x41TOM_CALL_STATS\x10\xedO\x12 \n\x1b\x41TOM_CALL_AUDIO_ROUTE_STATS\x10\xeeO\x12\x1b\n\x16\x41TOM_TELECOM_API_STATS\x10\xefO\x12\x1d\n\x18\x41TOM_TELECOM_ERROR_STATS\x10\xf0O\x12,\n\'ATOM_CELLULAR_RADIO_POWER_STATE_CHANGED\x10\xc9\x05\x12 \n\x1b\x41TOM_EMERGENCY_NUMBERS_INFO\x10\xc4O\x12!\n\x1c\x41TOM_DATA_NETWORK_VALIDATION\x10\xdfO\x12 \n\x1b\x41TOM_DATA_RAT_STATE_CHANGED\x10\xd6\x06\x12#\n\x1e\x41TOM_CONNECTED_CHANNEL_CHANGED\x10\xf2\x06\x12=\n8ATOM_IWLAN_UNDERLYING_NETWORK_VALIDATION_RESULT_REPORTED\x10\x9b\x07\x12$\n\x1f\x41TOM_QUALIFIED_RAT_LIST_CHANGED\x10\xfa\x04\x12!\n\x1c\x41TOM_QNS_IMS_CALL_DROP_STATS\x10\xfb\x04\x12*\n%ATOM_QNS_FALLBACK_RESTRICTION_CHANGED\x10\xfc\x04\x12*\n%ATOM_QNS_RAT_PREFERENCE_MISMATCH_INFO\x10\xc1O\x12\"\n\x1d\x41TOM_QNS_HANDOVER_TIME_MILLIS\x10\xc2O\x12\x1f\n\x1a\x41TOM_QNS_HANDOVER_PINGPONG\x10\xc3O\x12\x1e\n\x19\x41TOM_SATELLITE_CONTROLLER\x10\xc6O\x12\x1b\n\x16\x41TOM_SATELLITE_SESSION\x10\xc7O\x12%\n ATOM_SATELLITE_INCOMING_DATAGRAM\x10\xc8O\x12%\n ATOM_SATELLITE_OUTGOING_DATAGRAM\x10\xc9O\x12\x1d\n\x18\x41TOM_SATELLITE_PROVISION\x10\xcaO\x12+\n&ATOM_SATELLITE_SOS_MESSAGE_RECOMMENDER\x10\xcbO\x12+\n&ATOM_CARRIER_ROAMING_SATELLITE_SESSION\x10\xe3O\x12\x34\n/ATOM_CARRIER_ROAMING_SATELLITE_CONTROLLER_STATS\x10\xe4O\x12&\n!ATOM_CONTROLLER_STATS_PER_PACKAGE\x10\xe5O\x12\x1f\n\x1a\x41TOM_SATELLITE_ENTITLEMENT\x10\xe6O\x12\"\n\x1d\x41TOM_SATELLITE_CONFIG_UPDATER\x10\xe7O\x12%\n ATOM_SATELLITE_ACCESS_CONTROLLER\x10\xebO\x12\'\n\"ATOM_CELLULAR_IDENTIFIER_DISCLOSED\x10\xa0\x06\x12/\n*ATOM_THREADNETWORK_TELEMETRY_DATA_REPORTED\x10\xe2\x05\x12+\n&ATOM_THREADNETWORK_TOPO_ENTRY_REPEATED\x10\xe3\x05\x12,\n\'ATOM_THREADNETWORK_DEVICE_INFO_REPORTED\x10\xe4\x05\x12&\n!ATOM_BOOT_INTEGRITY_INFO_REPORTED\x10\x87\x06\x12%\n ATOM_TV_LOW_POWER_STANDBY_POLICY\x10\xa7\x05\x12!\n\x1c\x41TOM_EXTERNAL_TV_INPUT_EVENT\x10\xcd\x05\x12(\n#ATOM_TEST_UPROBESTATS_ATOM_REPORTED\x10\x93\x07\x12\x1b\n\x16\x41TOM_UWB_ACTIVITY_INFO\x10\xccO\x12\x1a\n\x15\x41TOM_MEDIATOR_UPDATED\x10\xd1\x05\x12+\n&ATOM_SYSPROXY_BLUETOOTH_BYTES_TRANSFER\x10\xd4O\x12%\n ATOM_SYSPROXY_CONNECTION_UPDATED\x10\x92\x06\x12)\n$ATOM_WEAR_COMPANION_CONNECTION_STATE\x10\x99\x07\x12\x1f\n\x1a\x41TOM_MEDIA_ACTION_REPORTED\x10\xe0\x04\x12!\n\x1c\x41TOM_MEDIA_CONTROLS_LAUNCHED\x10\xe1\x04\x12%\n ATOM_MEDIA_SESSION_STATE_CHANGED\x10\xa5\x05\x12<\n7ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_DEVICE_SCAN_API_LATENCY\x10\xf5\x05\x12<\n7ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_SASS_DEVICE_UNAVAILABLE\x10\xf6\x05\x12\x39\n4ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FASTPAIR_API_TIMEOUT\x10\xf7\x05\x12!\n\x1c\x41TOM_WEAR_MODE_STATE_CHANGED\x10\xcb\x05\x12\x1e\n\x19\x41TOM_RENDERER_INITIALIZED\x10\xe0\x05\x12!\n\x1c\x41TOM_SCHEMA_VERSION_RECEIVED\x10\xe1\x05\x12\x1a\n\x15\x41TOM_LAYOUT_INSPECTED\x10\xe5\x05\x12%\n ATOM_LAYOUT_EXPRESSION_INSPECTED\x10\xe6\x05\x12%\n ATOM_LAYOUT_ANIMATIONS_INSPECTED\x10\xe7\x05\x12\'\n\"ATOM_MATERIAL_COMPONENTS_INSPECTED\x10\xe8\x05\x12\x18\n\x13\x41TOM_TILE_REQUESTED\x10\xe9\x05\x12!\n\x1c\x41TOM_STATE_RESPONSE_RECEIVED\x10\xea\x05\x12 \n\x1b\x41TOM_TILE_RESPONSE_RECEIVED\x10\xeb\x05\x12\x1c\n\x17\x41TOM_INFLATION_FINISHED\x10\xec\x05\x12\x1a\n\x15\x41TOM_INFLATION_FAILED\x10\xed\x05\x12-\n(ATOM_IGNORED_INFLATION_FAILURES_REPORTED\x10\xee\x05\x12\x1b\n\x16\x41TOM_DRAWABLE_RENDERED\x10\xef\x05\x12\"\n\x1d\x41TOM_WEAR_TIME_SYNC_REQUESTED\x10\x8f\x07\x12\"\n\x1d\x41TOM_WEAR_TIME_UPDATE_STARTED\x10\x90\x07\x12*\n%ATOM_WEAR_TIME_SYNC_ATTEMPT_COMPLETED\x10\x91\x07\x12\x1b\n\x16\x41TOM_WEAR_TIME_CHANGED\x10\x92\x07\x12.\n)ATOM_WEAR_ADAPTIVE_SUSPEND_STATS_REPORTED\x10\xeb\x04\x12?\n:ATOM_WEAR_POWER_ANOMALY_SERVICE_OPERATIONAL_STATS_REPORTED\x10\xec\x04\x12\x39\n4ATOM_WEAR_POWER_ANOMALY_SERVICE_EVENT_STATS_REPORTED\x10\xed\x04\x12\x1e\n\x19\x41TOM_WS_WEAR_TIME_SESSION\x10\xe2\x04\x12*\n%ATOM_WS_INCOMING_CALL_ACTION_REPORTED\x10\xf2\x04\x12(\n#ATOM_WS_CALL_DISCONNECTION_REPORTED\x10\xf3\x04\x12#\n\x1e\x41TOM_WS_CALL_DURATION_REPORTED\x10\xf4\x04\x12\x32\n-ATOM_WS_CALL_USER_EXPERIENCE_LATENCY_REPORTED\x10\xf5\x04\x12&\n!ATOM_WS_CALL_INTERACTION_REPORTED\x10\xf6\x04\x12\"\n\x1d\x41TOM_WS_ON_BODY_STATE_CHANGED\x10\x93\x06\x12\x39\n4ATOM_WS_WATCH_FACE_RESTRICTED_COMPLICATIONS_IMPACTED\x10\xa2\x06\x12@\n;ATOM_WS_WATCH_FACE_DEFAULT_RESTRICTED_COMPLICATIONS_REMOVED\x10\xa3\x06\x12?\n:ATOM_WS_COMPLICATIONS_IMPACTED_NOTIFICATION_EVENT_REPORTED\x10\xa4\x06\x12(\n#ATOM_WS_REMOTE_EVENT_USAGE_REPORTED\x10\x98\x07\x12 \n\x1b\x41TOM_WS_BUGREPORT_REQUESTED\x10\xa8\x07\x12 \n\x1b\x41TOM_WS_BUGREPORT_TRIGGERED\x10\xa9\x07\x12\x1f\n\x1a\x41TOM_WS_BUGREPORT_FINISHED\x10\xaa\x07\x12&\n!ATOM_WS_BUGREPORT_RESULT_RECEIVED\x10\xab\x07\x12%\n ATOM_WS_STANDALONE_MODE_SNAPSHOT\x10\xd5O\x12)\n$ATOM_WS_FAVORITE_WATCH_FACE_SNAPSHOT\x10\xdeO\x12/\n*ATOM_WS_PHOTOS_WATCH_FACE_FEATURE_SNAPSHOT\x10\xf1O\x12.\n)ATOM_WS_WATCH_FACE_CUSTOMIZATION_SNAPSHOT\x10\xf3O\x12 \n\x1b\x41TOM_WEAR_POWER_MENU_OPENED\x10\xdb\x05\x12\x1f\n\x1a\x41TOM_WEAR_ASSISTANT_OPENED\x10\xf3\x05\x12%\n ATOM_FIRST_OVERLAY_STATE_CHANGED\x10\x95\x07\x12!\n\x1c\x41TOM_WIFI_AWARE_NDP_REPORTED\x10\xfe\x04\x12$\n\x1f\x41TOM_WIFI_AWARE_ATTACH_REPORTED\x10\xff\x04\x12&\n!ATOM_WIFI_SELF_RECOVERY_TRIGGERED\x10\x95\x05\x12\x19\n\x14\x41TOM_SOFT_AP_STARTED\x10\xa8\x05\x12\x19\n\x14\x41TOM_SOFT_AP_STOPPED\x10\xa9\x05\x12\x1c\n\x17\x41TOM_WIFI_LOCK_RELEASED\x10\xaf\x05\x12\x1f\n\x1a\x41TOM_WIFI_LOCK_DEACTIVATED\x10\xb0\x05\x12\x1b\n\x16\x41TOM_WIFI_CONFIG_SAVED\x10\xb1\x05\x12+\n&ATOM_WIFI_AWARE_RESOURCE_USING_CHANGED\x10\xb2\x05\x12#\n\x1e\x41TOM_WIFI_AWARE_HAL_API_CALLED\x10\xb3\x05\x12*\n%ATOM_WIFI_LOCAL_ONLY_REQUEST_RECEIVED\x10\xb4\x05\x12\x30\n+ATOM_WIFI_LOCAL_ONLY_REQUEST_SCAN_TRIGGERED\x10\xb5\x05\x12#\n\x1e\x41TOM_WIFI_THREAD_TASK_EXECUTED\x10\xb6\x05\x12\x1c\n\x17\x41TOM_WIFI_STATE_CHANGED\x10\xbc\x05\x12\x1a\n\x15\x41TOM_PNO_SCAN_STARTED\x10\xcf\x05\x12\x1a\n\x15\x41TOM_PNO_SCAN_STOPPED\x10\xd0\x05\x12#\n\x1e\x41TOM_WIFI_IS_UNUSABLE_REPORTED\x10\xd2\x05\x12\'\n\"ATOM_WIFI_AP_CAPABILITIES_REPORTED\x10\xd3\x05\x12\x1f\n\x1a\x41TOM_SOFT_AP_STATE_CHANGED\x10\xa5\x06\x12+\n&ATOM_SCORER_PREDICTION_RESULT_REPORTED\x10\xf4\x06\x12!\n\x1c\x41TOM_WIFI_AWARE_CAPABILITIES\x10\xceO\x12\x1a\n\x15\x41TOM_WIFI_MODULE_INFO\x10\xd1O\x12\x1b\n\x16\x41TOM_WIFI_SETTING_INFO\x10\xd2O\x12#\n\x1e\x41TOM_WIFI_COMPLEX_SETTING_INFO\x10\xd3O\x12&\n!ATOM_WIFI_CONFIGURED_NETWORK_INFO\x10\xd6O*\xa5\x07\n\x0fMeminfoCounters\x12\x17\n\x13MEMINFO_UNSPECIFIED\x10\x00\x12\x15\n\x11MEMINFO_MEM_TOTAL\x10\x01\x12\x14\n\x10MEMINFO_MEM_FREE\x10\x02\x12\x19\n\x15MEMINFO_MEM_AVAILABLE\x10\x03\x12\x13\n\x0fMEMINFO_BUFFERS\x10\x04\x12\x12\n\x0eMEMINFO_CACHED\x10\x05\x12\x17\n\x13MEMINFO_SWAP_CACHED\x10\x06\x12\x12\n\x0eMEMINFO_ACTIVE\x10\x07\x12\x14\n\x10MEMINFO_INACTIVE\x10\x08\x12\x17\n\x13MEMINFO_ACTIVE_ANON\x10\t\x12\x19\n\x15MEMINFO_INACTIVE_ANON\x10\n\x12\x17\n\x13MEMINFO_ACTIVE_FILE\x10\x0b\x12\x19\n\x15MEMINFO_INACTIVE_FILE\x10\x0c\x12\x17\n\x13MEMINFO_UNEVICTABLE\x10\r\x12\x13\n\x0fMEMINFO_MLOCKED\x10\x0e\x12\x16\n\x12MEMINFO_SWAP_TOTAL\x10\x0f\x12\x15\n\x11MEMINFO_SWAP_FREE\x10\x10\x12\x11\n\rMEMINFO_DIRTY\x10\x11\x12\x15\n\x11MEMINFO_WRITEBACK\x10\x12\x12\x16\n\x12MEMINFO_ANON_PAGES\x10\x13\x12\x12\n\x0eMEMINFO_MAPPED\x10\x14\x12\x11\n\rMEMINFO_SHMEM\x10\x15\x12\x10\n\x0cMEMINFO_SLAB\x10\x16\x12\x1c\n\x18MEMINFO_SLAB_RECLAIMABLE\x10\x17\x12\x1e\n\x1aMEMINFO_SLAB_UNRECLAIMABLE\x10\x18\x12\x18\n\x14MEMINFO_KERNEL_STACK\x10\x19\x12\x17\n\x13MEMINFO_PAGE_TABLES\x10\x1a\x12\x18\n\x14MEMINFO_COMMIT_LIMIT\x10\x1b\x12\x17\n\x13MEMINFO_COMMITED_AS\x10\x1c\x12\x19\n\x15MEMINFO_VMALLOC_TOTAL\x10\x1d\x12\x18\n\x14MEMINFO_VMALLOC_USED\x10\x1e\x12\x19\n\x15MEMINFO_VMALLOC_CHUNK\x10\x1f\x12\x15\n\x11MEMINFO_CMA_TOTAL\x10 \x12\x14\n\x10MEMINFO_CMA_FREE\x10!\x12\x0f\n\x0bMEMINFO_GPU\x10\"\x12\x10\n\x0cMEMINFO_ZRAM\x10#\x12\x10\n\x0cMEMINFO_MISC\x10$\x12\x14\n\x10MEMINFO_ION_HEAP\x10%\x12\x19\n\x15MEMINFO_ION_HEAP_POOL\x10&*\x81,\n\x0eVmstatCounters\x12\x16\n\x12VMSTAT_UNSPECIFIED\x10\x00\x12\x18\n\x14VMSTAT_NR_FREE_PAGES\x10\x01\x12\x19\n\x15VMSTAT_NR_ALLOC_BATCH\x10\x02\x12\x1b\n\x17VMSTAT_NR_INACTIVE_ANON\x10\x03\x12\x19\n\x15VMSTAT_NR_ACTIVE_ANON\x10\x04\x12\x1b\n\x17VMSTAT_NR_INACTIVE_FILE\x10\x05\x12\x19\n\x15VMSTAT_NR_ACTIVE_FILE\x10\x06\x12\x19\n\x15VMSTAT_NR_UNEVICTABLE\x10\x07\x12\x13\n\x0fVMSTAT_NR_MLOCK\x10\x08\x12\x18\n\x14VMSTAT_NR_ANON_PAGES\x10\t\x12\x14\n\x10VMSTAT_NR_MAPPED\x10\n\x12\x18\n\x14VMSTAT_NR_FILE_PAGES\x10\x0b\x12\x13\n\x0fVMSTAT_NR_DIRTY\x10\x0c\x12\x17\n\x13VMSTAT_NR_WRITEBACK\x10\r\x12\x1e\n\x1aVMSTAT_NR_SLAB_RECLAIMABLE\x10\x0e\x12 \n\x1cVMSTAT_NR_SLAB_UNRECLAIMABLE\x10\x0f\x12\x1e\n\x1aVMSTAT_NR_PAGE_TABLE_PAGES\x10\x10\x12\x1a\n\x16VMSTAT_NR_KERNEL_STACK\x10\x11\x12\x16\n\x12VMSTAT_NR_OVERHEAD\x10\x12\x12\x16\n\x12VMSTAT_NR_UNSTABLE\x10\x13\x12\x14\n\x10VMSTAT_NR_BOUNCE\x10\x14\x12\x1a\n\x16VMSTAT_NR_VMSCAN_WRITE\x10\x15\x12&\n\"VMSTAT_NR_VMSCAN_IMMEDIATE_RECLAIM\x10\x16\x12\x1c\n\x18VMSTAT_NR_WRITEBACK_TEMP\x10\x17\x12\x1b\n\x17VMSTAT_NR_ISOLATED_ANON\x10\x18\x12\x1b\n\x17VMSTAT_NR_ISOLATED_FILE\x10\x19\x12\x13\n\x0fVMSTAT_NR_SHMEM\x10\x1a\x12\x15\n\x11VMSTAT_NR_DIRTIED\x10\x1b\x12\x15\n\x11VMSTAT_NR_WRITTEN\x10\x1c\x12\x1b\n\x17VMSTAT_NR_PAGES_SCANNED\x10\x1d\x12\x1d\n\x19VMSTAT_WORKINGSET_REFAULT\x10\x1e\x12\x1e\n\x1aVMSTAT_WORKINGSET_ACTIVATE\x10\x1f\x12!\n\x1dVMSTAT_WORKINGSET_NODERECLAIM\x10 \x12(\n$VMSTAT_NR_ANON_TRANSPARENT_HUGEPAGES\x10!\x12\x16\n\x12VMSTAT_NR_FREE_CMA\x10\"\x12\x17\n\x13VMSTAT_NR_SWAPCACHE\x10#\x12\x1d\n\x19VMSTAT_NR_DIRTY_THRESHOLD\x10$\x12(\n$VMSTAT_NR_DIRTY_BACKGROUND_THRESHOLD\x10%\x12\x11\n\rVMSTAT_PGPGIN\x10&\x12\x12\n\x0eVMSTAT_PGPGOUT\x10\'\x12\x17\n\x13VMSTAT_PGPGOUTCLEAN\x10(\x12\x11\n\rVMSTAT_PSWPIN\x10)\x12\x12\n\x0eVMSTAT_PSWPOUT\x10*\x12\x16\n\x12VMSTAT_PGALLOC_DMA\x10+\x12\x19\n\x15VMSTAT_PGALLOC_NORMAL\x10,\x12\x1a\n\x16VMSTAT_PGALLOC_MOVABLE\x10-\x12\x11\n\rVMSTAT_PGFREE\x10.\x12\x15\n\x11VMSTAT_PGACTIVATE\x10/\x12\x17\n\x13VMSTAT_PGDEACTIVATE\x10\x30\x12\x12\n\x0eVMSTAT_PGFAULT\x10\x31\x12\x15\n\x11VMSTAT_PGMAJFAULT\x10\x32\x12\x17\n\x13VMSTAT_PGREFILL_DMA\x10\x33\x12\x1a\n\x16VMSTAT_PGREFILL_NORMAL\x10\x34\x12\x1b\n\x17VMSTAT_PGREFILL_MOVABLE\x10\x35\x12\x1d\n\x19VMSTAT_PGSTEAL_KSWAPD_DMA\x10\x36\x12 \n\x1cVMSTAT_PGSTEAL_KSWAPD_NORMAL\x10\x37\x12!\n\x1dVMSTAT_PGSTEAL_KSWAPD_MOVABLE\x10\x38\x12\x1d\n\x19VMSTAT_PGSTEAL_DIRECT_DMA\x10\x39\x12 \n\x1cVMSTAT_PGSTEAL_DIRECT_NORMAL\x10:\x12!\n\x1dVMSTAT_PGSTEAL_DIRECT_MOVABLE\x10;\x12\x1c\n\x18VMSTAT_PGSCAN_KSWAPD_DMA\x10<\x12\x1f\n\x1bVMSTAT_PGSCAN_KSWAPD_NORMAL\x10=\x12 \n\x1cVMSTAT_PGSCAN_KSWAPD_MOVABLE\x10>\x12\x1c\n\x18VMSTAT_PGSCAN_DIRECT_DMA\x10?\x12\x1f\n\x1bVMSTAT_PGSCAN_DIRECT_NORMAL\x10@\x12 \n\x1cVMSTAT_PGSCAN_DIRECT_MOVABLE\x10\x41\x12!\n\x1dVMSTAT_PGSCAN_DIRECT_THROTTLE\x10\x42\x12\x17\n\x13VMSTAT_PGINODESTEAL\x10\x43\x12\x18\n\x14VMSTAT_SLABS_SCANNED\x10\x44\x12\x1c\n\x18VMSTAT_KSWAPD_INODESTEAL\x10\x45\x12\'\n#VMSTAT_KSWAPD_LOW_WMARK_HIT_QUICKLY\x10\x46\x12(\n$VMSTAT_KSWAPD_HIGH_WMARK_HIT_QUICKLY\x10G\x12\x15\n\x11VMSTAT_PAGEOUTRUN\x10H\x12\x15\n\x11VMSTAT_ALLOCSTALL\x10I\x12\x14\n\x10VMSTAT_PGROTATED\x10J\x12\x19\n\x15VMSTAT_DROP_PAGECACHE\x10K\x12\x14\n\x10VMSTAT_DROP_SLAB\x10L\x12\x1c\n\x18VMSTAT_PGMIGRATE_SUCCESS\x10M\x12\x19\n\x15VMSTAT_PGMIGRATE_FAIL\x10N\x12\"\n\x1eVMSTAT_COMPACT_MIGRATE_SCANNED\x10O\x12\x1f\n\x1bVMSTAT_COMPACT_FREE_SCANNED\x10P\x12\x1b\n\x17VMSTAT_COMPACT_ISOLATED\x10Q\x12\x18\n\x14VMSTAT_COMPACT_STALL\x10R\x12\x17\n\x13VMSTAT_COMPACT_FAIL\x10S\x12\x1a\n\x16VMSTAT_COMPACT_SUCCESS\x10T\x12\x1e\n\x1aVMSTAT_COMPACT_DAEMON_WAKE\x10U\x12!\n\x1dVMSTAT_UNEVICTABLE_PGS_CULLED\x10V\x12\"\n\x1eVMSTAT_UNEVICTABLE_PGS_SCANNED\x10W\x12\"\n\x1eVMSTAT_UNEVICTABLE_PGS_RESCUED\x10X\x12\"\n\x1eVMSTAT_UNEVICTABLE_PGS_MLOCKED\x10Y\x12$\n VMSTAT_UNEVICTABLE_PGS_MUNLOCKED\x10Z\x12\"\n\x1eVMSTAT_UNEVICTABLE_PGS_CLEARED\x10[\x12#\n\x1fVMSTAT_UNEVICTABLE_PGS_STRANDED\x10\\\x12\x15\n\x11VMSTAT_NR_ZSPAGES\x10]\x12\x16\n\x12VMSTAT_NR_ION_HEAP\x10^\x12\x16\n\x12VMSTAT_NR_GPU_HEAP\x10_\x12\x19\n\x15VMSTAT_ALLOCSTALL_DMA\x10`\x12\x1d\n\x19VMSTAT_ALLOCSTALL_MOVABLE\x10\x61\x12\x1c\n\x18VMSTAT_ALLOCSTALL_NORMAL\x10\x62\x12&\n\"VMSTAT_COMPACT_DAEMON_FREE_SCANNED\x10\x63\x12)\n%VMSTAT_COMPACT_DAEMON_MIGRATE_SCANNED\x10\x64\x12\x15\n\x11VMSTAT_NR_FASTRPC\x10\x65\x12$\n VMSTAT_NR_INDIRECTLY_RECLAIMABLE\x10\x66\x12\x1b\n\x17VMSTAT_NR_ION_HEAP_POOL\x10g\x12%\n!VMSTAT_NR_KERNEL_MISC_RECLAIMABLE\x10h\x12%\n!VMSTAT_NR_SHADOW_CALL_STACK_BYTES\x10i\x12\x1d\n\x19VMSTAT_NR_SHMEM_HUGEPAGES\x10j\x12\x1d\n\x19VMSTAT_NR_SHMEM_PMDMAPPED\x10k\x12!\n\x1dVMSTAT_NR_UNRECLAIMABLE_PAGES\x10l\x12\x1e\n\x1aVMSTAT_NR_ZONE_ACTIVE_ANON\x10m\x12\x1e\n\x1aVMSTAT_NR_ZONE_ACTIVE_FILE\x10n\x12 \n\x1cVMSTAT_NR_ZONE_INACTIVE_ANON\x10o\x12 \n\x1cVMSTAT_NR_ZONE_INACTIVE_FILE\x10p\x12\x1e\n\x1aVMSTAT_NR_ZONE_UNEVICTABLE\x10q\x12 \n\x1cVMSTAT_NR_ZONE_WRITE_PENDING\x10r\x12\x13\n\x0fVMSTAT_OOM_KILL\x10s\x12\x15\n\x11VMSTAT_PGLAZYFREE\x10t\x12\x16\n\x12VMSTAT_PGLAZYFREED\x10u\x12\x13\n\x0fVMSTAT_PGREFILL\x10v\x12\x18\n\x14VMSTAT_PGSCAN_DIRECT\x10w\x12\x18\n\x14VMSTAT_PGSCAN_KSWAPD\x10x\x12\x15\n\x11VMSTAT_PGSKIP_DMA\x10y\x12\x19\n\x15VMSTAT_PGSKIP_MOVABLE\x10z\x12\x18\n\x14VMSTAT_PGSKIP_NORMAL\x10{\x12\x19\n\x15VMSTAT_PGSTEAL_DIRECT\x10|\x12\x19\n\x15VMSTAT_PGSTEAL_KSWAPD\x10}\x12\x12\n\x0eVMSTAT_SWAP_RA\x10~\x12\x16\n\x12VMSTAT_SWAP_RA_HIT\x10\x7f\x12\x1e\n\x19VMSTAT_WORKINGSET_RESTORE\x10\x80\x01\x12\x1d\n\x18VMSTAT_ALLOCSTALL_DEVICE\x10\x81\x01\x12\x1c\n\x17VMSTAT_ALLOCSTALL_DMA32\x10\x82\x01\x12\x1b\n\x16VMSTAT_BALLOON_DEFLATE\x10\x83\x01\x12\x1b\n\x16VMSTAT_BALLOON_INFLATE\x10\x84\x01\x12\x1b\n\x16VMSTAT_BALLOON_MIGRATE\x10\x85\x01\x12\x1a\n\x15VMSTAT_CMA_ALLOC_FAIL\x10\x86\x01\x12\x1d\n\x18VMSTAT_CMA_ALLOC_SUCCESS\x10\x87\x01\x12\x1d\n\x18VMSTAT_NR_FILE_HUGEPAGES\x10\x88\x01\x12\x1d\n\x18VMSTAT_NR_FILE_PMDMAPPED\x10\x89\x01\x12 \n\x1bVMSTAT_NR_FOLL_PIN_ACQUIRED\x10\x8a\x01\x12 \n\x1bVMSTAT_NR_FOLL_PIN_RELEASED\x10\x8b\x01\x12#\n\x1eVMSTAT_NR_SEC_PAGE_TABLE_PAGES\x10\x8c\x01\x12 \n\x1bVMSTAT_NR_SHADOW_CALL_STACK\x10\x8d\x01\x12\x19\n\x14VMSTAT_NR_SWAPCACHED\x10\x8e\x01\x12 \n\x1bVMSTAT_NR_THROTTLED_WRITTEN\x10\x8f\x01\x12\x1a\n\x15VMSTAT_PGALLOC_DEVICE\x10\x90\x01\x12\x19\n\x14VMSTAT_PGALLOC_DMA32\x10\x91\x01\x12\x1b\n\x16VMSTAT_PGDEMOTE_DIRECT\x10\x92\x01\x12\x1b\n\x16VMSTAT_PGDEMOTE_KSWAPD\x10\x93\x01\x12\x13\n\x0eVMSTAT_PGREUSE\x10\x94\x01\x12\x17\n\x12VMSTAT_PGSCAN_ANON\x10\x95\x01\x12\x17\n\x12VMSTAT_PGSCAN_FILE\x10\x96\x01\x12\x19\n\x14VMSTAT_PGSKIP_DEVICE\x10\x97\x01\x12\x18\n\x13VMSTAT_PGSKIP_DMA32\x10\x98\x01\x12\x18\n\x13VMSTAT_PGSTEAL_ANON\x10\x99\x01\x12\x18\n\x13VMSTAT_PGSTEAL_FILE\x10\x9a\x01\x12\x1e\n\x19VMSTAT_THP_COLLAPSE_ALLOC\x10\x9b\x01\x12%\n VMSTAT_THP_COLLAPSE_ALLOC_FAILED\x10\x9c\x01\x12#\n\x1eVMSTAT_THP_DEFERRED_SPLIT_PAGE\x10\x9d\x01\x12\x1b\n\x16VMSTAT_THP_FAULT_ALLOC\x10\x9e\x01\x12\x1e\n\x19VMSTAT_THP_FAULT_FALLBACK\x10\x9f\x01\x12%\n VMSTAT_THP_FAULT_FALLBACK_CHARGE\x10\xa0\x01\x12\x1a\n\x15VMSTAT_THP_FILE_ALLOC\x10\xa1\x01\x12\x1d\n\x18VMSTAT_THP_FILE_FALLBACK\x10\xa2\x01\x12$\n\x1fVMSTAT_THP_FILE_FALLBACK_CHARGE\x10\xa3\x01\x12\x1b\n\x16VMSTAT_THP_FILE_MAPPED\x10\xa4\x01\x12\x1e\n\x19VMSTAT_THP_MIGRATION_FAIL\x10\xa5\x01\x12\x1f\n\x1aVMSTAT_THP_MIGRATION_SPLIT\x10\xa6\x01\x12!\n\x1cVMSTAT_THP_MIGRATION_SUCCESS\x10\xa7\x01\x12$\n\x1fVMSTAT_THP_SCAN_EXCEED_NONE_PTE\x10\xa8\x01\x12%\n VMSTAT_THP_SCAN_EXCEED_SHARE_PTE\x10\xa9\x01\x12$\n\x1fVMSTAT_THP_SCAN_EXCEED_SWAP_PTE\x10\xaa\x01\x12\x1a\n\x15VMSTAT_THP_SPLIT_PAGE\x10\xab\x01\x12!\n\x1cVMSTAT_THP_SPLIT_PAGE_FAILED\x10\xac\x01\x12\x19\n\x14VMSTAT_THP_SPLIT_PMD\x10\xad\x01\x12\x16\n\x11VMSTAT_THP_SWPOUT\x10\xae\x01\x12\x1f\n\x1aVMSTAT_THP_SWPOUT_FALLBACK\x10\xaf\x01\x12\x1f\n\x1aVMSTAT_THP_ZERO_PAGE_ALLOC\x10\xb0\x01\x12&\n!VMSTAT_THP_ZERO_PAGE_ALLOC_FAILED\x10\xb1\x01\x12\x1a\n\x15VMSTAT_VMA_LOCK_ABORT\x10\xb2\x01\x12\x19\n\x14VMSTAT_VMA_LOCK_MISS\x10\xb3\x01\x12\x1a\n\x15VMSTAT_VMA_LOCK_RETRY\x10\xb4\x01\x12\x1c\n\x17VMSTAT_VMA_LOCK_SUCCESS\x10\xb5\x01\x12$\n\x1fVMSTAT_WORKINGSET_ACTIVATE_ANON\x10\xb6\x01\x12$\n\x1fVMSTAT_WORKINGSET_ACTIVATE_FILE\x10\xb7\x01\x12\x1c\n\x17VMSTAT_WORKINGSET_NODES\x10\xb8\x01\x12#\n\x1eVMSTAT_WORKINGSET_REFAULT_ANON\x10\xb9\x01\x12#\n\x1eVMSTAT_WORKINGSET_REFAULT_FILE\x10\xba\x01\x12#\n\x1eVMSTAT_WORKINGSET_RESTORE_ANON\x10\xbb\x01\x12#\n\x1eVMSTAT_WORKINGSET_RESTORE_FILE\x10\xbc\x01*\x94\x01\n\x18\x42luetoothTracePacketType\x12\x0b\n\x07HCI_CMD\x10\x01\x12\x0b\n\x07HCI_EVT\x10\x02\x12\x0e\n\nHCI_ACL_RX\x10\x03\x12\x0e\n\nHCI_ACL_TX\x10\x04\x12\x0e\n\nHCI_SCO_RX\x10\x05\x12\x0e\n\nHCI_SCO_TX\x10\x06\x12\x0e\n\nHCI_ISO_RX\x10\x07\x12\x0e\n\nHCI_ISO_TX\x10\x08*H\n\x10TrafficDirection\x12\x13\n\x0f\x44IR_UNSPECIFIED\x10\x00\x12\x0f\n\x0b\x44IR_INGRESS\x10\x01\x12\x0e\n\nDIR_EGRESS\x10\x02*6\n\x0eTrustedOverlay\x12\t\n\x05UNSET\x10\x00\x12\x0c\n\x08\x44ISABLED\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02*\xbf\x01\n\x12HwcCompositionType\x12\x18\n\x14HWC_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fHWC_TYPE_CLIENT\x10\x01\x12\x13\n\x0fHWC_TYPE_DEVICE\x10\x02\x12\x18\n\x14HWC_TYPE_SOLID_COLOR\x10\x03\x12\x13\n\x0fHWC_TYPE_CURSOR\x10\x04\x12\x15\n\x11HWC_TYPE_SIDEBAND\x10\x05\x12\x1f\n\x1bHWC_TYPE_DISPLAY_DECORATION\x10\x06*\xc8\x05\n\x11\x46traceParseStatus\x12\x1d\n\x19\x46TRACE_STATUS_UNSPECIFIED\x10\x00\x12\x14\n\x10\x46TRACE_STATUS_OK\x10\x01\x12\'\n#FTRACE_STATUS_UNEXPECTED_READ_ERROR\x10\x02\x12#\n\x1f\x46TRACE_STATUS_PARTIAL_PAGE_READ\x10\x03\x12)\n%FTRACE_STATUS_ABI_INVALID_PAGE_HEADER\x10\x04\x12(\n$FTRACE_STATUS_ABI_SHORT_EVENT_HEADER\x10\x05\x12\"\n\x1e\x46TRACE_STATUS_ABI_NULL_PADDING\x10\x06\x12*\n&FTRACE_STATUS_ABI_SHORT_PADDING_LENGTH\x10\x07\x12,\n(FTRACE_STATUS_ABI_INVALID_PADDING_LENGTH\x10\x08\x12\'\n#FTRACE_STATUS_ABI_SHORT_TIME_EXTEND\x10\t\x12&\n\"FTRACE_STATUS_ABI_SHORT_TIME_STAMP\x10\n\x12\'\n#FTRACE_STATUS_ABI_SHORT_DATA_LENGTH\x10\x0b\x12&\n\"FTRACE_STATUS_ABI_ZERO_DATA_LENGTH\x10\x0c\x12)\n%FTRACE_STATUS_ABI_INVALID_DATA_LENGTH\x10\r\x12$\n FTRACE_STATUS_ABI_SHORT_EVENT_ID\x10\x0e\x12\"\n\x1e\x46TRACE_STATUS_ABI_END_OVERFLOW\x10\x0f\x12%\n!FTRACE_STATUS_SHORT_COMPACT_EVENT\x10\x10\x12\x1f\n\x1b\x46TRACE_STATUS_INVALID_EVENT\x10\x11*\x91\x01\n\x0b\x46traceClock\x12\x1c\n\x18\x46TRACE_CLOCK_UNSPECIFIED\x10\x00\x12\x18\n\x14\x46TRACE_CLOCK_UNKNOWN\x10\x01\x12\x17\n\x13\x46TRACE_CLOCK_GLOBAL\x10\x02\x12\x16\n\x12\x46TRACE_CLOCK_LOCAL\x10\x03\x12\x19\n\x15\x46TRACE_CLOCK_MONO_RAW\x10\x04*\xb0\x05\n\x1f\x43hromeCompositorSchedulerAction\x12#\n\x1f\x43\x43_SCHEDULER_ACTION_UNSPECIFIED\x10\x00\x12\x1c\n\x18\x43\x43_SCHEDULER_ACTION_NONE\x10\x01\x12-\n)CC_SCHEDULER_ACTION_SEND_BEGIN_MAIN_FRAME\x10\x02\x12\x1e\n\x1a\x43\x43_SCHEDULER_ACTION_COMMIT\x10\x03\x12*\n&CC_SCHEDULER_ACTION_ACTIVATE_SYNC_TREE\x10\x04\x12(\n$CC_SCHEDULER_ACTION_DRAW_IF_POSSIBLE\x10\x05\x12#\n\x1f\x43\x43_SCHEDULER_ACTION_DRAW_FORCED\x10\x06\x12\"\n\x1e\x43\x43_SCHEDULER_ACTION_DRAW_ABORT\x10\x07\x12<\n8CC_SCHEDULER_ACTION_BEGIN_LAYER_TREE_FRAME_SINK_CREATION\x10\x08\x12%\n!CC_SCHEDULER_ACTION_PREPARE_TILES\x10\t\x12\x38\n4CC_SCHEDULER_ACTION_INVALIDATE_LAYER_TREE_FRAME_SINK\x10\n\x12\x36\n2CC_SCHEDULER_ACTION_PERFORM_IMPL_SIDE_INVALIDATION\x10\x0b\x12\x42\n>CC_SCHEDULER_ACTION_NOTIFY_BEGIN_MAIN_FRAME_NOT_EXPECTED_UNTIL\x10\x0c\x12\x41\n=CC_SCHEDULER_ACTION_NOTIFY_BEGIN_MAIN_FRAME_NOT_EXPECTED_SOON\x10\r*}\n\x0e\x43hromeRAILMode\x12\x12\n\x0eRAIL_MODE_NONE\x10\x00\x12\x16\n\x12RAIL_MODE_RESPONSE\x10\x01\x12\x17\n\x13RAIL_MODE_ANIMATION\x10\x02\x12\x12\n\x0eRAIL_MODE_IDLE\x10\x03\x12\x12\n\x0eRAIL_MODE_LOAD\x10\x04\x42+Z)github.com/google/perfetto/perfetto_proto')
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*protos/perfetto/trace/perfetto_trace.proto\x12\x0fperfetto.protos\"\x94\x01\n\x10\x46traceDescriptor\x12K\n\x11\x61trace_categories\x18\x01 \x03(\x0b\x32\x30.perfetto.protos.FtraceDescriptor.AtraceCategory\x1a\x33\n\x0e\x41traceCategory\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\"\xc8\x0b\n\x14GpuCounterDescriptor\x12\x43\n\x05specs\x18\x01 \x03(\x0b\x32\x34.perfetto.protos.GpuCounterDescriptor.GpuCounterSpec\x12\x45\n\x06\x62locks\x18\x02 \x03(\x0b\x32\x35.perfetto.protos.GpuCounterDescriptor.GpuCounterBlock\x12\x1e\n\x16min_sampling_period_ns\x18\x03 \x01(\x04\x12\x1e\n\x16max_sampling_period_ns\x18\x04 \x01(\x04\x12&\n\x1esupports_instrumented_sampling\x18\x05 \x01(\x08\x1a\x8e\x03\n\x0eGpuCounterSpec\x12\x12\n\ncounter_id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x18\n\x0eint_peak_value\x18\x05 \x01(\x03H\x00\x12\x1b\n\x11\x64ouble_peak_value\x18\x06 \x01(\x01H\x00\x12J\n\x0fnumerator_units\x18\x07 \x03(\x0e\x32\x31.perfetto.protos.GpuCounterDescriptor.MeasureUnit\x12L\n\x11\x64\x65nominator_units\x18\x08 \x03(\x0e\x32\x31.perfetto.protos.GpuCounterDescriptor.MeasureUnit\x12\x19\n\x11select_by_default\x18\t \x01(\x08\x12\x45\n\x06groups\x18\n \x03(\x0e\x32\x35.perfetto.protos.GpuCounterDescriptor.GpuCounterGroupB\x0c\n\npeak_valueJ\x04\x08\x04\x10\x05\x1as\n\x0fGpuCounterBlock\x12\x10\n\x08\x62lock_id\x18\x01 \x01(\r\x12\x16\n\x0e\x62lock_capacity\x18\x02 \x01(\r\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x13\n\x0b\x63ounter_ids\x18\x05 \x03(\r\"\x86\x01\n\x0fGpuCounterGroup\x12\x10\n\x0cUNCLASSIFIED\x10\x00\x12\n\n\x06SYSTEM\x10\x01\x12\x0c\n\x08VERTICES\x10\x02\x12\r\n\tFRAGMENTS\x10\x03\x12\x0e\n\nPRIMITIVES\x10\x04\x12\n\n\x06MEMORY\x10\x05\x12\x0b\n\x07\x43OMPUTE\x10\x06\x12\x0f\n\x0bRAY_TRACING\x10\x07\"\xac\x04\n\x0bMeasureUnit\x12\x08\n\x04NONE\x10\x00\x12\x07\n\x03\x42IT\x10\x01\x12\x0b\n\x07KILOBIT\x10\x02\x12\x0b\n\x07MEGABIT\x10\x03\x12\x0b\n\x07GIGABIT\x10\x04\x12\x0b\n\x07TERABIT\x10\x05\x12\x0b\n\x07PETABIT\x10\x06\x12\x08\n\x04\x42YTE\x10\x07\x12\x0c\n\x08KILOBYTE\x10\x08\x12\x0c\n\x08MEGABYTE\x10\t\x12\x0c\n\x08GIGABYTE\x10\n\x12\x0c\n\x08TERABYTE\x10\x0b\x12\x0c\n\x08PETABYTE\x10\x0c\x12\t\n\x05HERTZ\x10\r\x12\r\n\tKILOHERTZ\x10\x0e\x12\r\n\tMEGAHERTZ\x10\x0f\x12\r\n\tGIGAHERTZ\x10\x10\x12\r\n\tTERAHERTZ\x10\x11\x12\r\n\tPETAHERTZ\x10\x12\x12\x0e\n\nNANOSECOND\x10\x13\x12\x0f\n\x0bMICROSECOND\x10\x14\x12\x0f\n\x0bMILLISECOND\x10\x15\x12\n\n\x06SECOND\x10\x16\x12\n\n\x06MINUTE\x10\x17\x12\x08\n\x04HOUR\x10\x18\x12\n\n\x06VERTEX\x10\x19\x12\t\n\x05PIXEL\x10\x1a\x12\x0c\n\x08TRIANGLE\x10\x1b\x12\r\n\tPRIMITIVE\x10&\x12\x0c\n\x08\x46RAGMENT\x10\'\x12\r\n\tMILLIWATT\x10\x1c\x12\x08\n\x04WATT\x10\x1d\x12\x0c\n\x08KILOWATT\x10\x1e\x12\t\n\x05JOULE\x10\x1f\x12\x08\n\x04VOLT\x10 \x12\n\n\x06\x41MPERE\x10!\x12\x0b\n\x07\x43\x45LSIUS\x10\"\x12\x0e\n\nFAHRENHEIT\x10#\x12\n\n\x06KELVIN\x10$\x12\x0b\n\x07PERCENT\x10%\x12\x0f\n\x0bINSTRUCTION\x10(\"E\n\x12TrackEventCategory\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0c\n\x04tags\x18\x03 \x03(\t\"Y\n\x14TrackEventDescriptor\x12\x41\n\x14\x61vailable_categories\x18\x01 \x03(\x0b\x32#.perfetto.protos.TrackEventCategory\"\xfe\x02\n\x14\x44\x61taSourceDescriptor\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\n\n\x02id\x18\x07 \x01(\x04\x12\x1b\n\x13will_notify_on_stop\x18\x02 \x01(\x08\x12\x1c\n\x14will_notify_on_start\x18\x03 \x01(\x08\x12\'\n\x1fhandles_incremental_state_clear\x18\x04 \x01(\x08\x12\x10\n\x08no_flush\x18\t \x01(\x08\x12I\n\x16gpu_counter_descriptor\x18\x05 \x01(\x0b\x32%.perfetto.protos.GpuCounterDescriptorB\x02(\x01\x12I\n\x16track_event_descriptor\x18\x06 \x01(\x0b\x32%.perfetto.protos.TrackEventDescriptorB\x02(\x01\x12@\n\x11\x66trace_descriptor\x18\x08 \x01(\x0b\x32!.perfetto.protos.FtraceDescriptorB\x02(\x01\"\xb7\x06\n\x13TracingServiceState\x12@\n\tproducers\x18\x01 \x03(\x0b\x32-.perfetto.protos.TracingServiceState.Producer\x12\x45\n\x0c\x64\x61ta_sources\x18\x02 \x03(\x0b\x32/.perfetto.protos.TracingServiceState.DataSource\x12M\n\x10tracing_sessions\x18\x06 \x03(\x0b\x32\x33.perfetto.protos.TracingServiceState.TracingSession\x12!\n\x19supports_tracing_sessions\x18\x07 \x01(\x08\x12\x14\n\x0cnum_sessions\x18\x03 \x01(\x05\x12\x1c\n\x14num_sessions_started\x18\x04 \x01(\x05\x12\x1f\n\x17tracing_service_version\x18\x05 \x01(\t\x1a\x63\n\x08Producer\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0b\n\x03pid\x18\x05 \x01(\x05\x12\x0b\n\x03uid\x18\x03 \x01(\x05\x12\x13\n\x0bsdk_version\x18\x04 \x01(\t\x12\x0e\n\x06\x66rozen\x18\x06 \x01(\x08\x1a_\n\nDataSource\x12<\n\rds_descriptor\x18\x01 \x01(\x0b\x32%.perfetto.protos.DataSourceDescriptor\x12\x13\n\x0bproducer_id\x18\x02 \x01(\x05\x1a\x89\x02\n\x0eTracingSession\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x14\n\x0c\x63onsumer_uid\x18\x02 \x01(\x05\x12\r\n\x05state\x18\x03 \x01(\t\x12\x1b\n\x13unique_session_name\x18\x04 \x01(\t\x12\x16\n\x0e\x62uffer_size_kb\x18\x05 \x03(\r\x12\x13\n\x0b\x64uration_ms\x18\x06 \x01(\r\x12\x18\n\x10num_data_sources\x18\x07 \x01(\r\x12\x19\n\x11start_realtime_ns\x18\x08 \x01(\x03\x12\x17\n\x0f\x62ugreport_score\x18\t \x01(\x05\x12\x1a\n\x12\x62ugreport_filename\x18\n \x01(\t\x12\x12\n\nis_started\x18\x0b \x01(\x08\"@\n!AndroidGameInterventionListConfig\x12\x1b\n\x13package_name_filter\x18\x01 \x03(\t\"\xd3\x04\n\x17\x41ndroidInputEventConfig\x12@\n\x04mode\x18\x01 \x01(\x0e\x32\x32.perfetto.protos.AndroidInputEventConfig.TraceMode\x12\x41\n\x05rules\x18\x02 \x03(\x0b\x32\x32.perfetto.protos.AndroidInputEventConfig.TraceRule\x12%\n\x1dtrace_dispatcher_input_events\x18\x03 \x01(\x08\x12(\n trace_dispatcher_window_dispatch\x18\x04 \x01(\x08\x1a\xc8\x01\n\tTraceRule\x12H\n\x0btrace_level\x18\x01 \x01(\x0e\x32\x33.perfetto.protos.AndroidInputEventConfig.TraceLevel\x12\x1a\n\x12match_all_packages\x18\x02 \x03(\t\x12\x1a\n\x12match_any_packages\x18\x03 \x03(\t\x12\x14\n\x0cmatch_secure\x18\x04 \x01(\x08\x12#\n\x1bmatch_ime_connection_active\x18\x05 \x01(\x08\"?\n\tTraceMode\x12\x18\n\x14TRACE_MODE_TRACE_ALL\x10\x00\x12\x18\n\x14TRACE_MODE_USE_RULES\x10\x01\"V\n\nTraceLevel\x12\x14\n\x10TRACE_LEVEL_NONE\x10\x00\x12\x18\n\x14TRACE_LEVEL_REDACTED\x10\x01\x12\x18\n\x14TRACE_LEVEL_COMPLETE\x10\x02\"\x94\x01\n\x10\x41ndroidLogConfig\x12.\n\x07log_ids\x18\x01 \x03(\x0e\x32\x1d.perfetto.protos.AndroidLogId\x12\x35\n\x08min_prio\x18\x03 \x01(\x0e\x32#.perfetto.protos.AndroidLogPriority\x12\x13\n\x0b\x66ilter_tags\x18\x04 \x03(\tJ\x04\x08\x02\x10\x03\"+\n\x18\x41ndroidPolledStateConfig\x12\x0f\n\x07poll_ms\x18\x01 \x01(\r\"\x8a\x01\n\x1c\x41ndroidSdkSyspropGuardConfig\x12(\n surfaceflinger_skia_track_events\x18\x01 \x01(\x08\x12\x1e\n\x16hwui_skia_track_events\x18\x02 \x01(\x08\x12 \n\x18hwui_package_name_filter\x18\x03 \x03(\t\"E\n\x1b\x41ndroidSystemPropertyConfig\x12\x0f\n\x07poll_ms\x18\x01 \x01(\r\x12\x15\n\rproperty_name\x18\x02 \x03(\t\"f\n\x12\x41ppWakelocksConfig\x12\x16\n\x0ewrite_delay_ms\x18\x01 \x01(\x05\x12 \n\x18\x66ilter_duration_below_ms\x18\x02 \x01(\x05\x12\x16\n\x0e\x64rop_owner_pid\x18\x03 \x01(\x08\"\"\n\x0f\x43puPerUidConfig\x12\x0f\n\x07poll_ms\x18\x01 \x01(\r\"(\n\x15KernelWakelocksConfig\x12\x0f\n\x07poll_ms\x18\x01 \x01(\r\"\xab\x01\n\x18NetworkPacketTraceConfig\x12\x0f\n\x07poll_ms\x18\x01 \x01(\r\x12\x1d\n\x15\x61ggregation_threshold\x18\x02 \x01(\r\x12\x14\n\x0cintern_limit\x18\x03 \x01(\r\x12\x17\n\x0f\x64rop_local_port\x18\x04 \x01(\x08\x12\x18\n\x10\x64rop_remote_port\x18\x05 \x01(\x08\x12\x16\n\x0e\x64rop_tcp_flags\x18\x06 \x01(\x08\"Y\n\x12PackagesListConfig\x12\x1b\n\x13package_name_filter\x18\x01 \x03(\t\x12&\n\x1eonly_write_on_cpu_use_every_ms\x18\x02 \x01(\r\"\x84\x02\n\x10PixelModemConfig\x12\x41\n\x0b\x65vent_group\x18\x01 \x01(\x0e\x32,.perfetto.protos.PixelModemConfig.EventGroup\x12\x1f\n\x17pigweed_hash_allow_list\x18\x02 \x03(\x03\x12\x1e\n\x16pigweed_hash_deny_list\x18\x03 \x03(\x03\"l\n\nEventGroup\x12\x17\n\x13\x45VENT_GROUP_UNKNOWN\x10\x00\x12\x1d\n\x19\x45VENT_GROUP_LOW_BANDWIDTH\x10\x01\x12&\n\"EVENT_GROUP_HIGH_AND_LOW_BANDWIDTH\x10\x02\"\xf8\x01\n\x0eProtoLogConfig\x12\x37\n\x0fgroup_overrides\x18\x01 \x03(\x0b\x32\x1e.perfetto.protos.ProtoLogGroup\x12\x41\n\x0ctracing_mode\x18\x02 \x01(\x0e\x32+.perfetto.protos.ProtoLogConfig.TracingMode\x12>\n\x16\x64\x65\x66\x61ult_log_from_level\x18\x03 \x01(\x0e\x32\x1e.perfetto.protos.ProtoLogLevel\"*\n\x0bTracingMode\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0e\n\nENABLE_ALL\x10\x01\"q\n\rProtoLogGroup\x12\x12\n\ngroup_name\x18\x01 \x01(\t\x12\x30\n\x08log_from\x18\x02 \x01(\x0e\x32\x1e.perfetto.protos.ProtoLogLevel\x12\x1a\n\x12\x63ollect_stacktrace\x18\x03 \x01(\x08\"\xf0\x03\n\x1aSurfaceFlingerLayersConfig\x12>\n\x04mode\x18\x01 \x01(\x0e\x32\x30.perfetto.protos.SurfaceFlingerLayersConfig.Mode\x12J\n\x0btrace_flags\x18\x02 \x03(\x0e\x32\x35.perfetto.protos.SurfaceFlingerLayersConfig.TraceFlag\"s\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bMODE_ACTIVE\x10\x01\x12\x12\n\x0eMODE_GENERATED\x10\x02\x12\r\n\tMODE_DUMP\x10\x03\x12!\n\x1dMODE_GENERATED_BUGREPORT_ONLY\x10\x04\"\xd0\x01\n\tTraceFlag\x12\x1a\n\x16TRACE_FLAG_UNSPECIFIED\x10\x00\x12\x14\n\x10TRACE_FLAG_INPUT\x10\x02\x12\x1a\n\x16TRACE_FLAG_COMPOSITION\x10\x04\x12\x14\n\x10TRACE_FLAG_EXTRA\x10\x08\x12\x12\n\x0eTRACE_FLAG_HWC\x10\x10\x12\x16\n\x12TRACE_FLAG_BUFFERS\x10 \x12\x1f\n\x1bTRACE_FLAG_VIRTUAL_DISPLAYS\x10@\x12\x12\n\x0eTRACE_FLAG_ALL\x10\x0e\"\xac\x01\n SurfaceFlingerTransactionsConfig\x12\x44\n\x04mode\x18\x01 \x01(\x0e\x32\x36.perfetto.protos.SurfaceFlingerTransactionsConfig.Mode\"B\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x13\n\x0fMODE_CONTINUOUS\x10\x01\x12\x0f\n\x0bMODE_ACTIVE\x10\x02\"1\n\x15\x41ndroidUserListConfig\x12\x18\n\x10user_type_filter\x18\x01 \x03(\t\"\x93\x03\n\x13WindowManagerConfig\x12H\n\rlog_frequency\x18\x01 \x01(\x0e\x32\x31.perfetto.protos.WindowManagerConfig.LogFrequency\x12@\n\tlog_level\x18\x02 \x01(\x0e\x32-.perfetto.protos.WindowManagerConfig.LogLevel\"\x84\x01\n\x0cLogFrequency\x12\x1d\n\x19LOG_FREQUENCY_UNSPECIFIED\x10\x00\x12\x17\n\x13LOG_FREQUENCY_FRAME\x10\x01\x12\x1d\n\x19LOG_FREQUENCY_TRANSACTION\x10\x02\x12\x1d\n\x19LOG_FREQUENCY_SINGLE_DUMP\x10\x03\"i\n\x08LogLevel\x12\x19\n\x15LOG_LEVEL_UNSPECIFIED\x10\x00\x12\x15\n\x11LOG_LEVEL_VERBOSE\x10\x01\x12\x13\n\x0fLOG_LEVEL_DEBUG\x10\x02\x12\x16\n\x12LOG_LEVEL_CRITICAL\x10\x03\"\xbd\x02\n\x0c\x43hromeConfig\x12\x14\n\x0ctrace_config\x18\x01 \x01(\t\x12!\n\x19privacy_filtering_enabled\x18\x02 \x01(\x08\x12\x1e\n\x16\x63onvert_to_legacy_json\x18\x03 \x01(\x08\x12\x45\n\x0f\x63lient_priority\x18\x04 \x01(\x0e\x32,.perfetto.protos.ChromeConfig.ClientPriority\x12\x1f\n\x17json_agent_label_filter\x18\x05 \x01(\t\x12)\n!event_package_name_filter_enabled\x18\x06 \x01(\x08\"A\n\x0e\x43lientPriority\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0e\n\nBACKGROUND\x10\x01\x12\x12\n\x0eUSER_INITIATED\x10\x02\"\xe6\x01\n\x1e\x43hromiumHistogramSamplesConfig\x12S\n\nhistograms\x18\x01 \x03(\x0b\x32?.perfetto.protos.ChromiumHistogramSamplesConfig.HistogramSample\x12\x1e\n\x16\x66ilter_histogram_names\x18\x02 \x01(\x08\x1aO\n\x0fHistogramSample\x12\x16\n\x0ehistogram_name\x18\x01 \x01(\t\x12\x11\n\tmin_value\x18\x02 \x01(\x03\x12\x11\n\tmax_value\x18\x03 \x01(\x03\";\n\x1b\x43hromiumSystemMetricsConfig\x12\x1c\n\x14sampling_interval_ms\x18\x01 \x01(\r\"@\n\x08V8Config\x12\x1a\n\x12log_script_sources\x18\x01 \x01(\x08\x12\x18\n\x10log_instructions\x18\x02 \x01(\x08\"\xd4\x01\n\tEtwConfig\x12;\n\x0ckernel_flags\x18\x01 \x03(\x0e\x32%.perfetto.protos.EtwConfig.KernelFlag\x12!\n\x19scheduler_provider_events\x18\x02 \x03(\t\x12\x1e\n\x16memory_provider_events\x18\x03 \x03(\t\x12\x1c\n\x14\x66ile_provider_events\x18\x04 \x03(\t\")\n\nKernelFlag\x12\x0b\n\x07\x43SWITCH\x10\x00\x12\x0e\n\nDISPATCHER\x10\x01\"+\n\x12\x46rozenFtraceConfig\x12\x15\n\rinstance_name\x18\x01 \x01(\t\"\xca\x0e\n\x0c\x46traceConfig\x12\x15\n\rftrace_events\x18\x01 \x03(\t\x12\x19\n\x11\x61trace_categories\x18\x02 \x03(\t\x12\x13\n\x0b\x61trace_apps\x18\x03 \x03(\t\x12$\n\x1c\x61trace_categories_prefer_sdk\x18\x1c \x03(\t\x12\x1d\n\x15\x61trace_userspace_only\x18\" \x01(\x08\x12\x16\n\x0e\x62uffer_size_kb\x18\n \x01(\r\x12\x1f\n\x17\x62uffer_size_lower_bound\x18\x1b \x01(\x08\x12\x17\n\x0f\x64rain_period_ms\x18\x0b \x01(\r\x12\x1c\n\x14\x64rain_buffer_percent\x18\x1d \x01(\r\x12G\n\rcompact_sched\x18\x0c \x01(\x0b\x32\x30.perfetto.protos.FtraceConfig.CompactSchedConfig\x12?\n\x0cprint_filter\x18\x16 \x01(\x0b\x32).perfetto.protos.FtraceConfig.PrintFilter\x12\x17\n\x0fsymbolize_ksyms\x18\r \x01(\x08\x12\x46\n\x10ksyms_mem_policy\x18\x11 \x01(\x0e\x32,.perfetto.protos.FtraceConfig.KsymsMemPolicy\x12\x19\n\x11throttle_rss_stat\x18\x0f \x01(\x08\x12%\n\x1d\x64\x65nser_generic_event_encoding\x18  \x01(\x08\x12\x1e\n\x16\x64isable_generic_events\x18\x10 \x01(\x08\x12\x16\n\x0esyscall_events\x18\x12 \x03(\t\x12\x1d\n\x15\x65nable_function_graph\x18\x13 \x01(\x08\x12\x18\n\x10\x66unction_filters\x18\x14 \x03(\t\x12\x1c\n\x14\x66unction_graph_roots\x18\x15 \x03(\t\x12 \n\x18\x66unction_graph_max_depth\x18! \x01(\r\x12@\n\rkprobe_events\x18\x1e \x03(\x0b\x32).perfetto.protos.FtraceConfig.KprobeEvent\x12\x1e\n\x16preserve_ftrace_buffer\x18\x17 \x01(\x08\x12\x1f\n\x17use_monotonic_raw_clock\x18\x18 \x01(\x08\x12\x15\n\rinstance_name\x18\x19 \x01(\t\x12\x18\n\x10\x64\x65\x62ug_ftrace_abi\x18\x1f \x01(\x08\x12\x15\n\rtids_to_trace\x18# \x03(\r\x12\x44\n\x0ftracefs_options\x18$ \x03(\x0b\x32+.perfetto.protos.FtraceConfig.TracefsOption\x12\x17\n\x0ftracing_cpumask\x18% \x01(\t\x12\x36\n*initialize_ksyms_synchronously_for_testing\x18\x0e \x01(\x08\x42\x02\x18\x01\x1a%\n\x12\x43ompactSchedConfig\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x1a\x82\x02\n\x0bPrintFilter\x12=\n\x05rules\x18\x01 \x03(\x0b\x32..perfetto.protos.FtraceConfig.PrintFilter.Rule\x1a\xb3\x01\n\x04Rule\x12\x10\n\x06prefix\x18\x01 \x01(\tH\x00\x12R\n\natrace_msg\x18\x03 \x01(\x0b\x32<.perfetto.protos.FtraceConfig.PrintFilter.Rule.AtraceMessageH\x00\x12\r\n\x05\x61llow\x18\x02 \x01(\x08\x1a-\n\rAtraceMessage\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x0e\n\x06prefix\x18\x02 \x01(\tB\x07\n\x05match\x1a\xd0\x01\n\x0bKprobeEvent\x12\r\n\x05probe\x18\x01 \x01(\t\x12\x42\n\x04type\x18\x02 \x01(\x0e\x32\x34.perfetto.protos.FtraceConfig.KprobeEvent.KprobeType\"n\n\nKprobeType\x12\x17\n\x13KPROBE_TYPE_UNKNOWN\x10\x00\x12\x16\n\x12KPROBE_TYPE_KPROBE\x10\x01\x12\x19\n\x15KPROBE_TYPE_KRETPROBE\x10\x02\x12\x14\n\x10KPROBE_TYPE_BOTH\x10\x03\x1a\xa2\x01\n\rTracefsOption\x12\x0c\n\x04name\x18\x01 \x01(\t\x12@\n\x05state\x18\x02 \x01(\x0e\x32\x31.perfetto.protos.FtraceConfig.TracefsOption.State\"A\n\x05State\x12\x11\n\rSTATE_UNKNOWN\x10\x00\x12\x11\n\rSTATE_ENABLED\x10\x01\x12\x12\n\x0eSTATE_DISABLED\x10\x02\"T\n\x0eKsymsMemPolicy\x12\x15\n\x11KSYMS_UNSPECIFIED\x10\x00\x12\x19\n\x15KSYMS_CLEANUP_ON_STOP\x10\x01\x12\x10\n\x0cKSYMS_RETAIN\x10\x02J\x04\x08\x1a\x10\x1b\"x\n\x10GpuCounterConfig\x12\x19\n\x11\x63ounter_period_ns\x18\x01 \x01(\x04\x12\x13\n\x0b\x63ounter_ids\x18\x02 \x03(\r\x12\x1d\n\x15instrumented_sampling\x18\x03 \x01(\x08\x12\x15\n\rfix_gpu_clock\x18\x04 \x01(\x08\"\\\n\x15GpuRenderStagesConfig\x12\x16\n\x0e\x66ull_loadstore\x18\x01 \x01(\x08\x12\x14\n\x0clow_overhead\x18\x02 \x01(\x08\x12\x15\n\rtrace_metrics\x18\x03 \x03(\t\"Z\n\x12VulkanMemoryConfig\x12!\n\x19track_driver_memory_usage\x18\x01 \x01(\x08\x12!\n\x19track_device_memory_usage\x18\x02 \x01(\x08\"\xa3\x02\n\x0fInodeFileConfig\x12\x18\n\x10scan_interval_ms\x18\x01 \x01(\r\x12\x15\n\rscan_delay_ms\x18\x02 \x01(\r\x12\x17\n\x0fscan_batch_size\x18\x03 \x01(\r\x12\x13\n\x0b\x64o_not_scan\x18\x04 \x01(\x08\x12\x19\n\x11scan_mount_points\x18\x05 \x03(\t\x12T\n\x13mount_point_mapping\x18\x06 \x03(\x0b\x32\x37.perfetto.protos.InodeFileConfig.MountPointMappingEntry\x1a@\n\x16MountPointMappingEntry\x12\x12\n\nmountpoint\x18\x01 \x01(\t\x12\x12\n\nscan_roots\x18\x02 \x03(\t\"\xa5\x01\n\rConsoleConfig\x12\x35\n\x06output\x18\x01 \x01(\x0e\x32%.perfetto.protos.ConsoleConfig.Output\x12\x15\n\renable_colors\x18\x02 \x01(\x08\"F\n\x06Output\x12\x16\n\x12OUTPUT_UNSPECIFIED\x10\x00\x12\x11\n\rOUTPUT_STDOUT\x10\x01\x12\x11\n\rOUTPUT_STDERR\x10\x02\"Y\n\x11InterceptorConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x36\n\x0e\x63onsole_config\x18\x64 \x01(\x0b\x32\x1e.perfetto.protos.ConsoleConfig\"\xc0\x03\n\x12\x41ndroidPowerConfig\x12\x17\n\x0f\x62\x61ttery_poll_ms\x18\x01 \x01(\r\x12M\n\x10\x62\x61ttery_counters\x18\x02 \x03(\x0e\x32\x33.perfetto.protos.AndroidPowerConfig.BatteryCounters\x12\x1b\n\x13\x63ollect_power_rails\x18\x03 \x01(\x08\x12+\n#collect_energy_estimation_breakdown\x18\x04 \x01(\x08\x12&\n\x1e\x63ollect_entity_state_residency\x18\x05 \x01(\x08\"\xcf\x01\n\x0f\x42\x61tteryCounters\x12\x1f\n\x1b\x42\x41TTERY_COUNTER_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x42\x41TTERY_COUNTER_CHARGE\x10\x01\x12$\n BATTERY_COUNTER_CAPACITY_PERCENT\x10\x02\x12\x1b\n\x17\x42\x41TTERY_COUNTER_CURRENT\x10\x03\x12\x1f\n\x1b\x42\x41TTERY_COUNTER_CURRENT_AVG\x10\x04\x12\x1b\n\x17\x42\x41TTERY_COUNTER_VOLTAGE\x10\x05\"\xbf\x01\n\x13PriorityBoostConfig\x12@\n\x06policy\x18\x01 \x01(\x0e\x32\x30.perfetto.protos.PriorityBoostConfig.BoostPolicy\x12\x10\n\x08priority\x18\x02 \x01(\r\"T\n\x0b\x42oostPolicy\x12\x16\n\x12POLICY_UNSPECIFIED\x10\x00\x12\x16\n\x12POLICY_SCHED_OTHER\x10\x01\x12\x15\n\x11POLICY_SCHED_FIFO\x10\x02\"\xc9\x03\n\x12ProcessStatsConfig\x12:\n\x06quirks\x18\x01 \x03(\x0e\x32*.perfetto.protos.ProcessStatsConfig.Quirks\x12#\n\x1bscan_all_processes_on_start\x18\x02 \x01(\x08\x12\x1b\n\x13record_thread_names\x18\x03 \x01(\x08\x12\x1a\n\x12proc_stats_poll_ms\x18\x04 \x01(\r\x12\x1f\n\x17proc_stats_cache_ttl_ms\x18\x06 \x01(\r\x12\x19\n\x11scan_smaps_rollup\x18\n \x01(\x08\x12\x1a\n\x12record_process_age\x18\x0b \x01(\x08\x12\x1e\n\x16record_process_runtime\x18\x0c \x01(\x08\x12!\n\x19record_process_dmabuf_rss\x18\r \x01(\x08\x12\x1b\n\x13resolve_process_fds\x18\t \x01(\x08\"U\n\x06Quirks\x12\x16\n\x12QUIRKS_UNSPECIFIED\x10\x00\x12\x1c\n\x14\x44ISABLE_INITIAL_DUMP\x10\x01\x1a\x02\x08\x01\x12\x15\n\x11\x44ISABLE_ON_DEMAND\x10\x02J\x04\x08\x07\x10\x08J\x04\x08\x08\x10\t\"\xcc\x06\n\x0fHeapprofdConfig\x12\x1f\n\x17sampling_interval_bytes\x18\x01 \x01(\x04\x12)\n!adaptive_sampling_shmem_threshold\x18\x18 \x01(\x04\x12\x35\n-adaptive_sampling_max_sampling_interval_bytes\x18\x19 \x01(\x04\x12\x17\n\x0fprocess_cmdline\x18\x02 \x03(\t\x12\x0b\n\x03pid\x18\x04 \x03(\x04\x12\x1b\n\x13target_installed_by\x18\x1a \x03(\t\x12\r\n\x05heaps\x18\x14 \x03(\t\x12\x15\n\rexclude_heaps\x18\x1b \x03(\t\x12\x1a\n\x12stream_allocations\x18\x17 \x01(\x08\x12\x1f\n\x17heap_sampling_intervals\x18\x16 \x03(\x04\x12\x11\n\tall_heaps\x18\x15 \x01(\x08\x12\x0b\n\x03\x61ll\x18\x05 \x01(\x08\x12\x1f\n\x17min_anonymous_memory_kb\x18\x0f \x01(\r\x12\x1f\n\x17max_heapprofd_memory_kb\x18\x10 \x01(\r\x12\x1e\n\x16max_heapprofd_cpu_secs\x18\x11 \x01(\x04\x12\x1a\n\x12skip_symbol_prefix\x18\x07 \x03(\t\x12U\n\x16\x63ontinuous_dump_config\x18\x06 \x01(\x0b\x32\x35.perfetto.protos.HeapprofdConfig.ContinuousDumpConfig\x12\x18\n\x10shmem_size_bytes\x18\x08 \x01(\x04\x12\x14\n\x0c\x62lock_client\x18\t \x01(\x08\x12\x1f\n\x17\x62lock_client_timeout_us\x18\x0e \x01(\r\x12\x12\n\nno_startup\x18\n \x01(\x08\x12\x12\n\nno_running\x18\x0b \x01(\x08\x12\x13\n\x0b\x64ump_at_max\x18\r \x01(\x08\x12\x1d\n\x15\x64isable_fork_teardown\x18\x12 \x01(\x08\x12\x1f\n\x17\x64isable_vfork_detection\x18\x13 \x01(\x08\x1aG\n\x14\x43ontinuousDumpConfig\x12\x15\n\rdump_phase_ms\x18\x05 \x01(\r\x12\x18\n\x10\x64ump_interval_ms\x18\x06 \x01(\rJ\x04\x08\x0c\x10\r\"\xe1\x02\n\x0fJavaHprofConfig\x12\x17\n\x0fprocess_cmdline\x18\x01 \x03(\t\x12\x0b\n\x03pid\x18\x02 \x03(\x04\x12\x1b\n\x13target_installed_by\x18\x07 \x03(\t\x12U\n\x16\x63ontinuous_dump_config\x18\x03 \x01(\x0b\x32\x35.perfetto.protos.JavaHprofConfig.ContinuousDumpConfig\x12\x1f\n\x17min_anonymous_memory_kb\x18\x04 \x01(\r\x12\x12\n\ndump_smaps\x18\x05 \x01(\x08\x12\x15\n\rignored_types\x18\x06 \x03(\t\x1ah\n\x14\x43ontinuousDumpConfig\x12\x15\n\rdump_phase_ms\x18\x01 \x01(\r\x12\x18\n\x10\x64ump_interval_ms\x18\x02 \x01(\r\x12\x1f\n\x17scan_pids_only_on_start\x18\x03 \x01(\x08\"\xb7\n\n\nPerfEvents\x1a\x9d\x03\n\x08Timebase\x12\x13\n\tfrequency\x18\x02 \x01(\x04H\x00\x12\x10\n\x06period\x18\x01 \x01(\x04H\x00\x12\x18\n\x0epoll_period_ms\x18\x06 \x01(\rH\x00\x12\x36\n\x07\x63ounter\x18\x04 \x01(\x0e\x32#.perfetto.protos.PerfEvents.CounterH\x01\x12<\n\ntracepoint\x18\x03 \x01(\x0b\x32&.perfetto.protos.PerfEvents.TracepointH\x01\x12\x39\n\traw_event\x18\x05 \x01(\x0b\x32$.perfetto.protos.PerfEvents.RawEventH\x01\x12<\n\tmodifiers\x18\x0c \x03(\x0e\x32).perfetto.protos.PerfEvents.EventModifier\x12>\n\x0ftimestamp_clock\x18\x0b \x01(\x0e\x32%.perfetto.protos.PerfEvents.PerfClock\x12\x0c\n\x04name\x18\n \x01(\tB\n\n\x08intervalB\x07\n\x05\x65vent\x1a*\n\nTracepoint\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x02 \x01(\t\x1aJ\n\x08RawEvent\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x0e\n\x06\x63onfig\x18\x02 \x01(\x04\x12\x0f\n\x07\x63onfig1\x18\x03 \x01(\x04\x12\x0f\n\x07\x63onfig2\x18\x04 \x01(\x04\"\xe8\x03\n\x07\x43ounter\x12\x13\n\x0fUNKNOWN_COUNTER\x10\x00\x12\x10\n\x0cSW_CPU_CLOCK\x10\x01\x12\x12\n\x0eSW_PAGE_FAULTS\x10\x02\x12\x11\n\rSW_TASK_CLOCK\x10\x03\x12\x17\n\x13SW_CONTEXT_SWITCHES\x10\x04\x12\x15\n\x11SW_CPU_MIGRATIONS\x10\x05\x12\x16\n\x12SW_PAGE_FAULTS_MIN\x10\x06\x12\x16\n\x12SW_PAGE_FAULTS_MAJ\x10\x07\x12\x17\n\x13SW_ALIGNMENT_FAULTS\x10\x08\x12\x17\n\x13SW_EMULATION_FAULTS\x10\t\x12\x0c\n\x08SW_DUMMY\x10\x14\x12\x11\n\rHW_CPU_CYCLES\x10\n\x12\x13\n\x0fHW_INSTRUCTIONS\x10\x0b\x12\x17\n\x13HW_CACHE_REFERENCES\x10\x0c\x12\x13\n\x0fHW_CACHE_MISSES\x10\r\x12\x1a\n\x16HW_BRANCH_INSTRUCTIONS\x10\x0e\x12\x14\n\x10HW_BRANCH_MISSES\x10\x0f\x12\x11\n\rHW_BUS_CYCLES\x10\x10\x12\x1e\n\x1aHW_STALLED_CYCLES_FRONTEND\x10\x11\x12\x1d\n\x19HW_STALLED_CYCLES_BACKEND\x10\x12\x12\x15\n\x11HW_REF_CPU_CYCLES\x10\x13\"\x8d\x01\n\tPerfClock\x12\x16\n\x12UNKNOWN_PERF_CLOCK\x10\x00\x12\x17\n\x13PERF_CLOCK_REALTIME\x10\x01\x12\x18\n\x14PERF_CLOCK_MONOTONIC\x10\x02\x12\x1c\n\x18PERF_CLOCK_MONOTONIC_RAW\x10\x03\x12\x17\n\x13PERF_CLOCK_BOOTTIME\x10\x04\"\x95\x01\n\rEventModifier\x12\x1a\n\x16UNKNOWN_EVENT_MODIFIER\x10\x00\x12\"\n\x1e\x45VENT_MODIFIER_COUNT_USERSPACE\x10\x01\x12\x1f\n\x1b\x45VENT_MODIFIER_COUNT_KERNEL\x10\x02\x12#\n\x1f\x45VENT_MODIFIER_COUNT_HYPERVISOR\x10\x03\"\x95\x02\n\rFollowerEvent\x12\x36\n\x07\x63ounter\x18\x01 \x01(\x0e\x32#.perfetto.protos.PerfEvents.CounterH\x00\x12<\n\ntracepoint\x18\x02 \x01(\x0b\x32&.perfetto.protos.PerfEvents.TracepointH\x00\x12\x39\n\traw_event\x18\x03 \x01(\x0b\x32$.perfetto.protos.PerfEvents.RawEventH\x00\x12<\n\tmodifiers\x18\x05 \x03(\x0e\x32).perfetto.protos.PerfEvents.EventModifier\x12\x0c\n\x04name\x18\x04 \x01(\tB\x07\n\x05\x65vent\"\xb8\x08\n\x0fPerfEventConfig\x12\x36\n\x08timebase\x18\x0f \x01(\x0b\x32$.perfetto.protos.PerfEvents.Timebase\x12\x31\n\tfollowers\x18\x13 \x03(\x0b\x32\x1e.perfetto.protos.FollowerEvent\x12N\n\x12\x63\x61llstack_sampling\x18\x10 \x01(\x0b\x32\x32.perfetto.protos.PerfEventConfig.CallstackSampling\x12\x12\n\ntarget_cpu\x18\x14 \x03(\r\x12\"\n\x1aring_buffer_read_period_ms\x18\x08 \x01(\r\x12\x19\n\x11ring_buffer_pages\x18\x03 \x01(\r\x12!\n\x19max_enqueued_footprint_kb\x18\x11 \x01(\x04\x12\x1c\n\x14max_daemon_memory_kb\x18\r \x01(\r\x12$\n\x1cremote_descriptor_timeout_ms\x18\t \x01(\r\x12$\n\x1cunwind_state_clear_period_ms\x18\n \x01(\r\x12\x1b\n\x13target_installed_by\x18\x12 \x03(\t\x12\x10\n\x08\x61ll_cpus\x18\x01 \x01(\x08\x12\x1a\n\x12sampling_frequency\x18\x02 \x01(\r\x12\x15\n\rkernel_frames\x18\x0c \x01(\x08\x12\x12\n\ntarget_pid\x18\x04 \x03(\x05\x12\x16\n\x0etarget_cmdline\x18\x05 \x03(\t\x12\x13\n\x0b\x65xclude_pid\x18\x06 \x03(\x05\x12\x17\n\x0f\x65xclude_cmdline\x18\x07 \x03(\t\x12 \n\x18\x61\x64\x64itional_cmdline_count\x18\x0b \x01(\r\x1a\xa3\x01\n\x11\x43\x61llstackSampling\x12\x35\n\x05scope\x18\x01 \x01(\x0b\x32&.perfetto.protos.PerfEventConfig.Scope\x12\x15\n\rkernel_frames\x18\x02 \x01(\x08\x12@\n\x0buser_frames\x18\x03 \x01(\x0e\x32+.perfetto.protos.PerfEventConfig.UnwindMode\x1a\xa0\x01\n\x05Scope\x12\x12\n\ntarget_pid\x18\x01 \x03(\x05\x12\x16\n\x0etarget_cmdline\x18\x02 \x03(\t\x12\x13\n\x0b\x65xclude_pid\x18\x03 \x03(\x05\x12\x17\n\x0f\x65xclude_cmdline\x18\x04 \x03(\t\x12 \n\x18\x61\x64\x64itional_cmdline_count\x18\x05 \x01(\r\x12\x1b\n\x13process_shard_count\x18\x06 \x01(\r\"]\n\nUnwindMode\x12\x12\n\x0eUNWIND_UNKNOWN\x10\x00\x12\x0f\n\x0bUNWIND_SKIP\x10\x01\x12\x10\n\x0cUNWIND_DWARF\x10\x02\x12\x18\n\x14UNWIND_FRAME_POINTER\x10\x03J\x04\x08\x0e\x10\x0f\"\x9a\x01\n\x13StatsdTracingConfig\x12-\n\x0cpush_atom_id\x18\x01 \x03(\x0e\x32\x17.perfetto.protos.AtomId\x12\x18\n\x10raw_push_atom_id\x18\x02 \x03(\x05\x12:\n\x0bpull_config\x18\x03 \x03(\x0b\x32%.perfetto.protos.StatsdPullAtomConfig\"\x8c\x01\n\x14StatsdPullAtomConfig\x12-\n\x0cpull_atom_id\x18\x01 \x03(\x0e\x32\x17.perfetto.protos.AtomId\x12\x18\n\x10raw_pull_atom_id\x18\x02 \x03(\x05\x12\x19\n\x11pull_frequency_ms\x18\x03 \x01(\x05\x12\x10\n\x08packages\x18\x04 \x03(\t\"\xec\x04\n\x0eSysStatsConfig\x12\x19\n\x11meminfo_period_ms\x18\x01 \x01(\r\x12:\n\x10meminfo_counters\x18\x02 \x03(\x0e\x32 .perfetto.protos.MeminfoCounters\x12\x18\n\x10vmstat_period_ms\x18\x03 \x01(\r\x12\x38\n\x0fvmstat_counters\x18\x04 \x03(\x0e\x32\x1f.perfetto.protos.VmstatCounters\x12\x16\n\x0estat_period_ms\x18\x05 \x01(\r\x12\x43\n\rstat_counters\x18\x06 \x03(\x0e\x32,.perfetto.protos.SysStatsConfig.StatCounters\x12\x19\n\x11\x64\x65vfreq_period_ms\x18\x07 \x01(\r\x12\x19\n\x11\x63pufreq_period_ms\x18\x08 \x01(\r\x12\x1b\n\x13\x62uddyinfo_period_ms\x18\t \x01(\r\x12\x1a\n\x12\x64iskstat_period_ms\x18\n \x01(\r\x12\x15\n\rpsi_period_ms\x18\x0b \x01(\r\x12\x19\n\x11thermal_period_ms\x18\x0c \x01(\r\x12\x19\n\x11\x63puidle_period_ms\x18\r \x01(\r\x12\x19\n\x11gpufreq_period_ms\x18\x0e \x01(\r\"{\n\x0cStatCounters\x12\x14\n\x10STAT_UNSPECIFIED\x10\x00\x12\x12\n\x0eSTAT_CPU_TIMES\x10\x01\x12\x13\n\x0fSTAT_IRQ_COUNTS\x10\x02\x12\x17\n\x13STAT_SOFTIRQ_COUNTS\x10\x03\x12\x13\n\x0fSTAT_FORK_COUNT\x10\x04\"\x12\n\x10SystemInfoConfig\"\x8d\x04\n\nTestConfig\x12\x15\n\rmessage_count\x18\x01 \x01(\r\x12\x1f\n\x17max_messages_per_second\x18\x02 \x01(\r\x12\x0c\n\x04seed\x18\x03 \x01(\r\x12\x14\n\x0cmessage_size\x18\x04 \x01(\r\x12\x1e\n\x16send_batch_on_register\x18\x05 \x01(\x08\x12=\n\x0c\x64ummy_fields\x18\x06 \x01(\x0b\x32\'.perfetto.protos.TestConfig.DummyFields\x1a\xc3\x02\n\x0b\x44ummyFields\x12\x14\n\x0c\x66ield_uint32\x18\x01 \x01(\r\x12\x13\n\x0b\x66ield_int32\x18\x02 \x01(\x05\x12\x14\n\x0c\x66ield_uint64\x18\x03 \x01(\x04\x12\x13\n\x0b\x66ield_int64\x18\x04 \x01(\x03\x12\x15\n\rfield_fixed64\x18\x05 \x01(\x06\x12\x16\n\x0e\x66ield_sfixed64\x18\x06 \x01(\x10\x12\x15\n\rfield_fixed32\x18\x07 \x01(\x07\x12\x16\n\x0e\x66ield_sfixed32\x18\x08 \x01(\x0f\x12\x14\n\x0c\x66ield_double\x18\t \x01(\x01\x12\x13\n\x0b\x66ield_float\x18\n \x01(\x02\x12\x14\n\x0c\x66ield_sint64\x18\x0b \x01(\x12\x12\x14\n\x0c\x66ield_sint32\x18\x0c \x01(\x11\x12\x14\n\x0c\x66ield_string\x18\r \x01(\t\x12\x13\n\x0b\x66ield_bytes\x18\x0e \x01(\x0c\"\xd2\x02\n\x10TrackEventConfig\x12\x1b\n\x13\x64isabled_categories\x18\x01 \x03(\t\x12\x1a\n\x12\x65nabled_categories\x18\x02 \x03(\t\x12\x15\n\rdisabled_tags\x18\x03 \x03(\t\x12\x14\n\x0c\x65nabled_tags\x18\x04 \x03(\t\x12&\n\x1e\x64isable_incremental_timestamps\x18\x05 \x01(\x08\x12!\n\x19timestamp_unit_multiplier\x18\x06 \x01(\x04\x12 \n\x18\x66ilter_debug_annotations\x18\x07 \x01(\x08\x12#\n\x1b\x65nable_thread_time_sampling\x18\x08 \x01(\x08\x12\"\n\x1athread_time_subsampling_ns\x18\n \x01(\x04\x12\"\n\x1a\x66ilter_dynamic_event_names\x18\t \x01(\x08\"\xda\x1b\n\x10\x44\x61taSourceConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x15\n\rtarget_buffer\x18\x02 \x01(\r\x12\x19\n\x11trace_duration_ms\x18\x03 \x01(\r\x12)\n!prefer_suspend_clock_for_duration\x18z \x01(\x08\x12\x17\n\x0fstop_timeout_ms\x18\x07 \x01(\r\x12\x1f\n\x17\x65nable_extra_guardrails\x18\x06 \x01(\x08\x12M\n\x11session_initiator\x18\x08 \x01(\x0e\x32\x32.perfetto.protos.DataSourceConfig.SessionInitiator\x12\x1a\n\x12tracing_session_id\x18\x04 \x01(\x04\x12X\n\x17\x62uffer_exhausted_policy\x18\t \x01(\x0e\x32\x37.perfetto.protos.DataSourceConfig.BufferExhaustedPolicy\x12<\n\x0epriority_boost\x18\n \x01(\x0b\x32$.perfetto.protos.PriorityBoostConfig\x12\x38\n\rftrace_config\x18\x64 \x01(\x0b\x32\x1d.perfetto.protos.FtraceConfigB\x02(\x01\x12?\n\x11inode_file_config\x18\x66 \x01(\x0b\x32 .perfetto.protos.InodeFileConfigB\x02(\x01\x12\x45\n\x14process_stats_config\x18g \x01(\x0b\x32#.perfetto.protos.ProcessStatsConfigB\x02(\x01\x12=\n\x10sys_stats_config\x18h \x01(\x0b\x32\x1f.perfetto.protos.SysStatsConfigB\x02(\x01\x12>\n\x10heapprofd_config\x18i \x01(\x0b\x32 .perfetto.protos.HeapprofdConfigB\x02(\x01\x12?\n\x11java_hprof_config\x18n \x01(\x0b\x32 .perfetto.protos.JavaHprofConfigB\x02(\x01\x12\x45\n\x14\x61ndroid_power_config\x18j \x01(\x0b\x32#.perfetto.protos.AndroidPowerConfigB\x02(\x01\x12\x41\n\x12\x61ndroid_log_config\x18k \x01(\x0b\x32!.perfetto.protos.AndroidLogConfigB\x02(\x01\x12\x41\n\x12gpu_counter_config\x18l \x01(\x0b\x32!.perfetto.protos.GpuCounterConfigB\x02(\x01\x12\x65\n%android_game_intervention_list_config\x18t \x01(\x0b\x32\x32.perfetto.protos.AndroidGameInterventionListConfigB\x02(\x01\x12\x45\n\x14packages_list_config\x18m \x01(\x0b\x32#.perfetto.protos.PackagesListConfigB\x02(\x01\x12?\n\x11perf_event_config\x18o \x01(\x0b\x32 .perfetto.protos.PerfEventConfigB\x02(\x01\x12\x45\n\x14vulkan_memory_config\x18p \x01(\x0b\x32#.perfetto.protos.VulkanMemoryConfigB\x02(\x01\x12\x41\n\x12track_event_config\x18q \x01(\x0b\x32!.perfetto.protos.TrackEventConfigB\x02(\x01\x12R\n\x1b\x61ndroid_polled_state_config\x18r \x01(\x0b\x32).perfetto.protos.AndroidPolledStateConfigB\x02(\x01\x12X\n\x1e\x61ndroid_system_property_config\x18v \x01(\x0b\x32,.perfetto.protos.AndroidSystemPropertyConfigB\x02(\x01\x12G\n\x15statsd_tracing_config\x18u \x01(\x0b\x32$.perfetto.protos.StatsdTracingConfigB\x02(\x01\x12=\n\x12system_info_config\x18w \x01(\x0b\x32!.perfetto.protos.SystemInfoConfig\x12\x46\n\x14\x66rozen_ftrace_config\x18\x88\x01 \x01(\x0b\x32#.perfetto.protos.FrozenFtraceConfigB\x02(\x01\x12\x34\n\rchrome_config\x18\x65 \x01(\x0b\x32\x1d.perfetto.protos.ChromeConfig\x12\x30\n\tv8_config\x18\x7f \x01(\x0b\x32\x19.perfetto.protos.V8ConfigB\x02(\x01\x12>\n\x12interceptor_config\x18s \x01(\x0b\x32\".perfetto.protos.InterceptorConfig\x12R\n\x1bnetwork_packet_trace_config\x18x \x01(\x0b\x32).perfetto.protos.NetworkPacketTraceConfigB\x02(\x01\x12U\n\x1csurfaceflinger_layers_config\x18y \x01(\x0b\x32+.perfetto.protos.SurfaceFlingerLayersConfigB\x02(\x01\x12\x61\n\"surfaceflinger_transactions_config\x18{ \x01(\x0b\x32\x31.perfetto.protos.SurfaceFlingerTransactionsConfigB\x02(\x01\x12[\n android_sdk_sysprop_guard_config\x18| \x01(\x0b\x32-.perfetto.protos.AndroidSdkSyspropGuardConfigB\x02(\x01\x12\x32\n\netw_config\x18} \x01(\x0b\x32\x1a.perfetto.protos.EtwConfigB\x02(\x01\x12<\n\x0fprotolog_config\x18~ \x01(\x0b\x32\x1f.perfetto.protos.ProtoLogConfigB\x02(\x01\x12Q\n\x1a\x61ndroid_input_event_config\x18\x80\x01 \x01(\x0b\x32(.perfetto.protos.AndroidInputEventConfigB\x02(\x01\x12\x42\n\x12pixel_modem_config\x18\x81\x01 \x01(\x0b\x32!.perfetto.protos.PixelModemConfigB\x02(\x01\x12G\n\x14windowmanager_config\x18\x82\x01 \x01(\x0b\x32$.perfetto.protos.WindowManagerConfigB\x02(\x01\x12R\n\x17\x63hromium_system_metrics\x18\x83\x01 \x01(\x0b\x32,.perfetto.protos.ChromiumSystemMetricsConfigB\x02(\x01\x12L\n\x17kernel_wakelocks_config\x18\x84\x01 \x01(\x0b\x32&.perfetto.protos.KernelWakelocksConfigB\x02(\x01\x12L\n\x17gpu_renderstages_config\x18\x85\x01 \x01(\x0b\x32&.perfetto.protos.GpuRenderStagesConfigB\x02(\x01\x12X\n\x1a\x63hromium_histogram_samples\x18\x86\x01 \x01(\x0b\x32/.perfetto.protos.ChromiumHistogramSamplesConfigB\x02(\x01\x12\x46\n\x14\x61pp_wakelocks_config\x18\x87\x01 \x01(\x0b\x32#.perfetto.protos.AppWakelocksConfigB\x02(\x01\x12\x41\n\x12\x63pu_per_uid_config\x18\x89\x01 \x01(\x0b\x32 .perfetto.protos.CpuPerUidConfigB\x02(\x01\x12\x45\n\x10user_list_config\x18\x8a\x01 \x01(\x0b\x32&.perfetto.protos.AndroidUserListConfigB\x02(\x01\x12\x16\n\rlegacy_config\x18\xe8\x07 \x01(\t\x12\x31\n\x0b\x66or_testing\x18\xe9\x07 \x01(\x0b\x32\x1b.perfetto.protos.TestConfig\"[\n\x10SessionInitiator\x12!\n\x1dSESSION_INITIATOR_UNSPECIFIED\x10\x00\x12$\n SESSION_INITIATOR_TRUSTED_SYSTEM\x10\x01\"\xa1\x01\n\x15\x42ufferExhaustedPolicy\x12 \n\x1c\x42UFFER_EXHAUSTED_UNSPECIFIED\x10\x00\x12\x19\n\x15\x42UFFER_EXHAUSTED_DROP\x10\x01\x12%\n!BUFFER_EXHAUSTED_STALL_THEN_ABORT\x10\x02\x12$\n BUFFER_EXHAUSTED_STALL_THEN_DROP\x10\x03J\x0b\x08\xff\xff\xff\x7f\x10\x80\x80\x80\x80\x01\"\xa5%\n\x0bTraceConfig\x12:\n\x07\x62uffers\x18\x01 \x03(\x0b\x32).perfetto.protos.TraceConfig.BufferConfig\x12=\n\x0c\x64\x61ta_sources\x18\x02 \x03(\x0b\x32\'.perfetto.protos.TraceConfig.DataSource\x12L\n\x14\x62uiltin_data_sources\x18\x14 \x01(\x0b\x32..perfetto.protos.TraceConfig.BuiltinDataSource\x12\x13\n\x0b\x64uration_ms\x18\x03 \x01(\r\x12)\n!prefer_suspend_clock_for_duration\x18$ \x01(\x08\x12\x1f\n\x17\x65nable_extra_guardrails\x18\x04 \x01(\x08\x12I\n\rlockdown_mode\x18\x05 \x01(\x0e\x32\x32.perfetto.protos.TraceConfig.LockdownModeOperation\x12>\n\tproducers\x18\x06 \x03(\x0b\x32+.perfetto.protos.TraceConfig.ProducerConfig\x12\x44\n\x0fstatsd_metadata\x18\x07 \x01(\x0b\x32+.perfetto.protos.TraceConfig.StatsdMetadata\x12\x17\n\x0fwrite_into_file\x18\x08 \x01(\x08\x12\x13\n\x0boutput_path\x18\x1d \x01(\t\x12\x1c\n\x14\x66ile_write_period_ms\x18\t \x01(\r\x12\x1b\n\x13max_file_size_bytes\x18\n \x01(\x04\x12L\n\x13guardrail_overrides\x18\x0b \x01(\x0b\x32/.perfetto.protos.TraceConfig.GuardrailOverrides\x12\x16\n\x0e\x64\x65\x66\x65rred_start\x18\x0c \x01(\x08\x12\x17\n\x0f\x66lush_period_ms\x18\r \x01(\r\x12\x18\n\x10\x66lush_timeout_ms\x18\x0e \x01(\r\x12#\n\x1b\x64\x61ta_source_stop_timeout_ms\x18\x17 \x01(\r\x12\x16\n\x0enotify_traceur\x18\x10 \x01(\x08\x12\x17\n\x0f\x62ugreport_score\x18\x1e \x01(\x05\x12\x1a\n\x12\x62ugreport_filename\x18& \x01(\t\x12\x42\n\x0etrigger_config\x18\x11 \x01(\x0b\x32*.perfetto.protos.TraceConfig.TriggerConfig\x12\x19\n\x11\x61\x63tivate_triggers\x18\x12 \x03(\t\x12U\n\x18incremental_state_config\x18\x15 \x01(\x0b\x32\x33.perfetto.protos.TraceConfig.IncrementalStateConfig\x12$\n\x18\x61llow_user_build_tracing\x18\x13 \x01(\x08\x42\x02\x18\x01\x12\x1b\n\x13unique_session_name\x18\x16 \x01(\t\x12\x46\n\x10\x63ompression_type\x18\x18 \x01(\x0e\x32,.perfetto.protos.TraceConfig.CompressionType\x12Q\n\x16incident_report_config\x18\x19 \x01(\x0b\x32\x31.perfetto.protos.TraceConfig.IncidentReportConfig\x12\x42\n\x0estatsd_logging\x18\x1f \x01(\x0e\x32*.perfetto.protos.TraceConfig.StatsdLogging\x12\x1a\n\x0etrace_uuid_msb\x18\x1b \x01(\x03\x42\x02\x18\x01\x12\x1a\n\x0etrace_uuid_lsb\x18\x1c \x01(\x03\x42\x02\x18\x01\x12>\n\x0ctrace_filter\x18! \x01(\x0b\x32(.perfetto.protos.TraceConfig.TraceFilter\x12O\n\x15\x61ndroid_report_config\x18\" \x01(\x0b\x32\x30.perfetto.protos.TraceConfig.AndroidReportConfig\x12N\n\x15\x63md_trace_start_delay\x18# \x01(\x0b\x32/.perfetto.protos.TraceConfig.CmdTraceStartDelay\x12I\n\x12session_semaphores\x18\' \x03(\x0b\x32-.perfetto.protos.TraceConfig.SessionSemaphore\x12<\n\x0epriority_boost\x18( \x01(\x0b\x32$.perfetto.protos.PriorityBoostConfig\x12\x16\n\x0e\x65xclusive_prio\x18) \x01(\r\x12\'\n\x1fno_flush_before_write_into_file\x18* \x01(\x08\x12\x1a\n\x12trace_all_machines\x18+ \x01(\x08\x1a\xea\x01\n\x0c\x42ufferConfig\x12\x0f\n\x07size_kb\x18\x01 \x01(\r\x12I\n\x0b\x66ill_policy\x18\x04 \x01(\x0e\x32\x34.perfetto.protos.TraceConfig.BufferConfig.FillPolicy\x12\x19\n\x11transfer_on_clone\x18\x05 \x01(\x08\x12\x1a\n\x12\x63lear_before_clone\x18\x06 \x01(\x08\";\n\nFillPolicy\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0f\n\x0bRING_BUFFER\x10\x01\x12\x0b\n\x07\x44ISCARD\x10\x02J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04\x1a\x9e\x01\n\nDataSource\x12\x31\n\x06\x63onfig\x18\x01 \x01(\x0b\x32!.perfetto.protos.DataSourceConfig\x12\x1c\n\x14producer_name_filter\x18\x02 \x03(\t\x12\"\n\x1aproducer_name_regex_filter\x18\x03 \x03(\t\x12\x1b\n\x13machine_name_filter\x18\x04 \x03(\t\x1a\xbf\x02\n\x11\x42uiltinDataSource\x12\"\n\x1a\x64isable_clock_snapshotting\x18\x01 \x01(\x08\x12\x1c\n\x14\x64isable_trace_config\x18\x02 \x01(\x08\x12\x1b\n\x13\x64isable_system_info\x18\x03 \x01(\x08\x12\x1e\n\x16\x64isable_service_events\x18\x04 \x01(\x08\x12:\n\x13primary_trace_clock\x18\x05 \x01(\x0e\x32\x1d.perfetto.protos.BuiltinClock\x12\x1c\n\x14snapshot_interval_ms\x18\x06 \x01(\r\x12)\n!prefer_suspend_clock_for_snapshot\x18\x07 \x01(\x08\x12&\n\x1e\x64isable_chunk_usage_histograms\x18\x08 \x01(\x08\x1aR\n\x0eProducerConfig\x12\x15\n\rproducer_name\x18\x01 \x01(\t\x12\x13\n\x0bshm_size_kb\x18\x02 \x01(\r\x12\x14\n\x0cpage_size_kb\x18\x03 \x01(\r\x1a\x8e\x01\n\x0eStatsdMetadata\x12\x1b\n\x13triggering_alert_id\x18\x01 \x01(\x03\x12\x1d\n\x15triggering_config_uid\x18\x02 \x01(\x05\x12\x1c\n\x14triggering_config_id\x18\x03 \x01(\x03\x12\"\n\x1atriggering_subscription_id\x18\x04 \x01(\x03\x1a^\n\x12GuardrailOverrides\x12$\n\x18max_upload_per_day_bytes\x18\x01 \x01(\x04\x42\x02\x18\x01\x12\"\n\x1amax_tracing_buffer_size_kb\x18\x02 \x01(\r\x1a\xca\x03\n\rTriggerConfig\x12L\n\x0ctrigger_mode\x18\x01 \x01(\x0e\x32\x36.perfetto.protos.TraceConfig.TriggerConfig.TriggerMode\x12\'\n\x1fuse_clone_snapshot_if_available\x18\x05 \x01(\x08\x12\x44\n\x08triggers\x18\x02 \x03(\x0b\x32\x32.perfetto.protos.TraceConfig.TriggerConfig.Trigger\x12\x1a\n\x12trigger_timeout_ms\x18\x03 \x01(\r\x1a{\n\x07Trigger\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1b\n\x13producer_name_regex\x18\x02 \x01(\t\x12\x15\n\rstop_delay_ms\x18\x03 \x01(\r\x12\x14\n\x0cmax_per_24_h\x18\x04 \x01(\r\x12\x18\n\x10skip_probability\x18\x05 \x01(\x01\"]\n\x0bTriggerMode\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x11\n\rSTART_TRACING\x10\x01\x12\x10\n\x0cSTOP_TRACING\x10\x02\x12\x12\n\x0e\x43LONE_SNAPSHOT\x10\x04\"\x04\x08\x03\x10\x03J\x04\x08\x04\x10\x05\x1a\x31\n\x16IncrementalStateConfig\x12\x17\n\x0f\x63lear_period_ms\x18\x01 \x01(\r\x1a\x97\x01\n\x14IncidentReportConfig\x12\x1b\n\x13\x64\x65stination_package\x18\x01 \x01(\t\x12\x19\n\x11\x64\x65stination_class\x18\x02 \x01(\t\x12\x15\n\rprivacy_level\x18\x03 \x01(\x05\x12\x16\n\x0eskip_incidentd\x18\x05 \x01(\x08\x12\x18\n\x0cskip_dropbox\x18\x04 \x01(\x08\x42\x02\x18\x01\x1a\xd5\x04\n\x0bTraceFilter\x12\x10\n\x08\x62ytecode\x18\x01 \x01(\x0c\x12\x13\n\x0b\x62ytecode_v2\x18\x02 \x01(\x0c\x12W\n\x13string_filter_chain\x18\x03 \x01(\x0b\x32:.perfetto.protos.TraceConfig.TraceFilter.StringFilterChain\x1a\x9a\x01\n\x10StringFilterRule\x12K\n\x06policy\x18\x01 \x01(\x0e\x32;.perfetto.protos.TraceConfig.TraceFilter.StringFilterPolicy\x12\x15\n\rregex_pattern\x18\x02 \x01(\t\x12\"\n\x1a\x61trace_payload_starts_with\x18\x03 \x01(\t\x1a]\n\x11StringFilterChain\x12H\n\x05rules\x18\x01 \x03(\x0b\x32\x39.perfetto.protos.TraceConfig.TraceFilter.StringFilterRule\"\xc9\x01\n\x12StringFilterPolicy\x12\x13\n\x0fSFP_UNSPECIFIED\x10\x00\x12\x1b\n\x17SFP_MATCH_REDACT_GROUPS\x10\x01\x12\"\n\x1eSFP_ATRACE_MATCH_REDACT_GROUPS\x10\x02\x12\x13\n\x0fSFP_MATCH_BREAK\x10\x03\x12\x1a\n\x16SFP_ATRACE_MATCH_BREAK\x10\x04\x12,\n(SFP_ATRACE_REPEATED_SEARCH_REDACT_GROUPS\x10\x05\x1a\x97\x01\n\x13\x41ndroidReportConfig\x12 \n\x18reporter_service_package\x18\x01 \x01(\t\x12\x1e\n\x16reporter_service_class\x18\x02 \x01(\t\x12\x13\n\x0bskip_report\x18\x03 \x01(\x08\x12)\n!use_pipe_in_framework_for_testing\x18\x04 \x01(\x08\x1a@\n\x12\x43mdTraceStartDelay\x12\x14\n\x0cmin_delay_ms\x18\x01 \x01(\r\x12\x14\n\x0cmax_delay_ms\x18\x02 \x01(\r\x1a\x41\n\x10SessionSemaphore\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1f\n\x17max_other_session_count\x18\x02 \x01(\x04\"U\n\x15LockdownModeOperation\x12\x16\n\x12LOCKDOWN_UNCHANGED\x10\x00\x12\x12\n\x0eLOCKDOWN_CLEAR\x10\x01\x12\x10\n\x0cLOCKDOWN_SET\x10\x02\"Q\n\x0f\x43ompressionType\x12 \n\x1c\x43OMPRESSION_TYPE_UNSPECIFIED\x10\x00\x12\x1c\n\x18\x43OMPRESSION_TYPE_DEFLATE\x10\x01\"h\n\rStatsdLogging\x12\x1e\n\x1aSTATSD_LOGGING_UNSPECIFIED\x10\x00\x12\x1a\n\x16STATSD_LOGGING_ENABLED\x10\x01\x12\x1b\n\x17STATSD_LOGGING_DISABLED\x10\x02J\x04\x08\x0f\x10\x10J\x04\x08%\x10&J\x04\x08\x1a\x10\x1bJ\x04\x08 \x10!\"M\n\x07Utsname\x12\x0f\n\x07sysname\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\x0f\n\x07release\x18\x03 \x01(\t\x12\x0f\n\x07machine\x18\x04 \x01(\t\"\xc2\x03\n\nSystemInfo\x12)\n\x07utsname\x18\x01 \x01(\x0b\x32\x18.perfetto.protos.Utsname\x12!\n\x19\x61ndroid_build_fingerprint\x18\x02 \x01(\t\x12#\n\x1b\x61ndroid_device_manufacturer\x18\x0e \x01(\t\x12\x19\n\x11\x61ndroid_soc_model\x18\t \x01(\t\x12\x1f\n\x17\x61ndroid_guest_soc_model\x18\r \x01(\t\x12!\n\x19\x61ndroid_hardware_revision\x18\n \x01(\t\x12\x1d\n\x15\x61ndroid_storage_model\x18\x0b \x01(\t\x12\x19\n\x11\x61ndroid_ram_model\x18\x0c \x01(\t\x12\x1e\n\x16\x61ndroid_serial_console\x18\x0f \x01(\t\x12\x1f\n\x17tracing_service_version\x18\x04 \x01(\t\x12\x1b\n\x13\x61ndroid_sdk_version\x18\x05 \x01(\x04\x12\x11\n\tpage_size\x18\x06 \x01(\r\x12\x10\n\x08num_cpus\x18\x08 \x01(\r\x12\x19\n\x11timezone_off_mins\x18\x07 \x01(\x05\x12\n\n\x02hz\x18\x03 \x01(\x03\"\x91\x0c\n\nTraceStats\x12=\n\x0c\x62uffer_stats\x18\x01 \x03(\x0b\x32\'.perfetto.protos.TraceStats.BufferStats\x12#\n\x1b\x63hunk_payload_histogram_def\x18\x11 \x03(\x03\x12=\n\x0cwriter_stats\x18\x12 \x03(\x0b\x32\'.perfetto.protos.TraceStats.WriterStats\x12\x1b\n\x13producers_connected\x18\x02 \x01(\r\x12\x16\n\x0eproducers_seen\x18\x03 \x01(\x04\x12\x1f\n\x17\x64\x61ta_sources_registered\x18\x04 \x01(\r\x12\x19\n\x11\x64\x61ta_sources_seen\x18\x05 \x01(\x04\x12\x18\n\x10tracing_sessions\x18\x06 \x01(\r\x12\x15\n\rtotal_buffers\x18\x07 \x01(\r\x12\x18\n\x10\x63hunks_discarded\x18\x08 \x01(\x04\x12\x19\n\x11patches_discarded\x18\t \x01(\x04\x12\x17\n\x0finvalid_packets\x18\n \x01(\x04\x12=\n\x0c\x66ilter_stats\x18\x0b \x01(\x0b\x32\'.perfetto.protos.TraceStats.FilterStats\x12\x19\n\x11\x66lushes_requested\x18\x0c \x01(\x04\x12\x19\n\x11\x66lushes_succeeded\x18\r \x01(\x04\x12\x16\n\x0e\x66lushes_failed\x18\x0e \x01(\x04\x12J\n\x13\x66inal_flush_outcome\x18\x0f \x01(\x0e\x32-.perfetto.protos.TraceStats.FinalFlushOutcome\x1a\x8a\x04\n\x0b\x42ufferStats\x12\x13\n\x0b\x62uffer_size\x18\x0c \x01(\x04\x12\x15\n\rbytes_written\x18\x01 \x01(\x04\x12\x19\n\x11\x62ytes_overwritten\x18\r \x01(\x04\x12\x12\n\nbytes_read\x18\x0e \x01(\x04\x12\x1d\n\x15padding_bytes_written\x18\x0f \x01(\x04\x12\x1d\n\x15padding_bytes_cleared\x18\x10 \x01(\x04\x12\x16\n\x0e\x63hunks_written\x18\x02 \x01(\x04\x12\x18\n\x10\x63hunks_rewritten\x18\n \x01(\x04\x12\x1a\n\x12\x63hunks_overwritten\x18\x03 \x01(\x04\x12\x18\n\x10\x63hunks_discarded\x18\x12 \x01(\x04\x12\x13\n\x0b\x63hunks_read\x18\x11 \x01(\x04\x12%\n\x1d\x63hunks_committed_out_of_order\x18\x0b \x01(\x04\x12\x18\n\x10write_wrap_count\x18\x04 \x01(\x04\x12\x19\n\x11patches_succeeded\x18\x05 \x01(\x04\x12\x16\n\x0epatches_failed\x18\x06 \x01(\x04\x12\x1c\n\x14readaheads_succeeded\x18\x07 \x01(\x04\x12\x19\n\x11readaheads_failed\x18\x08 \x01(\x04\x12\x16\n\x0e\x61\x62i_violations\x18\t \x01(\x04\x12 \n\x18trace_writer_packet_loss\x18\x13 \x01(\x04\x1a\x87\x01\n\x0bWriterStats\x12\x13\n\x0bsequence_id\x18\x01 \x01(\x04\x12\x0e\n\x06\x62uffer\x18\x04 \x01(\r\x12*\n\x1e\x63hunk_payload_histogram_counts\x18\x02 \x03(\x04\x42\x02\x10\x01\x12\'\n\x1b\x63hunk_payload_histogram_sum\x18\x03 \x03(\x03\x42\x02\x10\x01\x1a\x9a\x01\n\x0b\x46ilterStats\x12\x15\n\rinput_packets\x18\x01 \x01(\x04\x12\x13\n\x0binput_bytes\x18\x02 \x01(\x04\x12\x14\n\x0coutput_bytes\x18\x03 \x01(\x04\x12\x0e\n\x06\x65rrors\x18\x04 \x01(\x04\x12\x15\n\rtime_taken_ns\x18\x05 \x01(\x04\x12\"\n\x1a\x62ytes_discarded_per_buffer\x18\x14 \x03(\x04\"c\n\x11\x46inalFlushOutcome\x12\x1b\n\x17\x46INAL_FLUSH_UNSPECIFIED\x10\x00\x12\x19\n\x15\x46INAL_FLUSH_SUCCEEDED\x10\x01\x12\x16\n\x12\x46INAL_FLUSH_FAILED\x10\x02\"\x8f\x03\n\x1b\x41ndroidGameInterventionList\x12S\n\rgame_packages\x18\x01 \x03(\x0b\x32<.perfetto.protos.AndroidGameInterventionList.GamePackageInfo\x12\x13\n\x0bparse_error\x18\x02 \x01(\x08\x12\x12\n\nread_error\x18\x03 \x01(\x08\x1aZ\n\x0cGameModeInfo\x12\x0c\n\x04mode\x18\x01 \x01(\r\x12\x11\n\tuse_angle\x18\x02 \x01(\x08\x12\x1c\n\x14resolution_downscale\x18\x03 \x01(\x02\x12\x0b\n\x03\x66ps\x18\x04 \x01(\x02\x1a\x95\x01\n\x0fGamePackageInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03uid\x18\x02 \x01(\x04\x12\x14\n\x0c\x63urrent_mode\x18\x03 \x01(\r\x12Q\n\x0egame_mode_info\x18\x04 \x03(\x0b\x32\x39.perfetto.protos.AndroidGameInterventionList.GameModeInfo\"\xb2\x04\n\x10\x41ndroidLogPacket\x12:\n\x06\x65vents\x18\x01 \x03(\x0b\x32*.perfetto.protos.AndroidLogPacket.LogEvent\x12\x36\n\x05stats\x18\x02 \x01(\x0b\x32\'.perfetto.protos.AndroidLogPacket.Stats\x1a\xe4\x02\n\x08LogEvent\x12-\n\x06log_id\x18\x01 \x01(\x0e\x32\x1d.perfetto.protos.AndroidLogId\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x0b\n\x03tid\x18\x03 \x01(\x05\x12\x0b\n\x03uid\x18\x04 \x01(\x05\x12\x11\n\ttimestamp\x18\x05 \x01(\x04\x12\x0b\n\x03tag\x18\x06 \x01(\t\x12\x31\n\x04prio\x18\x07 \x01(\x0e\x32#.perfetto.protos.AndroidLogPriority\x12\x0f\n\x07message\x18\x08 \x01(\t\x12<\n\x04\x61rgs\x18\t \x03(\x0b\x32..perfetto.protos.AndroidLogPacket.LogEvent.Arg\x1a`\n\x03\x41rg\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\tint_value\x18\x02 \x01(\x03H\x00\x12\x15\n\x0b\x66loat_value\x18\x03 \x01(\x02H\x00\x12\x16\n\x0cstring_value\x18\x04 \x01(\tH\x00\x42\x07\n\x05value\x1a\x43\n\x05Stats\x12\x11\n\tnum_total\x18\x01 \x01(\x04\x12\x12\n\nnum_failed\x18\x02 \x01(\x04\x12\x13\n\x0bnum_skipped\x18\x03 \x01(\x04\"\x8b\x01\n\x15\x41ndroidSystemProperty\x12\x44\n\x06values\x18\x01 \x03(\x0b\x32\x34.perfetto.protos.AndroidSystemProperty.PropertyValue\x1a,\n\rPropertyValue\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"r\n\x0f\x41ppWakelockInfo\x12\x0b\n\x03iid\x18\x01 \x01(\x05\x12\x0b\n\x03tag\x18\x02 \x01(\t\x12\r\n\x05\x66lags\x18\x03 \x01(\x05\x12\x11\n\towner_pid\x18\x04 \x01(\x05\x12\x11\n\towner_uid\x18\x05 \x01(\x05\x12\x10\n\x08work_uid\x18\x06 \x01(\x05\"\x84\x01\n\x11\x41ppWakelockBundle\x12\x15\n\tintern_id\x18\x01 \x03(\rB\x02\x10\x01\x12\x16\n\nencoded_ts\x18\x02 \x03(\x04\x42\x02\x10\x01\x12.\n\x04info\x18\x03 \x01(\x0b\x32 .perfetto.protos.AppWakelockInfo\x12\x10\n\x08\x61\x63quired\x18\x04 \x01(\x08\"\xdd\x01\n\x13\x42luetoothTraceEvent\x12>\n\x0bpacket_type\x18\x01 \x01(\x0e\x32).perfetto.protos.BluetoothTracePacketType\x12\r\n\x05\x63ount\x18\x02 \x01(\r\x12\x0e\n\x06length\x18\x03 \x01(\r\x12\x10\n\x08\x64uration\x18\x04 \x01(\r\x12\x0f\n\x07op_code\x18\x05 \x01(\r\x12\x12\n\nevent_code\x18\x06 \x01(\r\x12\x15\n\rsubevent_code\x18\x07 \x01(\r\x12\x19\n\x11\x63onnection_handle\x18\x08 \x01(\r\"\x82\x07\n\x17\x41ndroidCameraFrameEvent\x12\x12\n\nsession_id\x18\x01 \x01(\x04\x12\x11\n\tcamera_id\x18\x02 \x01(\r\x12\x14\n\x0c\x66rame_number\x18\x03 \x01(\x03\x12\x12\n\nrequest_id\x18\x04 \x01(\x03\x12\x1b\n\x13request_received_ns\x18\x05 \x01(\x03\x12%\n\x1drequest_processing_started_ns\x18\x06 \x01(\x03\x12\x1c\n\x14start_of_exposure_ns\x18\x07 \x01(\x03\x12\x19\n\x11start_of_frame_ns\x18\x08 \x01(\x03\x12\x1d\n\x15responses_all_sent_ns\x18\t \x01(\x03\x12[\n\x15\x63\x61pture_result_status\x18\n \x01(\x0e\x32<.perfetto.protos.AndroidCameraFrameEvent.CaptureResultStatus\x12\x1d\n\x15skipped_sensor_frames\x18\x0b \x01(\x05\x12\x16\n\x0e\x63\x61pture_intent\x18\x0c \x01(\x05\x12\x13\n\x0bnum_streams\x18\r \x01(\x05\x12\x65\n\x17node_processing_details\x18\x0e \x03(\x0b\x32\x44.perfetto.protos.AndroidCameraFrameEvent.CameraNodeProcessingDetails\x12\x1b\n\x13vendor_data_version\x18\x0f \x01(\x05\x12\x13\n\x0bvendor_data\x18\x10 \x01(\x0c\x1a\x85\x01\n\x1b\x43\x61meraNodeProcessingDetails\x12\x0f\n\x07node_id\x18\x01 \x01(\x03\x12\x1b\n\x13start_processing_ns\x18\x02 \x01(\x03\x12\x19\n\x11\x65nd_processing_ns\x18\x03 \x01(\x03\x12\x1d\n\x15scheduling_latency_ns\x18\x04 \x01(\x03\"\xaf\x01\n\x13\x43\x61ptureResultStatus\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\r\n\tSTATUS_OK\x10\x01\x12\x1f\n\x1bSTATUS_EARLY_METADATA_ERROR\x10\x02\x12\x1f\n\x1bSTATUS_FINAL_METADATA_ERROR\x10\x03\x12\x17\n\x13STATUS_BUFFER_ERROR\x10\x04\x12\x16\n\x12STATUS_FLUSH_ERROR\x10\x05\"\xb7\x04\n\x19\x41ndroidCameraSessionStats\x12\x12\n\nsession_id\x18\x01 \x01(\x04\x12\x45\n\x05graph\x18\x02 \x01(\x0b\x32\x36.perfetto.protos.AndroidCameraSessionStats.CameraGraph\x1a\xbe\x03\n\x0b\x43\x61meraGraph\x12P\n\x05nodes\x18\x01 \x03(\x0b\x32\x41.perfetto.protos.AndroidCameraSessionStats.CameraGraph.CameraNode\x12P\n\x05\x65\x64ges\x18\x02 \x03(\x0b\x32\x41.perfetto.protos.AndroidCameraSessionStats.CameraGraph.CameraEdge\x1av\n\nCameraNode\x12\x0f\n\x07node_id\x18\x01 \x01(\x03\x12\x11\n\tinput_ids\x18\x02 \x03(\x03\x12\x12\n\noutput_ids\x18\x03 \x03(\x03\x12\x1b\n\x13vendor_data_version\x18\x04 \x01(\x05\x12\x13\n\x0bvendor_data\x18\x05 \x01(\x0c\x1a\x92\x01\n\nCameraEdge\x12\x16\n\x0eoutput_node_id\x18\x01 \x01(\x03\x12\x11\n\toutput_id\x18\x02 \x01(\x03\x12\x15\n\rinput_node_id\x18\x03 \x01(\x03\x12\x10\n\x08input_id\x18\x04 \x01(\x03\x12\x1b\n\x13vendor_data_version\x18\x05 \x01(\x05\x12\x13\n\x0bvendor_data\x18\x06 \x01(\x0c\"R\n\rCpuPerUidData\x12\x15\n\rcluster_count\x18\x01 \x01(\r\x12\x0f\n\x03uid\x18\x02 \x03(\rB\x02\x10\x01\x12\x19\n\rtotal_time_ms\x18\x03 \x03(\x04\x42\x02\x10\x01\"\xeb\x14\n\x12\x46rameTimelineEvent\x12\x65\n\x1c\x65xpected_display_frame_start\x18\x01 \x01(\x0b\x32=.perfetto.protos.FrameTimelineEvent.ExpectedDisplayFrameStartH\x00\x12\x61\n\x1a\x61\x63tual_display_frame_start\x18\x02 \x01(\x0b\x32;.perfetto.protos.FrameTimelineEvent.ActualDisplayFrameStartH\x00\x12\x65\n\x1c\x65xpected_surface_frame_start\x18\x03 \x01(\x0b\x32=.perfetto.protos.FrameTimelineEvent.ExpectedSurfaceFrameStartH\x00\x12\x61\n\x1a\x61\x63tual_surface_frame_start\x18\x04 \x01(\x0b\x32;.perfetto.protos.FrameTimelineEvent.ActualSurfaceFrameStartH\x00\x12\x41\n\tframe_end\x18\x05 \x01(\x0b\x32,.perfetto.protos.FrameTimelineEvent.FrameEndH\x00\x1ax\n\x19\x45xpectedSurfaceFrameStart\x12\x0e\n\x06\x63ookie\x18\x01 \x01(\x03\x12\r\n\x05token\x18\x02 \x01(\x03\x12\x1b\n\x13\x64isplay_frame_token\x18\x03 \x01(\x03\x12\x0b\n\x03pid\x18\x04 \x01(\x05\x12\x12\n\nlayer_name\x18\x05 \x01(\t\x1a\x88\x05\n\x17\x41\x63tualSurfaceFrameStart\x12\x0e\n\x06\x63ookie\x18\x01 \x01(\x03\x12\r\n\x05token\x18\x02 \x01(\x03\x12\x1b\n\x13\x64isplay_frame_token\x18\x03 \x01(\x03\x12\x0b\n\x03pid\x18\x04 \x01(\x05\x12\x12\n\nlayer_name\x18\x05 \x01(\t\x12\x45\n\x0cpresent_type\x18\x06 \x01(\x0e\x32/.perfetto.protos.FrameTimelineEvent.PresentType\x12\x16\n\x0eon_time_finish\x18\x07 \x01(\x08\x12\x17\n\x0fgpu_composition\x18\x08 \x01(\x08\x12\x11\n\tjank_type\x18\t \x01(\x05\x12K\n\x0fprediction_type\x18\n \x01(\x0e\x32\x32.perfetto.protos.FrameTimelineEvent.PredictionType\x12\x11\n\tis_buffer\x18\x0b \x01(\x08\x12P\n\x12jank_severity_type\x18\x0c \x01(\x0e\x32\x34.perfetto.protos.FrameTimelineEvent.JankSeverityType\x12\x1c\n\x14present_delay_millis\x18\r \x01(\x02\x12$\n\x1cvsync_resynced_jitter_millis\x18\x0e \x01(\x02\x12\x1b\n\x13jank_severity_score\x18\x0f \x01(\x02\x12\x1e\n\x16jank_type_experimental\x18\x10 \x01(\x05\x12R\n\x19present_type_experimental\x18\x11 \x01(\x0e\x32/.perfetto.protos.FrameTimelineEvent.PresentType\x1aG\n\x19\x45xpectedDisplayFrameStart\x12\x0e\n\x06\x63ookie\x18\x01 \x01(\x03\x12\r\n\x05token\x18\x02 \x01(\x03\x12\x0b\n\x03pid\x18\x03 \x01(\x05\x1a\x9e\x04\n\x17\x41\x63tualDisplayFrameStart\x12\x0e\n\x06\x63ookie\x18\x01 \x01(\x03\x12\r\n\x05token\x18\x02 \x01(\x03\x12\x0b\n\x03pid\x18\x03 \x01(\x05\x12\x45\n\x0cpresent_type\x18\x04 \x01(\x0e\x32/.perfetto.protos.FrameTimelineEvent.PresentType\x12\x16\n\x0eon_time_finish\x18\x05 \x01(\x08\x12\x17\n\x0fgpu_composition\x18\x06 \x01(\x08\x12\x11\n\tjank_type\x18\x07 \x01(\x05\x12K\n\x0fprediction_type\x18\x08 \x01(\x0e\x32\x32.perfetto.protos.FrameTimelineEvent.PredictionType\x12P\n\x12jank_severity_type\x18\t \x01(\x0e\x32\x34.perfetto.protos.FrameTimelineEvent.JankSeverityType\x12\x1c\n\x14present_delay_millis\x18\n \x01(\x02\x12\x1b\n\x13jank_severity_score\x18\x0b \x01(\x02\x12\x1e\n\x16jank_type_experimental\x18\x0c \x01(\x05\x12R\n\x19present_type_experimental\x18\r \x01(\x0e\x32/.perfetto.protos.FrameTimelineEvent.PresentType\x1a\x1a\n\x08\x46rameEnd\x12\x0e\n\x06\x63ookie\x18\x01 \x01(\x03\"\x82\x03\n\x08JankType\x12\x14\n\x10JANK_UNSPECIFIED\x10\x00\x12\r\n\tJANK_NONE\x10\x01\x12\x16\n\x12JANK_SF_SCHEDULING\x10\x02\x12\x19\n\x15JANK_PREDICTION_ERROR\x10\x04\x12\x14\n\x10JANK_DISPLAY_HAL\x10\x08\x12\x1f\n\x1bJANK_SF_CPU_DEADLINE_MISSED\x10\x10\x12\x1f\n\x1bJANK_SF_GPU_DEADLINE_MISSED\x10 \x12\x1c\n\x18JANK_APP_DEADLINE_MISSED\x10@\x12\x19\n\x14JANK_BUFFER_STUFFING\x10\x80\x01\x12\x11\n\x0cJANK_UNKNOWN\x10\x80\x02\x12\x15\n\x10JANK_SF_STUFFING\x10\x80\x04\x12\x11\n\x0cJANK_DROPPED\x10\x80\x08\x12\x17\n\x12JANK_NON_ANIMATING\x10\x80\x10\x12\x1d\n\x18JANK_APP_RESYNCED_JITTER\x10\x80 \x12\x18\n\x13JANK_DISPLAY_NOT_ON\x10\x80@\"d\n\x10JankSeverityType\x12\x14\n\x10SEVERITY_UNKNOWN\x10\x00\x12\x11\n\rSEVERITY_NONE\x10\x01\x12\x14\n\x10SEVERITY_PARTIAL\x10\x02\x12\x11\n\rSEVERITY_FULL\x10\x03\"\x8a\x01\n\x0bPresentType\x12\x17\n\x13PRESENT_UNSPECIFIED\x10\x00\x12\x13\n\x0fPRESENT_ON_TIME\x10\x01\x12\x10\n\x0cPRESENT_LATE\x10\x02\x12\x11\n\rPRESENT_EARLY\x10\x03\x12\x13\n\x0fPRESENT_DROPPED\x10\x04\x12\x13\n\x0fPRESENT_UNKNOWN\x10\x05\"r\n\x0ePredictionType\x12\x1a\n\x16PREDICTION_UNSPECIFIED\x10\x00\x12\x14\n\x10PREDICTION_VALID\x10\x01\x12\x16\n\x12PREDICTION_EXPIRED\x10\x02\x12\x16\n\x12PREDICTION_UNKNOWN\x10\x03\x42\x07\n\x05\x65vent\"=\n\x10GpuMemTotalEvent\x12\x0e\n\x06gpu_id\x18\x01 \x01(\r\x12\x0b\n\x03pid\x18\x02 \x01(\r\x12\x0c\n\x04size\x18\x03 \x01(\x04\"\xf1\x03\n\x12GraphicsFrameEvent\x12\x45\n\x0c\x62uffer_event\x18\x01 \x01(\x0b\x32/.perfetto.protos.GraphicsFrameEvent.BufferEvent\x1a\xa2\x01\n\x0b\x42ufferEvent\x12\x14\n\x0c\x66rame_number\x18\x01 \x01(\r\x12\x41\n\x04type\x18\x02 \x01(\x0e\x32\x33.perfetto.protos.GraphicsFrameEvent.BufferEventType\x12\x12\n\nlayer_name\x18\x03 \x01(\t\x12\x13\n\x0b\x64uration_ns\x18\x04 \x01(\x04\x12\x11\n\tbuffer_id\x18\x05 \x01(\r\"\xee\x01\n\x0f\x42ufferEventType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07\x44\x45QUEUE\x10\x01\x12\t\n\x05QUEUE\x10\x02\x12\x08\n\x04POST\x10\x03\x12\x11\n\rACQUIRE_FENCE\x10\x04\x12\t\n\x05LATCH\x10\x05\x12\x1a\n\x16HWC_COMPOSITION_QUEUED\x10\x06\x12\x18\n\x14\x46\x41LLBACK_COMPOSITION\x10\x07\x12\x11\n\rPRESENT_FENCE\x10\x08\x12\x11\n\rRELEASE_FENCE\x10\t\x12\n\n\x06MODIFY\x10\n\x12\n\n\x06\x44\x45TACH\x10\x0b\x12\n\n\x06\x41TTACH\x10\x0c\x12\n\n\x06\x43\x41NCEL\x10\r\"@\n\x13InitialDisplayState\x12\x15\n\rdisplay_state\x18\x01 \x01(\x05\x12\x12\n\nbrightness\x18\x02 \x01(\x01\"\xfa\x02\n\x12KernelWakelockData\x12>\n\x08wakelock\x18\x01 \x03(\x0b\x32,.perfetto.protos.KernelWakelockData.Wakelock\x12\x17\n\x0bwakelock_id\x18\x02 \x03(\rB\x02\x10\x01\x12\x1c\n\x10time_held_millis\x18\x03 \x03(\x04\x42\x02\x10\x01\x12\x13\n\x0b\x65rror_flags\x18\x04 \x01(\x04\x1a\xd7\x01\n\x08Wakelock\x12\x13\n\x0bwakelock_id\x18\x01 \x01(\r\x12\x15\n\rwakelock_name\x18\x02 \x01(\t\x12H\n\rwakelock_type\x18\x03 \x01(\x0e\x32\x31.perfetto.protos.KernelWakelockData.Wakelock.Type\"U\n\x04Type\x12\x19\n\x15WAKELOCK_TYPE_UNKNOWN\x10\x00\x12\x18\n\x14WAKELOCK_TYPE_KERNEL\x10\x01\x12\x18\n\x14WAKELOCK_TYPE_NATIVE\x10\x02\"\x83\x02\n\x12NetworkPacketEvent\x12\x34\n\tdirection\x18\x01 \x01(\x0e\x32!.perfetto.protos.TrafficDirection\x12\x19\n\x11network_interface\x18\x02 \x01(\t\x12\x0e\n\x06length\x18\x03 \x01(\r\x12\x0b\n\x03uid\x18\x04 \x01(\r\x12\x0b\n\x03tag\x18\x05 \x01(\r\x12\x10\n\x08ip_proto\x18\x06 \x01(\r\x12\x11\n\ttcp_flags\x18\x07 \x01(\r\x12\x12\n\nlocal_port\x18\x08 \x01(\r\x12\x13\n\x0bremote_port\x18\t \x01(\r\x12\x11\n\ticmp_type\x18\n \x01(\r\x12\x11\n\ticmp_code\x18\x0b \x01(\r\"\xea\x01\n\x13NetworkPacketBundle\x12\r\n\x03iid\x18\x01 \x01(\x04H\x00\x12\x32\n\x03\x63tx\x18\x02 \x01(\x0b\x32#.perfetto.protos.NetworkPacketEventH\x00\x12\x1d\n\x11packet_timestamps\x18\x03 \x03(\x04\x42\x02\x10\x01\x12\x1a\n\x0epacket_lengths\x18\x04 \x03(\rB\x02\x10\x01\x12\x15\n\rtotal_packets\x18\x05 \x01(\r\x12\x16\n\x0etotal_duration\x18\x06 \x01(\x04\x12\x14\n\x0ctotal_length\x18\x07 \x01(\x04\x42\x10\n\x0epacket_context\"U\n\x14NetworkPacketContext\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x30\n\x03\x63tx\x18\x02 \x01(\x0b\x32#.perfetto.protos.NetworkPacketEvent\"\xe8\x01\n\x0cPackagesList\x12;\n\x08packages\x18\x01 \x03(\x0b\x32).perfetto.protos.PackagesList.PackageInfo\x12\x13\n\x0bparse_error\x18\x02 \x01(\x08\x12\x12\n\nread_error\x18\x03 \x01(\x08\x1ar\n\x0bPackageInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03uid\x18\x02 \x01(\x04\x12\x12\n\ndebuggable\x18\x03 \x01(\x08\x12\x1e\n\x16profileable_from_shell\x18\x04 \x01(\x08\x12\x14\n\x0cversion_code\x18\x05 \x01(\x03\"<\n\x10PixelModemEvents\x12\x0e\n\x06\x65vents\x18\x01 \x03(\x0c\x12\x18\n\x10\x65vent_time_nanos\x18\x02 \x03(\x04\"+\n\x17PixelModemTokenDatabase\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\x0c\"\x9b\x01\n\x0fProtoLogMessage\x12\x12\n\nmessage_id\x18\x01 \x01(\x06\x12\x16\n\x0estr_param_iids\x18\x02 \x03(\r\x12\x15\n\rsint64_params\x18\x03 \x03(\x12\x12\x15\n\rdouble_params\x18\x04 \x03(\x01\x12\x16\n\x0e\x62oolean_params\x18\x05 \x03(\x05\x12\x16\n\x0estacktrace_iid\x18\x06 \x01(\r\"\xd0\x02\n\x14ProtoLogViewerConfig\x12\x43\n\x08messages\x18\x01 \x03(\x0b\x32\x31.perfetto.protos.ProtoLogViewerConfig.MessageData\x12;\n\x06groups\x18\x02 \x03(\x0b\x32+.perfetto.protos.ProtoLogViewerConfig.Group\x1a\x85\x01\n\x0bMessageData\x12\x12\n\nmessage_id\x18\x01 \x01(\x06\x12\x0f\n\x07message\x18\x02 \x01(\t\x12-\n\x05level\x18\x03 \x01(\x0e\x32\x1e.perfetto.protos.ProtoLogLevel\x12\x10\n\x08group_id\x18\x04 \x01(\r\x12\x10\n\x08location\x18\x05 \x01(\t\x1a.\n\x05Group\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0b\n\x03tag\x18\x03 \x01(\t\"\x99\x04\n\x0fShellTransition\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x16\n\x0e\x63reate_time_ns\x18\x02 \x01(\x03\x12\x14\n\x0csend_time_ns\x18\x03 \x01(\x03\x12\x18\n\x10\x64ispatch_time_ns\x18\x04 \x01(\x03\x12\x15\n\rmerge_time_ns\x18\x05 \x01(\x03\x12\x1d\n\x15merge_request_time_ns\x18\x06 \x01(\x03\x12\x1b\n\x13shell_abort_time_ns\x18\x07 \x01(\x03\x12\x18\n\x10wm_abort_time_ns\x18\x08 \x01(\x03\x12\x16\n\x0e\x66inish_time_ns\x18\t \x01(\x03\x12\x1c\n\x14start_transaction_id\x18\n \x01(\x04\x12\x1d\n\x15\x66inish_transaction_id\x18\x0b \x01(\x04\x12\x0f\n\x07handler\x18\x0c \x01(\x05\x12\x0c\n\x04type\x18\r \x01(\x05\x12\x38\n\x07targets\x18\x0e \x03(\x0b\x32\'.perfetto.protos.ShellTransition.Target\x12\x14\n\x0cmerge_target\x18\x0f \x01(\x05\x12\r\n\x05\x66lags\x18\x10 \x01(\x05\x12&\n\x1estarting_window_remove_time_ns\x18\x11 \x01(\x03\x1aJ\n\x06Target\x12\x0c\n\x04mode\x18\x01 \x01(\x05\x12\x10\n\x08layer_id\x18\x02 \x01(\x05\x12\x11\n\twindow_id\x18\x03 \x01(\x05\x12\r\n\x05\x66lags\x18\x04 \x01(\x05\"M\n\x14ShellHandlerMappings\x12\x35\n\x07mapping\x18\x01 \x03(\x0b\x32$.perfetto.protos.ShellHandlerMapping\"/\n\x13ShellHandlerMapping\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\"E\n\tRectProto\x12\x0c\n\x04left\x18\x01 \x01(\x05\x12\x0b\n\x03top\x18\x02 \x01(\x05\x12\r\n\x05right\x18\x03 \x01(\x05\x12\x0e\n\x06\x62ottom\x18\x04 \x01(\x05\"=\n\x0bRegionProto\x12(\n\x04rect\x18\x02 \x03(\x0b\x32\x1a.perfetto.protos.RectProtoJ\x04\x08\x01\x10\x02\"!\n\tSizeProto\x12\t\n\x01w\x18\x01 \x01(\x05\x12\t\n\x01h\x18\x02 \x01(\x05\"V\n\x0eTransformProto\x12\x0c\n\x04\x64sdx\x18\x01 \x01(\x02\x12\x0c\n\x04\x64tdx\x18\x02 \x01(\x02\x12\x0c\n\x04\x64sdy\x18\x03 \x01(\x02\x12\x0c\n\x04\x64tdy\x18\x04 \x01(\x02\x12\x0c\n\x04type\x18\x05 \x01(\x05\"8\n\nColorProto\x12\t\n\x01r\x18\x01 \x01(\x02\x12\t\n\x01g\x18\x02 \x01(\x02\x12\t\n\x01\x62\x18\x03 \x01(\x02\x12\t\n\x01\x61\x18\x04 \x01(\x02\"\xbf\x04\n\x14InputWindowInfoProto\x12\x1b\n\x13layout_params_flags\x18\x01 \x01(\r\x12\x1a\n\x12layout_params_type\x18\x02 \x01(\x05\x12)\n\x05\x66rame\x18\x03 \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12\x36\n\x10touchable_region\x18\x04 \x01(\x0b\x32\x1c.perfetto.protos.RegionProto\x12\x15\n\rsurface_inset\x18\x05 \x01(\x05\x12\x0f\n\x07visible\x18\x06 \x01(\x08\x12\x1c\n\x10\x63\x61n_receive_keys\x18\x07 \x01(\x08\x42\x02\x18\x01\x12\x11\n\tfocusable\x18\x08 \x01(\x08\x12\x15\n\rhas_wallpaper\x18\t \x01(\x08\x12\x1b\n\x13global_scale_factor\x18\n \x01(\x02\x12\x1a\n\x0ewindow_x_scale\x18\x0b \x01(\x02\x42\x02\x18\x01\x12\x1a\n\x0ewindow_y_scale\x18\x0c \x01(\x02\x42\x02\x18\x01\x12\x15\n\rcrop_layer_id\x18\r \x01(\x05\x12*\n\"replace_touchable_region_with_crop\x18\x0e \x01(\x08\x12\x39\n\x15touchable_region_crop\x18\x0f \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12\x32\n\ttransform\x18\x10 \x01(\x0b\x32\x1f.perfetto.protos.TransformProto\x12\x14\n\x0cinput_config\x18\x11 \x01(\r\"\xba\x03\n\nBlurRegion\x12\x13\n\x0b\x62lur_radius\x18\x01 \x01(\r\x12\x1c\n\x10\x63orner_radius_tl\x18\x02 \x01(\rB\x02\x18\x01\x12\x1c\n\x10\x63orner_radius_tr\x18\x03 \x01(\rB\x02\x18\x01\x12\x1c\n\x10\x63orner_radius_bl\x18\x04 \x01(\rB\x02\x18\x01\x12\x1c\n\x10\x63orner_radius_br\x18\x05 \x01(\x02\x42\x02\x18\x01\x12\x19\n\x11\x63orner_radius_tlx\x18\x0b \x01(\x02\x12\x19\n\x11\x63orner_radius_tly\x18\x0c \x01(\x02\x12\x19\n\x11\x63orner_radius_trx\x18\r \x01(\x02\x12\x19\n\x11\x63orner_radius_try\x18\x0e \x01(\x02\x12\x19\n\x11\x63orner_radius_blx\x18\x0f \x01(\x02\x12\x19\n\x11\x63orner_radius_bly\x18\x10 \x01(\x02\x12\x19\n\x11\x63orner_radius_brx\x18\x11 \x01(\x02\x12\x19\n\x11\x63orner_radius_bry\x18\x12 \x01(\x02\x12\r\n\x05\x61lpha\x18\x06 \x01(\x02\x12\x0c\n\x04left\x18\x07 \x01(\x05\x12\x0b\n\x03top\x18\x08 \x01(\x05\x12\r\n\x05right\x18\t \x01(\x05\x12\x0e\n\x06\x62ottom\x18\n \x01(\x05\"&\n\x13\x43olorTransformProto\x12\x0f\n\x03val\x18\x01 \x03(\x02\x42\x02\x10\x01\"\xce\x01\n\x11\x42oxShadowSettings\x12G\n\x0b\x62ox_shadows\x18\x01 \x03(\x0b\x32\x32.perfetto.protos.BoxShadowSettings.BoxShadowParams\x1ap\n\x0f\x42oxShadowParams\x12\x13\n\x0b\x62lur_radius\x18\x01 \x01(\x02\x12\x15\n\rspread_radius\x18\x02 \x01(\x02\x12\r\n\x05\x63olor\x18\x03 \x01(\x05\x12\x10\n\x08offset_x\x18\x04 \x01(\x02\x12\x10\n\x08offset_y\x18\x05 \x01(\x02\"5\n\x0e\x42orderSettings\x12\x14\n\x0cstroke_width\x18\x01 \x01(\x02\x12\r\n\x05\x63olor\x18\x02 \x01(\x05\"\xd8\x01\n\x14LayersTraceFileProto\x12\x14\n\x0cmagic_number\x18\x01 \x01(\x06\x12\x33\n\x05\x65ntry\x18\x02 \x03(\x0b\x32$.perfetto.protos.LayersSnapshotProto\x12)\n!real_to_elapsed_time_offset_nanos\x18\x03 \x01(\x06\"J\n\x0bMagicNumber\x12\x0b\n\x07INVALID\x10\x00\x12\x16\n\x0eMAGIC_NUMBER_L\x10\xcc\xb2\xc9\xa2\x05\x12\x16\n\x0eMAGIC_NUMBER_H\x10\xd2\x82\x8d\xaa\x04\"\x83\x02\n\x13LayersSnapshotProto\x12\x1e\n\x16\x65lapsed_realtime_nanos\x18\x01 \x01(\x10\x12\r\n\x05where\x18\x02 \x01(\t\x12,\n\x06layers\x18\x03 \x01(\x0b\x32\x1c.perfetto.protos.LayersProto\x12\x10\n\x08hwc_blob\x18\x04 \x01(\t\x12\"\n\x1a\x65xcludes_composition_state\x18\x05 \x01(\x08\x12\x16\n\x0emissed_entries\x18\x06 \x01(\r\x12/\n\x08\x64isplays\x18\x07 \x03(\x0b\x32\x1d.perfetto.protos.DisplayProto\x12\x10\n\x08vsync_id\x18\x08 \x01(\x03\":\n\x0bLayersProto\x12+\n\x06layers\x18\x01 \x03(\x0b\x32\x1b.perfetto.protos.LayerProto\"\x89\x02\n\x0c\x44isplayProto\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0blayer_stack\x18\x03 \x01(\r\x12(\n\x04size\x18\x04 \x01(\x0b\x32\x1a.perfetto.protos.SizeProto\x12:\n\x16layer_stack_space_rect\x18\x05 \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12\x32\n\ttransform\x18\x06 \x01(\x0b\x32\x1f.perfetto.protos.TransformProto\x12\x12\n\nis_virtual\x18\x07 \x01(\x08\x12\r\n\x05\x64pi_x\x18\x08 \x01(\x01\x12\r\n\x05\x64pi_y\x18\t \x01(\x01\"\xcb\x15\n\nLayerProto\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x14\n\x08\x63hildren\x18\x03 \x03(\x05\x42\x02\x10\x01\x12\x15\n\trelatives\x18\x04 \x03(\x05\x42\x02\x10\x01\x12\x0c\n\x04type\x18\x05 \x01(\t\x12\x38\n\x12transparent_region\x18\x06 \x01(\x0b\x32\x1c.perfetto.protos.RegionProto\x12\x34\n\x0evisible_region\x18\x07 \x01(\x0b\x32\x1c.perfetto.protos.RegionProto\x12\x33\n\rdamage_region\x18\x08 \x01(\x0b\x32\x1c.perfetto.protos.RegionProto\x12\x13\n\x0blayer_stack\x18\t \x01(\r\x12\t\n\x01z\x18\n \x01(\x05\x12\x30\n\x08position\x18\x0b \x01(\x0b\x32\x1e.perfetto.protos.PositionProto\x12:\n\x12requested_position\x18\x0c \x01(\x0b\x32\x1e.perfetto.protos.PositionProto\x12(\n\x04size\x18\r \x01(\x0b\x32\x1a.perfetto.protos.SizeProto\x12(\n\x04\x63rop\x18\x0e \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12\x32\n\nfinal_crop\x18\x0f \x01(\x0b\x32\x1a.perfetto.protos.RectProtoB\x02\x18\x01\x12\x11\n\tis_opaque\x18\x10 \x01(\x08\x12\x12\n\ninvalidate\x18\x11 \x01(\x08\x12\x11\n\tdataspace\x18\x12 \x01(\t\x12\x14\n\x0cpixel_format\x18\x13 \x01(\t\x12*\n\x05\x63olor\x18\x14 \x01(\x0b\x32\x1b.perfetto.protos.ColorProto\x12\x34\n\x0frequested_color\x18\x15 \x01(\x0b\x32\x1b.perfetto.protos.ColorProto\x12\r\n\x05\x66lags\x18\x16 \x01(\r\x12\x32\n\ttransform\x18\x17 \x01(\x0b\x32\x1f.perfetto.protos.TransformProto\x12<\n\x13requested_transform\x18\x18 \x01(\x0b\x32\x1f.perfetto.protos.TransformProto\x12\x0e\n\x06parent\x18\x19 \x01(\x05\x12\x1b\n\x13z_order_relative_of\x18\x1a \x01(\x05\x12\x39\n\ractive_buffer\x18\x1b \x01(\x0b\x32\".perfetto.protos.ActiveBufferProto\x12\x15\n\rqueued_frames\x18\x1c \x01(\x05\x12\x17\n\x0frefresh_pending\x18\x1d \x01(\x08\x12-\n\thwc_frame\x18\x1e \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12\x31\n\x08hwc_crop\x18\x1f \x01(\x0b\x32\x1f.perfetto.protos.FloatRectProto\x12\x15\n\rhwc_transform\x18  \x01(\x05\x12\x17\n\x0bwindow_type\x18! \x01(\x05\x42\x02\x18\x01\x12\x12\n\x06\x61pp_id\x18\" \x01(\x05\x42\x02\x18\x01\x12\x41\n\x14hwc_composition_type\x18# \x01(\x0e\x32#.perfetto.protos.HwcCompositionType\x12\x14\n\x0cis_protected\x18$ \x01(\x08\x12\x12\n\ncurr_frame\x18% \x01(\x04\x12\x39\n\rbarrier_layer\x18& \x03(\x0b\x32\".perfetto.protos.BarrierLayerProto\x12\x39\n\x10\x62uffer_transform\x18\' \x01(\x0b\x32\x1f.perfetto.protos.TransformProto\x12\x1e\n\x16\x65\x66\x66\x65\x63tive_scaling_mode\x18( \x01(\x05\x12\x19\n\rcorner_radius\x18) \x01(\x02\x42\x02\x18\x01\x12;\n\x08metadata\x18* \x03(\x0b\x32).perfetto.protos.LayerProto.MetadataEntry\x12<\n\x13\x65\x66\x66\x65\x63tive_transform\x18+ \x01(\x0b\x32\x1f.perfetto.protos.TransformProto\x12\x36\n\rsource_bounds\x18, \x01(\x0b\x32\x1f.perfetto.protos.FloatRectProto\x12/\n\x06\x62ounds\x18- \x01(\x0b\x32\x1f.perfetto.protos.FloatRectProto\x12\x36\n\rscreen_bounds\x18. \x01(\x0b\x32\x1f.perfetto.protos.FloatRectProto\x12@\n\x11input_window_info\x18/ \x01(\x0b\x32%.perfetto.protos.InputWindowInfoProto\x12;\n\x12\x63orner_radius_crop\x18\x30 \x01(\x0b\x32\x1f.perfetto.protos.FloatRectProto\x12\x15\n\rshadow_radius\x18\x31 \x01(\x02\x12=\n\x0f\x63olor_transform\x18\x32 \x01(\x0b\x32$.perfetto.protos.ColorTransformProto\x12\x16\n\x0eis_relative_of\x18\x33 \x01(\x08\x12\x1e\n\x16\x62\x61\x63kground_blur_radius\x18\x34 \x01(\x05\x12\x11\n\towner_uid\x18\x35 \x01(\r\x12\x31\n\x0c\x62lur_regions\x18\x36 \x03(\x0b\x32\x1b.perfetto.protos.BlurRegion\x12\x1a\n\x12is_trusted_overlay\x18\x37 \x01(\x08\x12#\n\x17requested_corner_radius\x18\x38 \x01(\x02\x42\x02\x18\x01\x12\x35\n\x11\x64\x65stination_frame\x18\x39 \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12\x13\n\x0boriginal_id\x18: \x01(\r\x12\x38\n\x0ftrusted_overlay\x18; \x01(\x0e\x32\x1f.perfetto.protos.TrustedOverlay\x12\x1d\n\x15\x62\x61\x63kground_blur_scale\x18< \x01(\x02\x12\x37\n\x0c\x63orner_radii\x18= \x01(\x0b\x32!.perfetto.protos.CornerRadiiProto\x12\x41\n\x16requested_corner_radii\x18> \x01(\x0b\x32!.perfetto.protos.CornerRadiiProto\x12\x44\n\x19\x63lient_drawn_corner_radii\x18? \x01(\x0b\x32!.perfetto.protos.CornerRadiiProto\x12\x1f\n\x17system_content_priority\x18@ \x01(\x05\x12?\n\x13\x62ox_shadow_settings\x18\x41 \x01(\x0b\x32\".perfetto.protos.BoxShadowSettings\x12\x38\n\x0f\x62order_settings\x18\x42 \x01(\x0b\x32\x1f.perfetto.protos.BorderSettings\x12:\n\x0f\x65\x66\x66\x65\x63tive_radii\x18\x43 \x01(\x0b\x32!.perfetto.protos.CornerRadiiProto\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"%\n\rPositionProto\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02\"J\n\x0e\x46loatRectProto\x12\x0c\n\x04left\x18\x01 \x01(\x02\x12\x0b\n\x03top\x18\x02 \x01(\x02\x12\r\n\x05right\x18\x03 \x01(\x02\x12\x0e\n\x06\x62ottom\x18\x04 \x01(\x02\"B\n\x10\x43ornerRadiiProto\x12\n\n\x02tl\x18\x01 \x01(\x02\x12\n\n\x02tr\x18\x02 \x01(\x02\x12\n\n\x02\x62l\x18\x03 \x01(\x02\x12\n\n\x02\x62r\x18\x04 \x01(\x02\"a\n\x11\x41\x63tiveBufferProto\x12\r\n\x05width\x18\x01 \x01(\r\x12\x0e\n\x06height\x18\x02 \x01(\r\x12\x0e\n\x06stride\x18\x03 \x01(\r\x12\x0e\n\x06\x66ormat\x18\x04 \x01(\x05\x12\r\n\x05usage\x18\x05 \x01(\x04\"5\n\x11\x42\x61rrierLayerProto\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x14\n\x0c\x66rame_number\x18\x02 \x01(\x04\"\xeb\x01\n\x14TransactionTraceFile\x12\x14\n\x0cmagic_number\x18\x01 \x01(\x06\x12\x35\n\x05\x65ntry\x18\x02 \x03(\x0b\x32&.perfetto.protos.TransactionTraceEntry\x12)\n!real_to_elapsed_time_offset_nanos\x18\x03 \x01(\x06\x12\x0f\n\x07version\x18\x04 \x01(\r\"J\n\x0bMagicNumber\x12\x0b\n\x07INVALID\x10\x00\x12\x16\n\x0eMAGIC_NUMBER_L\x10\xd4\x9c\xe1\xa2\x05\x12\x16\n\x0eMAGIC_NUMBER_H\x10\xd2\x82\x8d\xaa\x04\"\x92\x03\n\x15TransactionTraceEntry\x12\x1e\n\x16\x65lapsed_realtime_nanos\x18\x01 \x01(\x03\x12\x10\n\x08vsync_id\x18\x02 \x01(\x03\x12\x37\n\x0ctransactions\x18\x03 \x03(\x0b\x32!.perfetto.protos.TransactionState\x12\x38\n\x0c\x61\x64\x64\x65\x64_layers\x18\x04 \x03(\x0b\x32\".perfetto.protos.LayerCreationArgs\x12\x18\n\x10\x64\x65stroyed_layers\x18\x05 \x03(\r\x12\x35\n\x0e\x61\x64\x64\x65\x64_displays\x18\x06 \x03(\x0b\x32\x1d.perfetto.protos.DisplayState\x12\x18\n\x10removed_displays\x18\x07 \x03(\x05\x12\x1f\n\x17\x64\x65stroyed_layer_handles\x18\x08 \x03(\r\x12\x18\n\x10\x64isplays_changed\x18\t \x01(\x08\x12.\n\x08\x64isplays\x18\n \x03(\x0b\x32\x1c.perfetto.protos.DisplayInfo\"\xce\x02\n\x0b\x44isplayInfo\x12\x13\n\x0blayer_stack\x18\x01 \x01(\r\x12\x12\n\ndisplay_id\x18\x02 \x01(\x05\x12\x15\n\rlogical_width\x18\x03 \x01(\x05\x12\x16\n\x0elogical_height\x18\x04 \x01(\x05\x12\x35\n\x11transform_inverse\x18\x05 \x01(\x0b\x32\x1a.perfetto.protos.Transform\x12-\n\ttransform\x18\x06 \x01(\x0b\x32\x1a.perfetto.protos.Transform\x12\x16\n\x0ereceives_input\x18\x07 \x01(\x08\x12\x11\n\tis_secure\x18\x08 \x01(\x08\x12\x12\n\nis_primary\x18\t \x01(\x08\x12\x12\n\nis_virtual\x18\n \x01(\x08\x12\x16\n\x0erotation_flags\x18\x0b \x01(\x05\x12\x16\n\x0etransform_hint\x18\x0c \x01(\x05\"\xa1\x01\n\x11LayerCreationArgs\x12\x10\n\x08layer_id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x11\n\tparent_id\x18\x04 \x01(\r\x12\x16\n\x0emirror_from_id\x18\x05 \x01(\r\x12\x13\n\x0b\x61\x64\x64_to_root\x18\x06 \x01(\x08\x12\x1d\n\x15layer_stack_to_mirror\x18\x07 \x01(\r\"[\n\tTransform\x12\x0c\n\x04\x64sdx\x18\x01 \x01(\x02\x12\x0c\n\x04\x64tdx\x18\x02 \x01(\x02\x12\x0c\n\x04\x64tdy\x18\x03 \x01(\x02\x12\x0c\n\x04\x64sdy\x18\x04 \x01(\x02\x12\n\n\x02tx\x18\x05 \x01(\x02\x12\n\n\x02ty\x18\x06 \x01(\x02\"9\n\x12TransactionBarrier\x12\x15\n\rbarrier_token\x18\x01 \x01(\t\x12\x0c\n\x04kind\x18\x02 \x01(\r\"\xe5\x02\n\x10TransactionState\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x0b\n\x03uid\x18\x02 \x01(\x05\x12\x10\n\x08vsync_id\x18\x03 \x01(\x03\x12\x16\n\x0einput_event_id\x18\x04 \x01(\x05\x12\x11\n\tpost_time\x18\x05 \x01(\x03\x12\x16\n\x0etransaction_id\x18\x06 \x01(\x04\x12\x32\n\rlayer_changes\x18\x07 \x03(\x0b\x32\x1b.perfetto.protos.LayerState\x12\x36\n\x0f\x64isplay_changes\x18\x08 \x03(\x0b\x32\x1d.perfetto.protos.DisplayState\x12\x1e\n\x16merged_transaction_ids\x18\t \x03(\x04\x12\x13\n\x0b\x61pply_token\x18\n \x01(\x04\x12\x41\n\x14transaction_barriers\x18\x0b \x03(\x0b\x32#.perfetto.protos.TransactionBarrier\"\xd4$\n\nLayerState\x12\x10\n\x08layer_id\x18\x01 \x01(\r\x12\x0c\n\x04what\x18\x02 \x01(\x04\x12\t\n\x01x\x18\x03 \x01(\x02\x12\t\n\x01y\x18\x04 \x01(\x02\x12\t\n\x01z\x18\x05 \x01(\x05\x12\t\n\x01w\x18\x06 \x01(\r\x12\t\n\x01h\x18\x07 \x01(\r\x12\x13\n\x0blayer_stack\x18\x08 \x01(\r\x12\r\n\x05\x66lags\x18\t \x01(\r\x12\x0c\n\x04mask\x18\n \x01(\r\x12\x34\n\x06matrix\x18\x0b \x01(\x0b\x32$.perfetto.protos.LayerState.Matrix22\x12\x19\n\rcorner_radius\x18\x0c \x01(\x02\x42\x02\x18\x01\x12\x1e\n\x16\x62\x61\x63kground_blur_radius\x18\r \x01(\r\x12\x11\n\tparent_id\x18\x0e \x01(\r\x12\x1a\n\x12relative_parent_id\x18\x0f \x01(\r\x12\r\n\x05\x61lpha\x18\x10 \x01(\x02\x12\x31\n\x05\x63olor\x18\x11 \x01(\x0b\x32\".perfetto.protos.LayerState.Color3\x12\x38\n\x12transparent_region\x18\x12 \x01(\x0b\x32\x1c.perfetto.protos.RegionProto\x12\x11\n\ttransform\x18\x13 \x01(\r\x12$\n\x1ctransform_to_display_inverse\x18\x14 \x01(\x08\x12(\n\x04\x63rop\x18\x15 \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12;\n\x0b\x62uffer_data\x18\x16 \x01(\x0b\x32&.perfetto.protos.LayerState.BufferData\x12\x0b\n\x03\x61pi\x18\x17 \x01(\x05\x12\x1b\n\x13has_sideband_stream\x18\x18 \x01(\x08\x12=\n\x0f\x63olor_transform\x18\x19 \x01(\x0b\x32$.perfetto.protos.ColorTransformProto\x12\x31\n\x0c\x62lur_regions\x18\x1a \x03(\x0b\x32\x1b.perfetto.protos.BlurRegion\x12\x42\n\x12window_info_handle\x18\x1b \x01(\x0b\x32&.perfetto.protos.LayerState.WindowInfo\x12\x16\n\x0e\x62g_color_alpha\x18\x1c \x01(\x02\x12\x1a\n\x12\x62g_color_dataspace\x18\x1d \x01(\x05\x12\x1c\n\x14\x63olor_space_agnostic\x18\x1e \x01(\x08\x12\x15\n\rshadow_radius\x18\x1f \x01(\x02\x12%\n\x1d\x66rame_rate_selection_priority\x18  \x01(\x05\x12\x12\n\nframe_rate\x18! \x01(\x02\x12 \n\x18\x66rame_rate_compatibility\x18\" \x01(\x05\x12\"\n\x1a\x63hange_frame_rate_strategy\x18# \x01(\x05\x12\x1c\n\x14\x66ixed_transform_hint\x18$ \x01(\r\x12\x14\n\x0c\x66rame_number\x18% \x01(\x04\x12\x14\n\x0c\x61uto_refresh\x18& \x01(\x08\x12\x1a\n\x12is_trusted_overlay\x18\' \x01(\x08\x12/\n\x0b\x62uffer_crop\x18( \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12\x35\n\x11\x64\x65stination_frame\x18) \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12\x42\n\x0f\x64rop_input_mode\x18* \x01(\x0e\x32).perfetto.protos.LayerState.DropInputMode\x12\x38\n\x0ftrusted_overlay\x18+ \x01(\x0e\x32\x1f.perfetto.protos.TrustedOverlay\x12\x1d\n\x15\x62\x61\x63kground_blur_scale\x18, \x01(\x02\x12=\n\x0c\x63orner_radii\x18- \x01(\x0b\x32\'.perfetto.protos.LayerState.CornerRadii\x12J\n\x19\x63lient_drawn_corner_radii\x18. \x01(\x0b\x32\'.perfetto.protos.LayerState.CornerRadii\x12\x1f\n\x17system_content_priority\x18/ \x01(\x05\x12?\n\x13\x62ox_shadow_settings\x18\x30 \x01(\x0b\x32\".perfetto.protos.BoxShadowSettings\x12\x38\n\x0f\x62order_settings\x18\x31 \x01(\x0b\x32\x1f.perfetto.protos.BorderSettings\x1a\x42\n\x08Matrix22\x12\x0c\n\x04\x64sdx\x18\x01 \x01(\x02\x12\x0c\n\x04\x64tdx\x18\x02 \x01(\x02\x12\x0c\n\x04\x64tdy\x18\x03 \x01(\x02\x12\x0c\n\x04\x64sdy\x18\x04 \x01(\x02\x1a=\n\x0b\x43ornerRadii\x12\n\n\x02tl\x18\x01 \x01(\x02\x12\n\n\x02tr\x18\x02 \x01(\x02\x12\n\n\x02\x62l\x18\x03 \x01(\x02\x12\n\n\x02\x62r\x18\x04 \x01(\x02\x1a)\n\x06\x43olor3\x12\t\n\x01r\x18\x01 \x01(\x02\x12\t\n\x01g\x18\x02 \x01(\x02\x12\t\n\x01\x62\x18\x03 \x01(\x02\x1a\x94\x06\n\nBufferData\x12\x11\n\tbuffer_id\x18\x01 \x01(\x04\x12\r\n\x05width\x18\x02 \x01(\r\x12\x0e\n\x06height\x18\x03 \x01(\r\x12\x14\n\x0c\x66rame_number\x18\x04 \x01(\x04\x12\r\n\x05\x66lags\x18\x05 \x01(\r\x12\x18\n\x10\x63\x61\x63hed_buffer_id\x18\x06 \x01(\x04\x12H\n\x0cpixel_format\x18\x07 \x01(\x0e\x32\x32.perfetto.protos.LayerState.BufferData.PixelFormat\x12\r\n\x05usage\x18\x08 \x01(\x04\"o\n\x10\x42ufferDataChange\x12\x18\n\x14\x42ufferDataChangeNone\x10\x00\x12\x10\n\x0c\x66\x65nceChanged\x10\x01\x12\x16\n\x12\x66rameNumberChanged\x10\x02\x12\x17\n\x13\x63\x61\x63hedBufferChanged\x10\x04\"\xca\x03\n\x0bPixelFormat\x12\x18\n\x14PIXEL_FORMAT_UNKNOWN\x10\x00\x12 \n\x13PIXEL_FORMAT_CUSTOM\x10\xfc\xff\xff\xff\xff\xff\xff\xff\xff\x01\x12%\n\x18PIXEL_FORMAT_TRANSLUCENT\x10\xfd\xff\xff\xff\xff\xff\xff\xff\xff\x01\x12%\n\x18PIXEL_FORMAT_TRANSPARENT\x10\xfe\xff\xff\xff\xff\xff\xff\xff\xff\x01\x12 \n\x13PIXEL_FORMAT_OPAQUE\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x12\x1a\n\x16PIXEL_FORMAT_RGBA_8888\x10\x01\x12\x1a\n\x16PIXEL_FORMAT_RGBX_8888\x10\x02\x12\x18\n\x14PIXEL_FORMAT_RGB_888\x10\x03\x12\x18\n\x14PIXEL_FORMAT_RGB_565\x10\x04\x12\x1a\n\x16PIXEL_FORMAT_BGRA_8888\x10\x05\x12\x1a\n\x16PIXEL_FORMAT_RGBA_5551\x10\x06\x12\x1a\n\x16PIXEL_FORMAT_RGBA_4444\x10\x07\x12\x1a\n\x16PIXEL_FORMAT_RGBA_FP16\x10\x16\x12\x1d\n\x19PIXEL_FORMAT_RGBA_1010102\x10+\x12\x14\n\x10PIXEL_FORMAT_R_8\x10\x38\x1a\x9e\x03\n\nWindowInfo\x12\x1b\n\x13layout_params_flags\x18\x01 \x01(\r\x12\x1a\n\x12layout_params_type\x18\x02 \x01(\x05\x12\x36\n\x10touchable_region\x18\x03 \x01(\x0b\x32\x1c.perfetto.protos.RegionProto\x12\x15\n\rsurface_inset\x18\x04 \x01(\x05\x12\x11\n\tfocusable\x18\x05 \x01(\x08\x12\x15\n\rhas_wallpaper\x18\x06 \x01(\x08\x12\x1b\n\x13global_scale_factor\x18\x07 \x01(\x02\x12\x15\n\rcrop_layer_id\x18\x08 \x01(\r\x12*\n\"replace_touchable_region_with_crop\x18\t \x01(\x08\x12\x39\n\x15touchable_region_crop\x18\n \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12-\n\ttransform\x18\x0b \x01(\x0b\x32\x1a.perfetto.protos.Transform\x12\x14\n\x0cinput_config\x18\x0c \x01(\r\"\xf8\x05\n\nChangesLsb\x12\x13\n\x0f\x65\x43hangesLsbNone\x10\x00\x12\x14\n\x10\x65PositionChanged\x10\x01\x12\x11\n\reLayerChanged\x10\x02\x12\x11\n\reAlphaChanged\x10\x08\x12\x12\n\x0e\x65MatrixChanged\x10\x10\x12\x1d\n\x19\x65TransparentRegionChanged\x10 \x12\x11\n\reFlagsChanged\x10@\x12\x17\n\x12\x65LayerStackChanged\x10\x80\x01\x12\"\n\x1d\x65ReleaseBufferListenerChanged\x10\x80\x08\x12\x19\n\x14\x65ShadowRadiusChanged\x10\x80\x10\x12\x17\n\x12\x65\x42ufferCropChanged\x10\x80@\x12\x1b\n\x15\x65RelativeLayerChanged\x10\x80\x80\x01\x12\x0f\n\teReparent\x10\x80\x80\x02\x12\x13\n\reColorChanged\x10\x80\x80\x04\x12\x1d\n\x17\x65\x42ufferTransformChanged\x10\x80\x80\x10\x12\'\n!eTransformToDisplayInverseChanged\x10\x80\x80 \x12\x12\n\x0c\x65\x43ropChanged\x10\x80\x80@\x12\x15\n\x0e\x65\x42ufferChanged\x10\x80\x80\x80\x01\x12\x1b\n\x14\x65\x41\x63quireFenceChanged\x10\x80\x80\x80\x02\x12\x18\n\x11\x65\x44\x61taspaceChanged\x10\x80\x80\x80\x04\x12\x1a\n\x13\x65HdrMetadataChanged\x10\x80\x80\x80\x08\x12\"\n\x1b\x65SurfaceDamageRegionChanged\x10\x80\x80\x80\x10\x12\x12\n\x0b\x65\x41piChanged\x10\x80\x80\x80 \x12\x1d\n\x16\x65SidebandStreamChanged\x10\x80\x80\x80@\x12\x1e\n\x16\x65\x43olorTransformChanged\x10\x80\x80\x80\x80\x01\x12$\n\x1c\x65HasListenerCallbacksChanged\x10\x80\x80\x80\x80\x02\x12\x19\n\x11\x65InputInfoChanged\x10\x80\x80\x80\x80\x04\x12!\n\x14\x65\x43ornerRadiusChanged\x10\x80\x80\x80\x80\xf8\xff\xff\xff\xff\x01\"\xec\x04\n\nChangesMsb\x12\x13\n\x0f\x65\x43hangesMsbNone\x10\x00\x12\x1c\n\x18\x65\x44\x65stinationFrameChanged\x10\x01\x12\x18\n\x14\x65\x43\x61\x63hedBufferChanged\x10\x02\x12\x1b\n\x17\x65\x42\x61\x63kgroundColorChanged\x10\x04\x12\x14\n\x10\x65MetadataChanged\x10\x08\x12\x1e\n\x1a\x65\x43olorSpaceAgnosticChanged\x10\x10\x12\x1f\n\x1b\x65\x46rameRateSelectionPriority\x10 \x12\x15\n\x11\x65\x46rameRateChanged\x10@\x12!\n\x1c\x65\x42\x61\x63kgroundBlurRadiusChanged\x10\x80\x01\x12\x18\n\x13\x65ProducerDisconnect\x10\x80\x02\x12\x1f\n\x1a\x65\x46ixedTransformHintChanged\x10\x80\x04\x12\x18\n\x13\x65\x46rameNumberChanged\x10\x80\x08\x12\x18\n\x13\x65\x42lurRegionsChanged\x10\x80\x10\x12\x18\n\x13\x65\x41utoRefreshChanged\x10\x80 \x12\x14\n\x0f\x65StretchChanged\x10\x80@\x12\x1c\n\x16\x65TrustedOverlayChanged\x10\x80\x80\x01\x12\x1b\n\x15\x65\x44ropInputModeChanged\x10\x80\x80\x02\x12%\n\x1f\x65\x43lientDrawnCornerRadiusChanged\x10\x80\x80\x04\x12#\n\x1d\x65SystemContentPriorityChanged\x10\x80\x80\x08\x12\x1f\n\x19\x65\x42oxShadowSettingsChanged\x10\x80\x80\x10\x12\x1c\n\x16\x65\x42orderSettingsChanged\x10\x80\x80 \"\xa2\x01\n\x05\x46lags\x12\x0e\n\neFlagsNone\x10\x00\x12\x10\n\x0c\x65LayerHidden\x10\x01\x12\x10\n\x0c\x65LayerOpaque\x10\x02\x12\x18\n\x14\x65LayerSkipScreenshot\x10@\x12\x11\n\x0c\x65LayerSecure\x10\x80\x01\x12\x18\n\x13\x65\x45nableBackpressure\x10\x80\x02\x12\x1e\n\x19\x65LayerIsDisplayDecoration\x10\x80\x04\"0\n\rDropInputMode\x12\x08\n\x04NONE\x10\x00\x12\x07\n\x03\x41LL\x10\x01\x12\x0c\n\x08OBSCURED\x10\x02\"\x93\x03\n\x0c\x44isplayState\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04what\x18\x02 \x01(\r\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x13\n\x0blayer_stack\x18\x04 \x01(\r\x12\x13\n\x0borientation\x18\x05 \x01(\r\x12:\n\x16layer_stack_space_rect\x18\x06 \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12?\n\x1boriented_display_space_rect\x18\x07 \x01(\x0b\x32\x1a.perfetto.protos.RectProto\x12\r\n\x05width\x18\x08 \x01(\r\x12\x0e\n\x06height\x18\t \x01(\r\"\x93\x01\n\x07\x43hanges\x12\x10\n\x0c\x65\x43hangesNone\x10\x00\x12\x13\n\x0f\x65SurfaceChanged\x10\x01\x12\x16\n\x12\x65LayerStackChanged\x10\x02\x12\x1d\n\x19\x65\x44isplayProjectionChanged\x10\x04\x12\x17\n\x13\x65\x44isplaySizeChanged\x10\x08\x12\x11\n\reFlagsChanged\x10\x10\"\x81\x01\n\x0f\x41ndroidUserList\x12\x38\n\x05users\x18\x01 \x03(\x0b\x32).perfetto.protos.AndroidUserList.UserInfo\x12\r\n\x05\x65rror\x18\x02 \x01(\x05\x1a%\n\x08UserInfo\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x0b\n\x03uid\x18\x02 \x01(\x05\"\x1a\n\x12WinscopeExtensions*\x04\x08\x01\x10\x07\"\xf2\x01\n\x17\x43hromeBenchmarkMetadata\x12\x1f\n\x17\x62\x65nchmark_start_time_us\x18\x01 \x01(\x03\x12\x19\n\x11story_run_time_us\x18\x02 \x01(\x03\x12\x16\n\x0e\x62\x65nchmark_name\x18\x03 \x01(\t\x12\x1d\n\x15\x62\x65nchmark_description\x18\x04 \x01(\t\x12\r\n\x05label\x18\x05 \x01(\t\x12\x12\n\nstory_name\x18\x06 \x01(\t\x12\x12\n\nstory_tags\x18\x07 \x03(\t\x12\x17\n\x0fstory_run_index\x18\x08 \x01(\x05\x12\x14\n\x0chad_failures\x18\t \x01(\x08\"\x97\x02\n\x14\x43hromeMetadataPacket\x12O\n\x1b\x62\x61\x63kground_tracing_metadata\x18\x01 \x01(\x0b\x32*.perfetto.protos.BackgroundTracingMetadata\x12\x1b\n\x13\x63hrome_version_code\x18\x02 \x01(\x05\x12\x1a\n\x12\x65nabled_categories\x18\x03 \x01(\t\x12K\n\x12\x66ield_trial_hashes\x18\x04 \x03(\x0b\x32/.perfetto.protos.ChromeMetadataPacket.FinchHash\x1a(\n\tFinchHash\x12\x0c\n\x04name\x18\x01 \x01(\r\x12\r\n\x05group\x18\x02 \x01(\r\"\x95\x08\n\x19\x42\x61\x63kgroundTracingMetadata\x12N\n\x0etriggered_rule\x18\x01 \x01(\x0b\x32\x36.perfetto.protos.BackgroundTracingMetadata.TriggerRule\x12L\n\x0c\x61\x63tive_rules\x18\x02 \x03(\x0b\x32\x36.perfetto.protos.BackgroundTracingMetadata.TriggerRule\x12\x1a\n\x12scenario_name_hash\x18\x03 \x01(\x07\x1a\xbd\x06\n\x0bTriggerRule\x12X\n\x0ctrigger_type\x18\x01 \x01(\x0e\x32\x42.perfetto.protos.BackgroundTracingMetadata.TriggerRule.TriggerType\x12\\\n\x0ehistogram_rule\x18\x02 \x01(\x0b\x32\x44.perfetto.protos.BackgroundTracingMetadata.TriggerRule.HistogramRule\x12T\n\nnamed_rule\x18\x03 \x01(\x0b\x32@.perfetto.protos.BackgroundTracingMetadata.TriggerRule.NamedRule\x12\x11\n\tname_hash\x18\x04 \x01(\x07\x1aj\n\rHistogramRule\x12\x1b\n\x13histogram_name_hash\x18\x01 \x01(\x06\x12\x1d\n\x15histogram_min_trigger\x18\x02 \x01(\x03\x12\x1d\n\x15histogram_max_trigger\x18\x03 \x01(\x03\x1a\x96\x02\n\tNamedRule\x12^\n\nevent_type\x18\x01 \x01(\x0e\x32J.perfetto.protos.BackgroundTracingMetadata.TriggerRule.NamedRule.EventType\x12!\n\x19\x63ontent_trigger_name_hash\x18\x02 \x01(\x06\"\x85\x01\n\tEventType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x13\n\x0fSESSION_RESTORE\x10\x01\x12\x0e\n\nNAVIGATION\x10\x02\x12\x0b\n\x07STARTUP\x10\x03\x12\x10\n\x0cREACHED_CODE\x10\x04\x12\x13\n\x0f\x43ONTENT_TRIGGER\x10\x05\x12\x0e\n\tTEST_RULE\x10\xe8\x07\"\x87\x01\n\x0bTriggerType\x12\x17\n\x13TRIGGER_UNSPECIFIED\x10\x00\x12\x36\n2MONITOR_AND_DUMP_WHEN_SPECIFIC_HISTOGRAM_AND_VALUE\x10\x01\x12\'\n#MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED\x10\x02\"\xd3\x02\n\x11\x43hromeTracedValue\x12\x42\n\x0bnested_type\x18\x01 \x01(\x0e\x32-.perfetto.protos.ChromeTracedValue.NestedType\x12\x11\n\tdict_keys\x18\x02 \x03(\t\x12\x37\n\x0b\x64ict_values\x18\x03 \x03(\x0b\x32\".perfetto.protos.ChromeTracedValue\x12\x38\n\x0c\x61rray_values\x18\x04 \x03(\x0b\x32\".perfetto.protos.ChromeTracedValue\x12\x11\n\tint_value\x18\x05 \x01(\x05\x12\x14\n\x0c\x64ouble_value\x18\x06 \x01(\x01\x12\x12\n\nbool_value\x18\x07 \x01(\x08\x12\x14\n\x0cstring_value\x18\x08 \x01(\t\"!\n\nNestedType\x12\x08\n\x04\x44ICT\x10\x00\x12\t\n\x05\x41RRAY\x10\x01\"6\n\x16\x43hromeStringTableEntry\x12\r\n\x05value\x18\x01 \x01(\t\x12\r\n\x05index\x18\x02 \x01(\x05\"\x81\x05\n\x10\x43hromeTraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\x12\r\n\x05phase\x18\x03 \x01(\x05\x12\x11\n\tthread_id\x18\x04 \x01(\x05\x12\x10\n\x08\x64uration\x18\x05 \x01(\x03\x12\x17\n\x0fthread_duration\x18\x06 \x01(\x03\x12\r\n\x05scope\x18\x07 \x01(\t\x12\n\n\x02id\x18\x08 \x01(\x04\x12\r\n\x05\x66lags\x18\t \x01(\r\x12\x1b\n\x13\x63\x61tegory_group_name\x18\n \x01(\t\x12\x12\n\nprocess_id\x18\x0b \x01(\x05\x12\x18\n\x10thread_timestamp\x18\x0c \x01(\x03\x12\x0f\n\x07\x62ind_id\x18\r \x01(\x04\x12\x33\n\x04\x61rgs\x18\x0e \x03(\x0b\x32%.perfetto.protos.ChromeTraceEvent.Arg\x12\x12\n\nname_index\x18\x0f \x01(\r\x12!\n\x19\x63\x61tegory_group_name_index\x18\x10 \x01(\r\x1a\x8c\x02\n\x03\x41rg\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\nbool_value\x18\x02 \x01(\x08H\x00\x12\x14\n\nuint_value\x18\x03 \x01(\x04H\x00\x12\x13\n\tint_value\x18\x04 \x01(\x03H\x00\x12\x16\n\x0c\x64ouble_value\x18\x05 \x01(\x01H\x00\x12\x16\n\x0cstring_value\x18\x06 \x01(\tH\x00\x12\x17\n\rpointer_value\x18\x07 \x01(\x04H\x00\x12\x14\n\njson_value\x18\x08 \x01(\tH\x00\x12:\n\x0ctraced_value\x18\n \x01(\x0b\x32\".perfetto.protos.ChromeTracedValueH\x00\x12\x12\n\nname_index\x18\t \x01(\rB\x07\n\x05value\"\x80\x01\n\x0e\x43hromeMetadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x16\n\x0cstring_value\x18\x02 \x01(\tH\x00\x12\x14\n\nbool_value\x18\x03 \x01(\x08H\x00\x12\x13\n\tint_value\x18\x04 \x01(\x03H\x00\x12\x14\n\njson_value\x18\x05 \x01(\tH\x00\x42\x07\n\x05value\"\x94\x01\n\x15\x43hromeLegacyJsonTrace\x12>\n\x04type\x18\x01 \x01(\x0e\x32\x30.perfetto.protos.ChromeLegacyJsonTrace.TraceType\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\t\"-\n\tTraceType\x12\x0e\n\nUSER_TRACE\x10\x00\x12\x10\n\x0cSYSTEM_TRACE\x10\x01\"\xa7\x02\n\x11\x43hromeEventBundle\x12;\n\x0ctrace_events\x18\x01 \x03(\x0b\x32!.perfetto.protos.ChromeTraceEventB\x02\x18\x01\x12\x31\n\x08metadata\x18\x02 \x03(\x0b\x32\x1f.perfetto.protos.ChromeMetadata\x12\x1c\n\x14legacy_ftrace_output\x18\x04 \x03(\t\x12\x41\n\x11legacy_json_trace\x18\x05 \x03(\x0b\x32&.perfetto.protos.ChromeLegacyJsonTrace\x12\x41\n\x0cstring_table\x18\x03 \x03(\x0b\x32\'.perfetto.protos.ChromeStringTableEntryB\x02\x18\x01\"Q\n\rChromeTrigger\x12\x14\n\x0ctrigger_name\x18\x01 \x01(\t\x12\x19\n\x11trigger_name_hash\x18\x02 \x01(\x07\x12\x0f\n\x07\x66low_id\x18\x03 \x01(\x06\"V\n\x08V8String\x12\x10\n\x06latin1\x18\x01 \x01(\x0cH\x00\x12\x12\n\x08utf16_le\x18\x02 \x01(\x0cH\x00\x12\x12\n\x08utf16_be\x18\x03 \x01(\x0cH\x00\x42\x10\n\x0e\x65ncoded_string\"k\n\x10InternedV8String\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x10\n\x06latin1\x18\x02 \x01(\x0cH\x00\x12\x12\n\x08utf16_le\x18\x03 \x01(\x0cH\x00\x12\x12\n\x08utf16_be\x18\x04 \x01(\x0cH\x00\x42\x10\n\x0e\x65ncoded_string\"\xc5\x02\n\x12InternedV8JsScript\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x11\n\tscript_id\x18\x02 \x01(\x05\x12\x36\n\x04type\x18\x03 \x01(\x0e\x32(.perfetto.protos.InternedV8JsScript.Type\x12\'\n\x04name\x18\x04 \x01(\x0b\x32\x19.perfetto.protos.V8String\x12)\n\x06source\x18\x05 \x01(\x0b\x32\x19.perfetto.protos.V8String\"\x82\x01\n\x04Type\x12\x10\n\x0cTYPE_UNKNOWN\x10\x00\x12\x0f\n\x0bTYPE_NORMAL\x10\x01\x12\r\n\tTYPE_EVAL\x10\x02\x12\x0f\n\x0bTYPE_MODULE\x10\x03\x12\x0f\n\x0bTYPE_NATIVE\x10\x04\x12\x12\n\x0eTYPE_EXTENSION\x10\x05\x12\x12\n\x0eTYPE_INSPECTOR\x10\x06\"W\n\x14InternedV8WasmScript\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x11\n\tscript_id\x18\x02 \x01(\x05\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x12\n\nwire_bytes\x18\x04 \x01(\x0c\"\xd5\x08\n\x14InternedV8JsFunction\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x1f\n\x17v8_js_function_name_iid\x18\x02 \x01(\x04\x12\x18\n\x10v8_js_script_iid\x18\x03 \x01(\x04\x12\x13\n\x0bis_toplevel\x18\x04 \x01(\x08\x12\x38\n\x04kind\x18\x05 \x01(\x0e\x32*.perfetto.protos.InternedV8JsFunction.Kind\x12\x13\n\x0b\x62yte_offset\x18\x06 \x01(\r\x12\x0c\n\x04line\x18\x07 \x01(\r\x12\x0e\n\x06\x63olumn\x18\x08 \x01(\r\"\xf2\x06\n\x04Kind\x12\x10\n\x0cKIND_UNKNOWN\x10\x00\x12\x18\n\x14KIND_NORMAL_FUNCTION\x10\x01\x12\x0f\n\x0bKIND_MODULE\x10\x02\x12\x15\n\x11KIND_ASYNC_MODULE\x10\x03\x12\x19\n\x15KIND_BASE_CONSTRUCTOR\x10\x04\x12!\n\x1dKIND_DEFAULT_BASE_CONSTRUCTOR\x10\x05\x12$\n KIND_DEFAULT_DERIVED_CONSTRUCTOR\x10\x06\x12\x1c\n\x18KIND_DERIVED_CONSTRUCTOR\x10\x07\x12\x18\n\x14KIND_GETTER_FUNCTION\x10\x08\x12\x1f\n\x1bKIND_STATIC_GETTER_FUNCTION\x10\t\x12\x18\n\x14KIND_SETTER_FUNCTION\x10\n\x12\x1f\n\x1bKIND_STATIC_SETTER_FUNCTION\x10\x0b\x12\x17\n\x13KIND_ARROW_FUNCTION\x10\x0c\x12\x1d\n\x19KIND_ASYNC_ARROW_FUNCTION\x10\r\x12\x17\n\x13KIND_ASYNC_FUNCTION\x10\x0e\x12\x1d\n\x19KIND_ASYNC_CONCISE_METHOD\x10\x0f\x12$\n KIND_STATIC_ASYNC_CONCISE_METHOD\x10\x10\x12\'\n#KIND_ASYNC_CONCISE_GENERATOR_METHOD\x10\x11\x12.\n*KIND_STATIC_ASYNC_CONCISE_GENERATOR_METHOD\x10\x12\x12!\n\x1dKIND_ASYNC_GENERATOR_FUNCTION\x10\x13\x12\x1b\n\x17KIND_GENERATOR_FUNCTION\x10\x14\x12!\n\x1dKIND_CONCISE_GENERATOR_METHOD\x10\x15\x12(\n$KIND_STATIC_CONCISE_GENERATOR_METHOD\x10\x16\x12\x17\n\x13KIND_CONCISE_METHOD\x10\x17\x12\x1e\n\x1aKIND_STATIC_CONCISE_METHOD\x10\x18\x12+\n\'KIND_CLASS_MEMBERS_INITIALIZER_FUNCTION\x10\x19\x12*\n&KIND_CLASS_STATIC_INITIALIZER_FUNCTION\x10\x1a\x12\x10\n\x0cKIND_INVALID\x10\x1b\"\xc7\x02\n\x11InternedV8Isolate\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x0b\n\x03pid\x18\x02 \x01(\r\x12\x12\n\nisolate_id\x18\x03 \x01(\x05\x12@\n\ncode_range\x18\x04 \x01(\x0b\x32,.perfetto.protos.InternedV8Isolate.CodeRange\x12(\n embedded_blob_code_start_address\x18\x05 \x01(\x04\x12\x1f\n\x17\x65mbedded_blob_code_size\x18\x06 \x01(\x04\x1aw\n\tCodeRange\x12\x14\n\x0c\x62\x61se_address\x18\x01 \x01(\x04\x12\x0c\n\x04size\x18\x02 \x01(\x04\x12-\n%embedded_blob_code_copy_start_address\x18\x03 \x01(\x04\x12\x17\n\x0fis_process_wide\x18\x04 \x01(\x08\"\xea\x02\n\x08V8JsCode\x12\x16\n\x0ev8_isolate_iid\x18\x01 \x01(\x04\x12\x0b\n\x03tid\x18\x02 \x01(\r\x12\x1a\n\x12v8_js_function_iid\x18\x03 \x01(\x04\x12,\n\x04tier\x18\x04 \x01(\x0e\x32\x1e.perfetto.protos.V8JsCode.Tier\x12\x19\n\x11instruction_start\x18\x05 \x01(\x04\x12\x1e\n\x16instruction_size_bytes\x18\x06 \x01(\x04\x12\x16\n\x0cmachine_code\x18\x07 \x01(\x0cH\x00\x12\x12\n\x08\x62ytecode\x18\x08 \x01(\x0cH\x00\"x\n\x04Tier\x12\x10\n\x0cTIER_UNKNOWN\x10\x00\x12\x11\n\rTIER_IGNITION\x10\x01\x12\x12\n\x0eTIER_SPARKPLUG\x10\x02\x12\x0f\n\x0bTIER_MAGLEV\x10\x03\x12\x13\n\x0fTIER_TURBOSHAFT\x10\x04\x12\x11\n\rTIER_TURBOFAN\x10\x05\x42\x0e\n\x0cinstructions\"\xe1\x03\n\x0eV8InternalCode\x12\x16\n\x0ev8_isolate_iid\x18\x01 \x01(\x04\x12\x0b\n\x03tid\x18\x02 \x01(\r\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x32\n\x04type\x18\x04 \x01(\x0e\x32$.perfetto.protos.V8InternalCode.Type\x12\x12\n\nbuiltin_id\x18\x05 \x01(\x05\x12\x19\n\x11instruction_start\x18\x06 \x01(\x04\x12\x1e\n\x16instruction_size_bytes\x18\x07 \x01(\x04\x12\x14\n\x0cmachine_code\x18\x08 \x01(\x0c\"\x82\x02\n\x04Type\x12\x10\n\x0cTYPE_UNKNOWN\x10\x00\x12\x19\n\x15TYPE_BYTECODE_HANDLER\x10\x01\x12\x14\n\x10TYPE_FOR_TESTING\x10\x02\x12\x10\n\x0cTYPE_BUILTIN\x10\x03\x12\x16\n\x12TYPE_WASM_FUNCTION\x10\x04\x12\x1e\n\x1aTYPE_WASM_TO_CAPI_FUNCTION\x10\x05\x12\x1c\n\x18TYPE_WASM_TO_JS_FUNCTION\x10\x06\x12\x1c\n\x18TYPE_JS_TO_WASM_FUNCTION\x10\x07\x12\x1a\n\x16TYPE_JS_TO_JS_FUNCTION\x10\x08\x12\x15\n\x11TYPE_C_WASM_ENTRY\x10\t\"\xc3\x02\n\nV8WasmCode\x12\x16\n\x0ev8_isolate_iid\x18\x01 \x01(\x04\x12\x0b\n\x03tid\x18\x02 \x01(\r\x12\x1a\n\x12v8_wasm_script_iid\x18\x03 \x01(\x04\x12\x15\n\rfunction_name\x18\x04 \x01(\t\x12.\n\x04tier\x18\x05 \x01(\x0e\x32 .perfetto.protos.V8WasmCode.Tier\x12\x1d\n\x15\x63ode_offset_in_module\x18\x06 \x01(\x05\x12\x19\n\x11instruction_start\x18\x07 \x01(\x04\x12\x1e\n\x16instruction_size_bytes\x18\x08 \x01(\x04\x12\x14\n\x0cmachine_code\x18\t \x01(\x0c\"=\n\x04Tier\x12\x10\n\x0cTIER_UNKNOWN\x10\x00\x12\x10\n\x0cTIER_LIFTOFF\x10\x01\x12\x11\n\rTIER_TURBOFAN\x10\x02\"\xb0\x01\n\x0cV8RegExpCode\x12\x16\n\x0ev8_isolate_iid\x18\x01 \x01(\x04\x12\x0b\n\x03tid\x18\x02 \x01(\r\x12*\n\x07pattern\x18\x03 \x01(\x0b\x32\x19.perfetto.protos.V8String\x12\x19\n\x11instruction_start\x18\x04 \x01(\x04\x12\x1e\n\x16instruction_size_bytes\x18\x05 \x01(\x04\x12\x14\n\x0cmachine_code\x18\x06 \x01(\x0c\"\xe1\x01\n\nV8CodeMove\x12\x13\n\x0bisolate_iid\x18\x01 \x01(\x04\x12\x0b\n\x03tid\x18\x02 \x01(\r\x12&\n\x1e\x66rom_instruction_start_address\x18\x03 \x01(\x04\x12$\n\x1cto_instruction_start_address\x18\x04 \x01(\x04\x12\x1e\n\x16instruction_size_bytes\x18\x05 \x01(\x04\x12\x19\n\x0fto_machine_code\x18\x06 \x01(\x0cH\x00\x12\x15\n\x0bto_bytecode\x18\x07 \x01(\x0cH\x00\x42\x11\n\x0fto_instructions\"\x1d\n\x0eV8CodeDefaults\x12\x0b\n\x03tid\x18\x01 \x01(\r\"\x92\x03\n\rClockSnapshot\x12\x34\n\x06\x63locks\x18\x01 \x03(\x0b\x32$.perfetto.protos.ClockSnapshot.Clock\x12:\n\x13primary_trace_clock\x18\x02 \x01(\x0e\x32\x1d.perfetto.protos.BuiltinClock\x1a\x8e\x02\n\x05\x43lock\x12\x10\n\x08\x63lock_id\x18\x01 \x01(\r\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\x12\x16\n\x0eis_incremental\x18\x03 \x01(\x08\x12\x1a\n\x12unit_multiplier_ns\x18\x04 \x01(\x04\"\xab\x01\n\rBuiltinClocks\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0c\n\x08REALTIME\x10\x01\x12\x13\n\x0fREALTIME_COARSE\x10\x02\x12\r\n\tMONOTONIC\x10\x03\x12\x14\n\x10MONOTONIC_COARSE\x10\x04\x12\x11\n\rMONOTONIC_RAW\x10\x05\x12\x0c\n\x08\x42OOTTIME\x10\x06\x12\x18\n\x14\x42UILTIN_CLOCK_MAX_ID\x10?\"\x04\x08\x07\x10\x07\"\x04\x08\x08\x10\x08\"\xd2\x0c\n\x0f\x43SwitchEtwEvent\x12\x15\n\rnew_thread_id\x18\x01 \x01(\r\x12\x15\n\rold_thread_id\x18\x02 \x01(\r\x12\x1b\n\x13new_thread_priority\x18\x03 \x01(\x11\x12\x1b\n\x13old_thread_priority\x18\x04 \x01(\x11\x12\x18\n\x10previous_c_state\x18\x05 \x01(\r\x12V\n\x16old_thread_wait_reason\x18\x06 \x01(\x0e\x32\x34.perfetto.protos.CSwitchEtwEvent.OldThreadWaitReasonH\x00\x12$\n\x1aold_thread_wait_reason_int\x18\x0b \x01(\x05H\x00\x12R\n\x14old_thread_wait_mode\x18\x07 \x01(\x0e\x32\x32.perfetto.protos.CSwitchEtwEvent.OldThreadWaitModeH\x01\x12\"\n\x18old_thread_wait_mode_int\x18\x0c \x01(\x05H\x01\x12K\n\x10old_thread_state\x18\x08 \x01(\x0e\x32/.perfetto.protos.CSwitchEtwEvent.OldThreadStateH\x02\x12\x1e\n\x14old_thread_state_int\x18\r \x01(\x11H\x02\x12\'\n\x1fold_thread_wait_ideal_processor\x18\t \x01(\x11\x12\x1c\n\x14new_thread_wait_time\x18\n \x01(\r\"\xe9\x05\n\x13OldThreadWaitReason\x12\r\n\tEXECUTIVE\x10\x00\x12\r\n\tFREE_PAGE\x10\x01\x12\x0b\n\x07PAGE_IN\x10\x02\x12\x13\n\x0fPOOL_ALLOCATION\x10\x03\x12\x13\n\x0f\x44\x45LAY_EXECUTION\x10\x04\x12\x0b\n\x07SUSPEND\x10\x05\x12\x10\n\x0cUSER_REQUEST\x10\x06\x12\x10\n\x0cWR_EXECUTIVE\x10\x07\x12\x10\n\x0cWR_FREE_PAGE\x10\x08\x12\x0e\n\nWR_PAGE_IN\x10\t\x12\x16\n\x12WR_POOL_ALLOCATION\x10\n\x12\x16\n\x12WR_DELAY_EXECUTION\x10\x0b\x12\x10\n\x0cWR_SUSPENDED\x10\x0c\x12\x13\n\x0fWR_USER_REQUEST\x10\r\x12\x11\n\rWR_EVENT_PAIR\x10\x0e\x12\x0c\n\x08WR_QUEUE\x10\x0f\x12\x13\n\x0fWR_LPC_RECEIVER\x10\x10\x12\x10\n\x0cWR_LPC_REPLY\x10\x11\x12\x15\n\x11WR_VIRTUAL_MEMORY\x10\x12\x12\x0f\n\x0bWR_PAGE_OUT\x10\x13\x12\x12\n\x0eWR_RENDEZ_VOUS\x10\x14\x12\x12\n\x0eWR_KEYED_EVENT\x10\x15\x12\x11\n\rWR_TERMINATED\x10\x16\x12\x16\n\x12WR_PROCESS_IN_SWAP\x10\x17\x12\x17\n\x13WR_CPU_RATE_CONTROL\x10\x18\x12\x14\n\x10WR_CALLOUT_STACK\x10\x19\x12\r\n\tWR_KERNEL\x10\x1a\x12\x0f\n\x0bWR_RESOURCE\x10\x1b\x12\x10\n\x0cWR_PUSH_LOCK\x10\x1c\x12\x0c\n\x08WR_MUTEX\x10\x1d\x12\x12\n\x0eWR_QUANTUM_END\x10\x1e\x12\x13\n\x0fWR_DISPATCH_INT\x10\x1f\x12\x10\n\x0cWR_PREEMPTED\x10 \x12\x16\n\x12WR_YIELD_EXECUTION\x10!\x12\x11\n\rWR_FAST_MUTEX\x10\"\x12\x12\n\x0eWR_GUARD_MUTEX\x10#\x12\x0e\n\nWR_RUNDOWN\x10$\x12\x17\n\x13MAXIMUM_WAIT_REASON\x10%\"3\n\x11OldThreadWaitMode\x12\x0f\n\x0bKERNEL_MODE\x10\x00\x12\r\n\tUSER_MODE\x10\x01\"\x87\x01\n\x0eOldThreadState\x12\x0f\n\x0bINITIALIZED\x10\x00\x12\t\n\x05READY\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\x0b\n\x07STANDBY\x10\x03\x12\x0e\n\nTERMINATED\x10\x04\x12\x0b\n\x07WAITING\x10\x05\x12\x0e\n\nTRANSITION\x10\x06\x12\x12\n\x0e\x44\x45\x46\x45RRED_READY\x10\x07\x42$\n\"old_thread_wait_reason_enum_or_intB\"\n old_thread_wait_mode_enum_or_intB\x1e\n\x1cold_thread_state_enum_or_int\"\x88\x04\n\x13ReadyThreadEtwEvent\x12\x13\n\x0bt_thread_id\x18\x01 \x01(\r\x12J\n\radjust_reason\x18\x02 \x01(\x0e\x32\x31.perfetto.protos.ReadyThreadEtwEvent.AdjustReasonH\x00\x12\x1b\n\x11\x61\x64just_reason_int\x18\x05 \x01(\x05H\x00\x12\x18\n\x10\x61\x64just_increment\x18\x03 \x01(\x11\x12>\n\x04\x66lag\x18\x04 \x01(\x0e\x32..perfetto.protos.ReadyThreadEtwEvent.TraceFlagH\x01\x12\x12\n\x08\x66lag_int\x18\x06 \x01(\x05H\x01\"X\n\x0c\x41\x64justReason\x12\x18\n\x14IGNORE_THE_INCREMENT\x10\x00\x12\x13\n\x0f\x41PPLY_INCREMENT\x10\x01\x12\x19\n\x15\x41PPLY_INCREMENT_BOOST\x10\x02\"z\n\tTraceFlag\x12\x1a\n\x16TRACE_FLAG_UNSPECIFIED\x10\x00\x12\x12\n\x0eTHREAD_READIED\x10\x01\x12\x1c\n\x18KERNEL_STACK_SWAPPED_OUT\x10\x02\x12\x1f\n\x1bPROCESS_ADDRESS_SWAPPED_OUT\x10\x04\x42\x1b\n\x19\x61\x64just_reason_enum_or_intB\x12\n\x10\x66lag_enum_or_int\"\x90\x03\n\x0fMemInfoEtwEvent\x12\x17\n\x0fpriority_levels\x18\x01 \x01(\r\x12\x17\n\x0fzero_page_count\x18\x02 \x01(\x04\x12\x17\n\x0f\x66ree_page_count\x18\x03 \x01(\x04\x12\x1b\n\x13modified_page_count\x18\x04 \x01(\x04\x12$\n\x1cmodified_no_write_page_count\x18\x05 \x01(\x04\x12\x16\n\x0e\x62\x61\x64_page_count\x18\x06 \x01(\x04\x12\x1b\n\x13standby_page_counts\x18\x07 \x03(\x04\x12\x1e\n\x16repurposed_page_counts\x18\x08 \x03(\x04\x12%\n\x1dmodified_page_count_page_file\x18\t \x01(\x04\x12\x1d\n\x15paged_pool_page_count\x18\n \x01(\x04\x12!\n\x19non_paged_pool_page_count\x18\x0b \x01(\x04\x12\x16\n\x0emdl_page_count\x18\x0c \x01(\x04\x12\x19\n\x11\x63ommit_page_count\x18\r \x01(\x04\"\xa4\x01\n\x14\x46ileIoCreateEtwEvent\x12\x0f\n\x07irp_ptr\x18\x01 \x01(\x04\x12\x13\n\x0b\x66ile_object\x18\x02 \x01(\x04\x12\x0c\n\x04ttid\x18\x03 \x01(\r\x12\x16\n\x0e\x63reate_options\x18\x04 \x01(\r\x12\x17\n\x0f\x66ile_attributes\x18\x05 \x01(\r\x12\x14\n\x0cshare_access\x18\x06 \x01(\r\x12\x11\n\topen_path\x18\x07 \x01(\t\"\xb8\x01\n\x15\x46ileIoDirEnumEtwEvent\x12\x0f\n\x07irp_ptr\x18\x01 \x01(\x04\x12\x13\n\x0b\x66ile_object\x18\x02 \x01(\x04\x12\x10\n\x08\x66ile_key\x18\x03 \x01(\x04\x12\x0c\n\x04ttid\x18\x04 \x01(\r\x12\x0e\n\x06length\x18\x05 \x01(\r\x12\x12\n\ninfo_class\x18\x06 \x01(\r\x12\x12\n\nfile_index\x18\x07 \x01(\r\x12\x11\n\tfile_name\x18\x08 \x01(\t\x12\x0e\n\x06opcode\x18\t \x01(\r\"\x92\x01\n\x12\x46ileIoInfoEtwEvent\x12\x0f\n\x07irp_ptr\x18\x01 \x01(\x04\x12\x13\n\x0b\x66ile_object\x18\x02 \x01(\x04\x12\x10\n\x08\x66ile_key\x18\x03 \x01(\x04\x12\x12\n\nextra_info\x18\x04 \x01(\x04\x12\x0c\n\x04ttid\x18\x05 \x01(\r\x12\x12\n\ninfo_class\x18\x06 \x01(\r\x12\x0e\n\x06opcode\x18\x07 \x01(\r\"\xa2\x01\n\x17\x46ileIoReadWriteEtwEvent\x12\x0e\n\x06offset\x18\x01 \x01(\x04\x12\x0f\n\x07irp_ptr\x18\x02 \x01(\x04\x12\x13\n\x0b\x66ile_object\x18\x03 \x01(\x04\x12\x10\n\x08\x66ile_key\x18\x04 \x01(\x04\x12\x0c\n\x04ttid\x18\x05 \x01(\r\x12\x0f\n\x07io_size\x18\x06 \x01(\r\x12\x10\n\x08io_flags\x18\x07 \x01(\r\x12\x0e\n\x06opcode\x18\x08 \x01(\r\"n\n\x16\x46ileIoSimpleOpEtwEvent\x12\x0f\n\x07irp_ptr\x18\x01 \x01(\x04\x12\x13\n\x0b\x66ile_object\x18\x02 \x01(\x04\x12\x10\n\x08\x66ile_key\x18\x03 \x01(\x04\x12\x0c\n\x04ttid\x18\x04 \x01(\r\x12\x0e\n\x06opcode\x18\x05 \x01(\r\"M\n\x13\x46ileIoOpEndEtwEvent\x12\x0f\n\x07irp_ptr\x18\x01 \x01(\x04\x12\x12\n\nextra_info\x18\x02 \x01(\x04\x12\x11\n\tnt_status\x18\x03 \x01(\r\"\x85\x05\n\rEtwTraceEvent\x12\x11\n\ttimestamp\x18\x01 \x01(\x04\x12\x0b\n\x03\x63pu\x18\x04 \x01(\r\x12\x11\n\tthread_id\x18\x05 \x01(\r\x12\x34\n\x08\x63_switch\x18\x02 \x01(\x0b\x32 .perfetto.protos.CSwitchEtwEventH\x00\x12<\n\x0cready_thread\x18\x03 \x01(\x0b\x32$.perfetto.protos.ReadyThreadEtwEventH\x00\x12\x34\n\x08mem_info\x18\x06 \x01(\x0b\x32 .perfetto.protos.MemInfoEtwEventH\x00\x12?\n\x0e\x66ile_io_create\x18\x07 \x01(\x0b\x32%.perfetto.protos.FileIoCreateEtwEventH\x00\x12\x42\n\x10\x66ile_io_dir_enum\x18\x08 \x01(\x0b\x32&.perfetto.protos.FileIoDirEnumEtwEventH\x00\x12;\n\x0c\x66ile_io_info\x18\t \x01(\x0b\x32#.perfetto.protos.FileIoInfoEtwEventH\x00\x12\x46\n\x12\x66ile_io_read_write\x18\n \x01(\x0b\x32(.perfetto.protos.FileIoReadWriteEtwEventH\x00\x12\x44\n\x11\x66ile_io_simple_op\x18\x0b \x01(\x0b\x32\'.perfetto.protos.FileIoSimpleOpEtwEventH\x00\x12>\n\x0e\x66ile_io_op_end\x18\x0c \x01(\x0b\x32$.perfetto.protos.FileIoOpEndEtwEventH\x00\x42\x07\n\x05\x65vent\"Q\n\x13\x45twTraceEventBundle\x12\x0b\n\x03\x63pu\x18\x01 \x01(\r\x12-\n\x05\x65vent\x18\x02 \x03(\x0b\x32\x1e.perfetto.protos.EtwTraceEvent\"\xba\x01\n\nEvdevEvent\x12\x11\n\tdevice_id\x18\x01 \x01(\r\x12=\n\x0binput_event\x18\x02 \x01(\x0b\x32&.perfetto.protos.EvdevEvent.InputEventH\x00\x1aQ\n\nInputEvent\x12\x18\n\x10kernel_timestamp\x18\x01 \x01(\x04\x12\x0c\n\x04type\x18\x02 \x01(\r\x12\x0c\n\x04\x63ode\x18\x03 \x01(\r\x12\r\n\x05value\x18\x04 \x01(\x11\x42\x07\n\x05\x65vent\"G\n\x11\x46ileDescriptorSet\x12\x32\n\x04\x66ile\x18\x01 \x03(\x0b\x32$.perfetto.protos.FileDescriptorProto\"\xbf\x02\n\x13\x46ileDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07package\x18\x02 \x01(\t\x12\x12\n\ndependency\x18\x03 \x03(\t\x12\x19\n\x11public_dependency\x18\n \x03(\x05\x12\x17\n\x0fweak_dependency\x18\x0b \x03(\x05\x12\x36\n\x0cmessage_type\x18\x04 \x03(\x0b\x32 .perfetto.protos.DescriptorProto\x12\x37\n\tenum_type\x18\x05 \x03(\x0b\x32$.perfetto.protos.EnumDescriptorProto\x12\x38\n\textension\x18\x07 \x03(\x0b\x32%.perfetto.protos.FieldDescriptorProtoJ\x04\x08\x06\x10\x07J\x04\x08\x08\x10\tJ\x04\x08\t\x10\nJ\x04\x08\x0c\x10\r\"\xd2\x03\n\x0f\x44\x65scriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x05\x66ield\x18\x02 \x03(\x0b\x32%.perfetto.protos.FieldDescriptorProto\x12\x38\n\textension\x18\x06 \x03(\x0b\x32%.perfetto.protos.FieldDescriptorProto\x12\x35\n\x0bnested_type\x18\x03 \x03(\x0b\x32 .perfetto.protos.DescriptorProto\x12\x37\n\tenum_type\x18\x04 \x03(\x0b\x32$.perfetto.protos.EnumDescriptorProto\x12\x39\n\noneof_decl\x18\x08 \x03(\x0b\x32%.perfetto.protos.OneofDescriptorProto\x12\x46\n\x0ereserved_range\x18\t \x03(\x0b\x32..perfetto.protos.DescriptorProto.ReservedRange\x12\x15\n\rreserved_name\x18\n \x03(\t\x1a+\n\rReservedRange\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05J\x04\x08\x05\x10\x06J\x04\x08\x07\x10\x08\"\x9e\x02\n\x13UninterpretedOption\x12;\n\x04name\x18\x02 \x03(\x0b\x32-.perfetto.protos.UninterpretedOption.NamePart\x12\x18\n\x10identifier_value\x18\x03 \x01(\t\x12\x1a\n\x12positive_int_value\x18\x04 \x01(\x04\x12\x1a\n\x12negative_int_value\x18\x05 \x01(\x03\x12\x14\n\x0c\x64ouble_value\x18\x06 \x01(\x01\x12\x14\n\x0cstring_value\x18\x07 \x01(\x0c\x12\x17\n\x0f\x61ggregate_value\x18\x08 \x01(\t\x1a\x33\n\x08NamePart\x12\x11\n\tname_part\x18\x01 \x01(\t\x12\x14\n\x0cis_extension\x18\x02 \x01(\x08\"c\n\x0c\x46ieldOptions\x12\x0e\n\x06packed\x18\x02 \x01(\x08\x12\x43\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32$.perfetto.protos.UninterpretedOption\"\xaf\x05\n\x14\x46ieldDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06number\x18\x03 \x01(\x05\x12:\n\x05label\x18\x04 \x01(\x0e\x32+.perfetto.protos.FieldDescriptorProto.Label\x12\x38\n\x04type\x18\x05 \x01(\x0e\x32*.perfetto.protos.FieldDescriptorProto.Type\x12\x11\n\ttype_name\x18\x06 \x01(\t\x12\x10\n\x08\x65xtendee\x18\x02 \x01(\t\x12\x15\n\rdefault_value\x18\x07 \x01(\t\x12.\n\x07options\x18\x08 \x01(\x0b\x32\x1d.perfetto.protos.FieldOptions\x12\x13\n\x0boneof_index\x18\t \x01(\x05\"\xb6\x02\n\x04Type\x12\x0f\n\x0bTYPE_DOUBLE\x10\x01\x12\x0e\n\nTYPE_FLOAT\x10\x02\x12\x0e\n\nTYPE_INT64\x10\x03\x12\x0f\n\x0bTYPE_UINT64\x10\x04\x12\x0e\n\nTYPE_INT32\x10\x05\x12\x10\n\x0cTYPE_FIXED64\x10\x06\x12\x10\n\x0cTYPE_FIXED32\x10\x07\x12\r\n\tTYPE_BOOL\x10\x08\x12\x0f\n\x0bTYPE_STRING\x10\t\x12\x0e\n\nTYPE_GROUP\x10\n\x12\x10\n\x0cTYPE_MESSAGE\x10\x0b\x12\x0e\n\nTYPE_BYTES\x10\x0c\x12\x0f\n\x0bTYPE_UINT32\x10\r\x12\r\n\tTYPE_ENUM\x10\x0e\x12\x11\n\rTYPE_SFIXED32\x10\x0f\x12\x11\n\rTYPE_SFIXED64\x10\x10\x12\x0f\n\x0bTYPE_SINT32\x10\x11\x12\x0f\n\x0bTYPE_SINT64\x10\x12\"C\n\x05Label\x12\x12\n\x0eLABEL_OPTIONAL\x10\x01\x12\x12\n\x0eLABEL_REQUIRED\x10\x02\x12\x12\n\x0eLABEL_REPEATED\x10\x03J\x04\x08\n\x10\x0b\"T\n\x14OneofDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12.\n\x07options\x18\x02 \x01(\x0b\x32\x1d.perfetto.protos.OneofOptions\"\x80\x01\n\x13\x45numDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x38\n\x05value\x18\x02 \x03(\x0b\x32).perfetto.protos.EnumValueDescriptorProto\x12\x15\n\rreserved_name\x18\x05 \x03(\tJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05\">\n\x18\x45numValueDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06number\x18\x02 \x01(\x05J\x04\x08\x03\x10\x04\"!\n\x0cOneofOptions*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x06\x08\xe7\x07\x10\xe8\x07\"P\n\x13\x45xtensionDescriptor\x12\x39\n\rextension_set\x18\x01 \x01(\x0b\x32\".perfetto.protos.FileDescriptorSet\"\x88\x02\n\x0cInodeFileMap\x12\x17\n\x0f\x62lock_device_id\x18\x01 \x01(\x04\x12\x14\n\x0cmount_points\x18\x02 \x03(\t\x12\x34\n\x07\x65ntries\x18\x03 \x03(\x0b\x32#.perfetto.protos.InodeFileMap.Entry\x1a\x92\x01\n\x05\x45ntry\x12\x14\n\x0cinode_number\x18\x01 \x01(\x04\x12\r\n\x05paths\x18\x02 \x03(\t\x12\x36\n\x04type\x18\x03 \x01(\x0e\x32(.perfetto.protos.InodeFileMap.Entry.Type\",\n\x04Type\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04\x46ILE\x10\x01\x12\r\n\tDIRECTORY\x10\x02\"M\n\x1f\x41ndroidFsDatareadEndFtraceEvent\x12\r\n\x05\x62ytes\x18\x01 \x01(\x05\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06offset\x18\x03 \x01(\x03\"\x8e\x01\n!AndroidFsDatareadStartFtraceEvent\x12\r\n\x05\x62ytes\x18\x01 \x01(\x05\x12\x0f\n\x07\x63mdline\x18\x02 \x01(\t\x12\x0e\n\x06i_size\x18\x03 \x01(\x03\x12\x0b\n\x03ino\x18\x04 \x01(\x04\x12\x0e\n\x06offset\x18\x05 \x01(\x03\x12\x0f\n\x07pathbuf\x18\x06 \x01(\t\x12\x0b\n\x03pid\x18\x07 \x01(\x05\"N\n AndroidFsDatawriteEndFtraceEvent\x12\r\n\x05\x62ytes\x18\x01 \x01(\x05\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06offset\x18\x03 \x01(\x03\"\x8f\x01\n\"AndroidFsDatawriteStartFtraceEvent\x12\r\n\x05\x62ytes\x18\x01 \x01(\x05\x12\x0f\n\x07\x63mdline\x18\x02 \x01(\t\x12\x0e\n\x06i_size\x18\x03 \x01(\x03\x12\x0b\n\x03ino\x18\x04 \x01(\x04\x12\x0e\n\x06offset\x18\x05 \x01(\x03\x12\x0f\n\x07pathbuf\x18\x06 \x01(\t\x12\x0b\n\x03pid\x18\x07 \x01(\x05\"J\n\x1c\x41ndroidFsFsyncEndFtraceEvent\x12\r\n\x05\x62ytes\x18\x01 \x01(\x05\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06offset\x18\x03 \x01(\x03\"l\n\x1e\x41ndroidFsFsyncStartFtraceEvent\x12\x0f\n\x07\x63mdline\x18\x01 \x01(\t\x12\x0e\n\x06i_size\x18\x02 \x01(\x03\x12\x0b\n\x03ino\x18\x03 \x01(\x04\x12\x0f\n\x07pathbuf\x18\x04 \x01(\t\x12\x0b\n\x03pid\x18\x05 \x01(\x05\"\xbd\x01\n\x18\x42\x63lIrqTriggerFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x10\n\x08throttle\x18\x02 \x01(\x05\x12\x12\n\ncpu0_limit\x18\x03 \x01(\x05\x12\x12\n\ncpu1_limit\x18\x04 \x01(\x05\x12\x12\n\ncpu2_limit\x18\x05 \x01(\x05\x12\x11\n\ttpu_limit\x18\x06 \x01(\x05\x12\x11\n\tgpu_limit\x18\x07 \x01(\x05\x12\x0f\n\x07voltage\x18\x08 \x01(\x05\x12\x10\n\x08\x63\x61pacity\x18\t \x01(\x05\"\x95\x01\n\x1c\x42inderTransactionFtraceEvent\x12\x10\n\x08\x64\x65\x62ug_id\x18\x01 \x01(\x05\x12\x13\n\x0btarget_node\x18\x02 \x01(\x05\x12\x0f\n\x07to_proc\x18\x03 \x01(\x05\x12\x11\n\tto_thread\x18\x04 \x01(\x05\x12\r\n\x05reply\x18\x05 \x01(\x05\x12\x0c\n\x04\x63ode\x18\x06 \x01(\r\x12\r\n\x05\x66lags\x18\x07 \x01(\r\"8\n$BinderTransactionReceivedFtraceEvent\x12\x10\n\x08\x64\x65\x62ug_id\x18\x01 \x01(\x05\"v\n\x1c\x42inderSetPriorityFtraceEvent\x12\x0c\n\x04proc\x18\x01 \x01(\x05\x12\x0e\n\x06thread\x18\x02 \x01(\x05\x12\x10\n\x08old_prio\x18\x03 \x01(\r\x12\x10\n\x08new_prio\x18\x04 \x01(\r\x12\x14\n\x0c\x64\x65sired_prio\x18\x05 \x01(\r\"$\n\x15\x42inderLockFtraceEvent\x12\x0b\n\x03tag\x18\x01 \x01(\t\"&\n\x17\x42inderLockedFtraceEvent\x12\x0b\n\x03tag\x18\x01 \x01(\t\"&\n\x17\x42inderUnlockFtraceEvent\x12\x0b\n\x03tag\x18\x01 \x01(\t\"}\n$BinderTransactionAllocBufFtraceEvent\x12\x11\n\tdata_size\x18\x01 \x01(\x04\x12\x10\n\x08\x64\x65\x62ug_id\x18\x02 \x01(\x05\x12\x14\n\x0coffsets_size\x18\x03 \x01(\x04\x12\x1a\n\x12\x65xtra_buffers_size\x18\x04 \x01(\x04\"\'\n\x18\x42inderCommandFtraceEvent\x12\x0b\n\x03\x63md\x18\x01 \x01(\r\"&\n\x17\x42inderReturnFtraceEvent\x12\x0b\n\x03\x63md\x18\x01 \x01(\r\"\x81\x01\n\x17\x42lockRqIssueFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\r\n\x05\x62ytes\x18\x04 \x01(\r\x12\x0c\n\x04rwbs\x18\x05 \x01(\t\x12\x0c\n\x04\x63omm\x18\x06 \x01(\t\x12\x0b\n\x03\x63md\x18\x07 \x01(\t\"j\n\x1c\x42lockBioBackmergeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\x0c\n\x04rwbs\x18\x04 \x01(\t\x12\x0c\n\x04\x63omm\x18\x05 \x01(\t\"g\n\x19\x42lockBioBounceFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\x0c\n\x04rwbs\x18\x04 \x01(\t\x12\x0c\n\x04\x63omm\x18\x05 \x01(\t\"j\n\x1b\x42lockBioCompleteFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\r\n\x05\x65rror\x18\x04 \x01(\x05\x12\x0c\n\x04rwbs\x18\x05 \x01(\t\"k\n\x1d\x42lockBioFrontmergeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\x0c\n\x04rwbs\x18\x04 \x01(\t\x12\x0c\n\x04\x63omm\x18\x05 \x01(\t\"f\n\x18\x42lockBioQueueFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\x0c\n\x04rwbs\x18\x04 \x01(\t\x12\x0c\n\x04\x63omm\x18\x05 \x01(\t\"}\n\x18\x42lockBioRemapFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\x0f\n\x07old_dev\x18\x04 \x01(\x04\x12\x12\n\nold_sector\x18\x05 \x01(\x04\x12\x0c\n\x04rwbs\x18\x06 \x01(\t\"H\n\x1b\x42lockDirtyBufferFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x0c\n\x04size\x18\x03 \x01(\x04\"c\n\x15\x42lockGetrqFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\x0c\n\x04rwbs\x18\x04 \x01(\t\x12\x0c\n\x04\x63omm\x18\x05 \x01(\t\"$\n\x14\x42lockPlugFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\"t\n\x17\x42lockRqAbortFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\x0e\n\x06\x65rrors\x18\x04 \x01(\x05\x12\x0c\n\x04rwbs\x18\x05 \x01(\t\x12\x0b\n\x03\x63md\x18\x06 \x01(\t\"\x86\x01\n\x1a\x42lockRqCompleteFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\x0e\n\x06\x65rrors\x18\x04 \x01(\x05\x12\x0c\n\x04rwbs\x18\x05 \x01(\t\x12\x0b\n\x03\x63md\x18\x06 \x01(\t\x12\r\n\x05\x65rror\x18\x07 \x01(\x05\"\x82\x01\n\x18\x42lockRqInsertFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\r\n\x05\x62ytes\x18\x04 \x01(\r\x12\x0c\n\x04rwbs\x18\x05 \x01(\t\x12\x0c\n\x04\x63omm\x18\x06 \x01(\t\x12\x0b\n\x03\x63md\x18\x07 \x01(\t\"\x8d\x01\n\x17\x42lockRqRemapFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\x0f\n\x07old_dev\x18\x04 \x01(\x04\x12\x12\n\nold_sector\x18\x05 \x01(\x04\x12\x0f\n\x07nr_bios\x18\x06 \x01(\r\x12\x0c\n\x04rwbs\x18\x07 \x01(\t\"v\n\x19\x42lockRqRequeueFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\x0e\n\x06\x65rrors\x18\x04 \x01(\x05\x12\x0c\n\x04rwbs\x18\x05 \x01(\t\x12\x0b\n\x03\x63md\x18\x06 \x01(\t\"e\n\x17\x42lockSleeprqFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\x0c\n\x04rwbs\x18\x04 \x01(\t\x12\x0c\n\x04\x63omm\x18\x05 \x01(\t\"d\n\x15\x42lockSplitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x12\n\nnew_sector\x18\x03 \x01(\x04\x12\x0c\n\x04rwbs\x18\x04 \x01(\t\x12\x0c\n\x04\x63omm\x18\x05 \x01(\t\"H\n\x1b\x42lockTouchBufferFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x0c\n\x04size\x18\x03 \x01(\x04\"5\n\x16\x42lockUnplugFtraceEvent\x12\r\n\x05nr_rq\x18\x01 \x01(\x05\x12\x0c\n\x04\x63omm\x18\x02 \x01(\t\"\x91\x01\n\x17\x42lockIoStartFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\r\n\x05\x62ytes\x18\x04 \x01(\r\x12\x0e\n\x06ioprio\x18\x05 \x01(\r\x12\x0c\n\x04rwbs\x18\x06 \x01(\t\x12\x0c\n\x04\x63omm\x18\x07 \x01(\t\x12\x0b\n\x03\x63md\x18\x08 \x01(\t\"\x90\x01\n\x16\x42lockIoDoneFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06sector\x18\x02 \x01(\x04\x12\x11\n\tnr_sector\x18\x03 \x01(\r\x12\r\n\x05\x62ytes\x18\x04 \x01(\r\x12\x0e\n\x06ioprio\x18\x05 \x01(\r\x12\x0c\n\x04rwbs\x18\x06 \x01(\t\x12\x0c\n\x04\x63omm\x18\x07 \x01(\t\x12\x0b\n\x03\x63md\x18\x08 \x01(\t\"\x8e\x01\n\x1b\x43groupAttachTaskFtraceEvent\x12\x10\n\x08\x64st_root\x18\x01 \x01(\x05\x12\x0e\n\x06\x64st_id\x18\x02 \x01(\x05\x12\x0b\n\x03pid\x18\x03 \x01(\x05\x12\x0c\n\x04\x63omm\x18\x04 \x01(\t\x12\r\n\x05\x63name\x18\x05 \x01(\t\x12\x11\n\tdst_level\x18\x06 \x01(\x05\x12\x10\n\x08\x64st_path\x18\x07 \x01(\t\"^\n\x16\x43groupMkdirFtraceEvent\x12\x0c\n\x04root\x18\x01 \x01(\x05\x12\n\n\x02id\x18\x02 \x01(\x05\x12\r\n\x05\x63name\x18\x03 \x01(\t\x12\r\n\x05level\x18\x04 \x01(\x05\x12\x0c\n\x04path\x18\x05 \x01(\t\"G\n\x18\x43groupRemountFtraceEvent\x12\x0c\n\x04root\x18\x01 \x01(\x05\x12\x0f\n\x07ss_mask\x18\x02 \x01(\r\x12\x0c\n\x04name\x18\x03 \x01(\t\"^\n\x16\x43groupRmdirFtraceEvent\x12\x0c\n\x04root\x18\x01 \x01(\x05\x12\n\n\x02id\x18\x02 \x01(\x05\x12\r\n\x05\x63name\x18\x03 \x01(\t\x12\r\n\x05level\x18\x04 \x01(\x05\x12\x0c\n\x04path\x18\x05 \x01(\t\"\x91\x01\n\x1e\x43groupTransferTasksFtraceEvent\x12\x10\n\x08\x64st_root\x18\x01 \x01(\x05\x12\x0e\n\x06\x64st_id\x18\x02 \x01(\x05\x12\x0b\n\x03pid\x18\x03 \x01(\x05\x12\x0c\n\x04\x63omm\x18\x04 \x01(\t\x12\r\n\x05\x63name\x18\x05 \x01(\t\x12\x11\n\tdst_level\x18\x06 \x01(\x05\x12\x10\n\x08\x64st_path\x18\x07 \x01(\t\"K\n\x1c\x43groupDestroyRootFtraceEvent\x12\x0c\n\x04root\x18\x01 \x01(\x05\x12\x0f\n\x07ss_mask\x18\x02 \x01(\r\x12\x0c\n\x04name\x18\x03 \x01(\t\"`\n\x18\x43groupReleaseFtraceEvent\x12\x0c\n\x04root\x18\x01 \x01(\x05\x12\n\n\x02id\x18\x02 \x01(\x05\x12\r\n\x05\x63name\x18\x03 \x01(\t\x12\r\n\x05level\x18\x04 \x01(\x05\x12\x0c\n\x04path\x18\x05 \x01(\t\"_\n\x17\x43groupRenameFtraceEvent\x12\x0c\n\x04root\x18\x01 \x01(\x05\x12\n\n\x02id\x18\x02 \x01(\x05\x12\r\n\x05\x63name\x18\x03 \x01(\t\x12\r\n\x05level\x18\x04 \x01(\x05\x12\x0c\n\x04path\x18\x05 \x01(\t\"I\n\x1a\x43groupSetupRootFtraceEvent\x12\x0c\n\x04root\x18\x01 \x01(\x05\x12\x0f\n\x07ss_mask\x18\x02 \x01(\r\x12\x0c\n\x04name\x18\x03 \x01(\t\"$\n\x14\x43lkEnableFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\"%\n\x15\x43lkDisableFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\"3\n\x15\x43lkSetRateFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04rate\x18\x02 \x01(\x04\"F\n\x18\x43maAllocStartFtraceEvent\x12\r\n\x05\x61lign\x18\x01 \x01(\r\x12\r\n\x05\x63ount\x18\x02 \x01(\r\x12\x0c\n\x04name\x18\x03 \x01(\t\"\xc4\x01\n\x17\x43maAllocInfoFtraceEvent\x12\r\n\x05\x61lign\x18\x01 \x01(\r\x12\r\n\x05\x63ount\x18\x02 \x01(\r\x12\x0f\n\x07\x65rr_iso\x18\x03 \x01(\r\x12\x0f\n\x07\x65rr_mig\x18\x04 \x01(\r\x12\x10\n\x08\x65rr_test\x18\x05 \x01(\r\x12\x0c\n\x04name\x18\x06 \x01(\t\x12\x11\n\tnr_mapped\x18\x07 \x01(\x04\x12\x13\n\x0bnr_migrated\x18\x08 \x01(\x04\x12\x14\n\x0cnr_reclaimed\x18\t \x01(\x04\x12\x0b\n\x03pfn\x18\n \x01(\x04\"s\n\x19\x43maAllocFinishFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03pfn\x18\x02 \x01(\x04\x12\x0c\n\x04page\x18\x03 \x01(\x04\x12\r\n\x05\x63ount\x18\x04 \x01(\x04\x12\r\n\x05\x61lign\x18\x05 \x01(\r\x12\x0f\n\x07\x65rrorno\x18\x06 \x01(\x05\"y\n\x1cMmCompactionBeginFtraceEvent\x12\x12\n\nzone_start\x18\x01 \x01(\x04\x12\x13\n\x0bmigrate_pfn\x18\x02 \x01(\x04\x12\x10\n\x08\x66ree_pfn\x18\x03 \x01(\x04\x12\x10\n\x08zone_end\x18\x04 \x01(\x04\x12\x0c\n\x04sync\x18\x05 \x01(\r\"\x90\x01\n&MmCompactionDeferCompactionFtraceEvent\x12\x0b\n\x03nid\x18\x01 \x01(\x05\x12\x0b\n\x03idx\x18\x02 \x01(\r\x12\r\n\x05order\x18\x03 \x01(\x05\x12\x12\n\nconsidered\x18\x04 \x01(\r\x12\x13\n\x0b\x64\x65\x66\x65r_shift\x18\x05 \x01(\r\x12\x14\n\x0corder_failed\x18\x06 \x01(\x05\"\x89\x01\n\x1fMmCompactionDeferredFtraceEvent\x12\x0b\n\x03nid\x18\x01 \x01(\x05\x12\x0b\n\x03idx\x18\x02 \x01(\r\x12\r\n\x05order\x18\x03 \x01(\x05\x12\x12\n\nconsidered\x18\x04 \x01(\r\x12\x13\n\x0b\x64\x65\x66\x65r_shift\x18\x05 \x01(\r\x12\x14\n\x0corder_failed\x18\x06 \x01(\x05\"\x8b\x01\n!MmCompactionDeferResetFtraceEvent\x12\x0b\n\x03nid\x18\x01 \x01(\x05\x12\x0b\n\x03idx\x18\x02 \x01(\r\x12\r\n\x05order\x18\x03 \x01(\x05\x12\x12\n\nconsidered\x18\x04 \x01(\r\x12\x13\n\x0b\x64\x65\x66\x65r_shift\x18\x05 \x01(\r\x12\x14\n\x0corder_failed\x18\x06 \x01(\x05\"\x87\x01\n\x1aMmCompactionEndFtraceEvent\x12\x12\n\nzone_start\x18\x01 \x01(\x04\x12\x13\n\x0bmigrate_pfn\x18\x02 \x01(\x04\x12\x10\n\x08\x66ree_pfn\x18\x03 \x01(\x04\x12\x10\n\x08zone_end\x18\x04 \x01(\x04\x12\x0c\n\x04sync\x18\x05 \x01(\r\x12\x0e\n\x06status\x18\x06 \x01(\x05\"W\n\x1fMmCompactionFinishedFtraceEvent\x12\x0b\n\x03nid\x18\x01 \x01(\x05\x12\x0b\n\x03idx\x18\x02 \x01(\r\x12\r\n\x05order\x18\x03 \x01(\x05\x12\x0b\n\x03ret\x18\x04 \x01(\x05\"s\n\'MmCompactionIsolateFreepagesFtraceEvent\x12\x11\n\tstart_pfn\x18\x01 \x01(\x04\x12\x0f\n\x07\x65nd_pfn\x18\x02 \x01(\x04\x12\x12\n\nnr_scanned\x18\x03 \x01(\x04\x12\x10\n\x08nr_taken\x18\x04 \x01(\x04\"v\n*MmCompactionIsolateMigratepagesFtraceEvent\x12\x11\n\tstart_pfn\x18\x01 \x01(\x04\x12\x0f\n\x07\x65nd_pfn\x18\x02 \x01(\x04\x12\x12\n\nnr_scanned\x18\x03 \x01(\x04\x12\x10\n\x08nr_taken\x18\x04 \x01(\x04\"4\n%MmCompactionKcompactdSleepFtraceEvent\x12\x0b\n\x03nid\x18\x01 \x01(\x05\"r\n$MmCompactionKcompactdWakeFtraceEvent\x12\x0b\n\x03nid\x18\x01 \x01(\x05\x12\r\n\x05order\x18\x02 \x01(\x05\x12\x15\n\rclasszone_idx\x18\x03 \x01(\r\x12\x17\n\x0fhighest_zoneidx\x18\x04 \x01(\r\"M\n#MmCompactionMigratepagesFtraceEvent\x12\x13\n\x0bnr_migrated\x18\x01 \x01(\x04\x12\x11\n\tnr_failed\x18\x02 \x01(\x04\"W\n\x1fMmCompactionSuitableFtraceEvent\x12\x0b\n\x03nid\x18\x01 \x01(\x05\x12\x0b\n\x03idx\x18\x02 \x01(\r\x12\r\n\x05order\x18\x03 \x01(\x05\x12\x0b\n\x03ret\x18\x04 \x01(\x05\"g\n(MmCompactionTryToCompactPagesFtraceEvent\x12\r\n\x05order\x18\x01 \x01(\x05\x12\x10\n\x08gfp_mask\x18\x02 \x01(\r\x12\x0c\n\x04mode\x18\x03 \x01(\r\x12\x0c\n\x04prio\x18\x04 \x01(\x05\"t\n&MmCompactionWakeupKcompactdFtraceEvent\x12\x0b\n\x03nid\x18\x01 \x01(\x05\x12\r\n\x05order\x18\x02 \x01(\x05\x12\x15\n\rclasszone_idx\x18\x03 \x01(\r\x12\x17\n\x0fhighest_zoneidx\x18\x04 \x01(\r\"M\n\x1bParamSetValueCpmFtraceEvent\x12\x0c\n\x04\x62ody\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r\x12\x11\n\ttimestamp\x18\x03 \x01(\x03\"L\n\x14\x43puhpExitFtraceEvent\x12\x0b\n\x03\x63pu\x18\x01 \x01(\r\x12\x0b\n\x03idx\x18\x02 \x01(\x05\x12\x0b\n\x03ret\x18\x03 \x01(\x05\x12\r\n\x05state\x18\x04 \x01(\x05\"S\n\x1a\x43puhpMultiEnterFtraceEvent\x12\x0b\n\x03\x63pu\x18\x01 \x01(\r\x12\x0b\n\x03\x66un\x18\x02 \x01(\x04\x12\x0b\n\x03idx\x18\x03 \x01(\x05\x12\x0e\n\x06target\x18\x04 \x01(\x05\"N\n\x15\x43puhpEnterFtraceEvent\x12\x0b\n\x03\x63pu\x18\x01 \x01(\r\x12\x0b\n\x03\x66un\x18\x02 \x01(\x04\x12\x0b\n\x03idx\x18\x03 \x01(\x05\x12\x0e\n\x06target\x18\x04 \x01(\x05\"P\n\x17\x43puhpLatencyFtraceEvent\x12\x0b\n\x03\x63pu\x18\x01 \x01(\r\x12\x0b\n\x03ret\x18\x02 \x01(\x05\x12\r\n\x05state\x18\x03 \x01(\r\x12\x0c\n\x04time\x18\x04 \x01(\x04\"W\n\x15\x43puhpPauseFtraceEvent\x12\x13\n\x0b\x61\x63tive_cpus\x18\x01 \x01(\r\x12\x0c\n\x04\x63pus\x18\x02 \x01(\r\x12\r\n\x05pause\x18\x03 \x01(\r\x12\x0c\n\x04time\x18\x04 \x01(\r\"\xaa\x01\n\x1e\x43rosEcSensorhubDataFtraceEvent\x12\x14\n\x0c\x63urrent_time\x18\x01 \x01(\x03\x12\x19\n\x11\x63urrent_timestamp\x18\x02 \x01(\x03\x12\r\n\x05\x64\x65lta\x18\x03 \x01(\x03\x12\x19\n\x11\x65\x63_fifo_timestamp\x18\x04 \x01(\r\x12\x15\n\rec_sensor_num\x18\x05 \x01(\r\x12\x16\n\x0e\x66ifo_timestamp\x18\x06 \x01(\x03\"1\n\x14\x44\x63vshFreqFtraceEvent\x12\x0b\n\x03\x63pu\x18\x01 \x01(\x04\x12\x0c\n\x04\x66req\x18\x02 \x01(\x04\"w\n\x1b\x44\x65vfreqFrequencyFtraceEvent\x12\x10\n\x08\x64\x65v_name\x18\x01 \x01(\t\x12\x0c\n\x04\x66req\x18\x02 \x01(\x04\x12\x11\n\tprev_freq\x18\x03 \x01(\x04\x12\x11\n\tbusy_time\x18\x04 \x01(\x04\x12\x12\n\ntotal_time\x18\x05 \x01(\x04\"[\n\x17\x44maFenceInitFtraceEvent\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\r\x12\x0e\n\x06\x64river\x18\x02 \x01(\t\x12\r\n\x05seqno\x18\x03 \x01(\r\x12\x10\n\x08timeline\x18\x04 \x01(\t\"[\n\x17\x44maFenceEmitFtraceEvent\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\r\x12\x0e\n\x06\x64river\x18\x02 \x01(\t\x12\r\n\x05seqno\x18\x03 \x01(\r\x12\x10\n\x08timeline\x18\x04 \x01(\t\"_\n\x1b\x44maFenceSignaledFtraceEvent\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\r\x12\x0e\n\x06\x64river\x18\x02 \x01(\t\x12\r\n\x05seqno\x18\x03 \x01(\r\x12\x10\n\x08timeline\x18\x04 \x01(\t\"`\n\x1c\x44maFenceWaitStartFtraceEvent\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\r\x12\x0e\n\x06\x64river\x18\x02 \x01(\t\x12\r\n\x05seqno\x18\x03 \x01(\r\x12\x10\n\x08timeline\x18\x04 \x01(\t\"^\n\x1a\x44maFenceWaitEndFtraceEvent\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\r\x12\x0e\n\x06\x64river\x18\x02 \x01(\t\x12\r\n\x05seqno\x18\x03 \x01(\r\x12\x10\n\x08timeline\x18\x04 \x01(\t\"M\n\x16\x44maHeapStatFtraceEvent\x12\r\n\x05inode\x18\x01 \x01(\x04\x12\x0b\n\x03len\x18\x02 \x01(\x03\x12\x17\n\x0ftotal_allocated\x18\x03 \x01(\x04\"\x81\x01\n\x1e\x44puTracingMarkWriteFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x12\n\ntrace_name\x18\x02 \x01(\t\x12\x13\n\x0btrace_begin\x18\x03 \x01(\r\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x0c\n\x04type\x18\x05 \x01(\r\x12\r\n\x05value\x18\x06 \x01(\x05\"A\n\x1e\x44puDsiCmdFifoStatusFtraceEvent\x12\x0e\n\x06header\x18\x01 \x01(\r\x12\x0f\n\x07payload\x18\x02 \x01(\r\"2\n\x13\x44puDsiRxFtraceEvent\x12\x0b\n\x03\x63md\x18\x01 \x01(\r\x12\x0e\n\x06rx_buf\x18\x02 \x01(\r\"S\n\x13\x44puDsiTxFtraceEvent\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x0e\n\x06tx_buf\x18\x02 \x01(\r\x12\x0c\n\x04last\x18\x03 \x01(\r\x12\x10\n\x08\x64\x65lay_ms\x18\x04 \x01(\r\"X\n\x1d\x44puDispDpuUnderrunFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x16\n\x0e\x66rames_pending\x18\x02 \x01(\x05\x12\x13\n\x0bvsync_count\x18\x03 \x01(\x05\"R\n!DpuDispVblankIrqEnableFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x11\n\toutput_id\x18\x02 \x01(\x05\x12\x0e\n\x06\x65nable\x18\x03 \x01(\x05\"W\n\x19\x44rmVblankEventFtraceEvent\x12\x0c\n\x04\x63rtc\x18\x01 \x01(\x05\x12\x11\n\thigh_prec\x18\x02 \x01(\r\x12\x0b\n\x03seq\x18\x03 \x01(\r\x12\x0c\n\x04time\x18\x04 \x01(\x03\"M\n\"DrmVblankEventDeliveredFtraceEvent\x12\x0c\n\x04\x63rtc\x18\x01 \x01(\x05\x12\x0c\n\x04\x66ile\x18\x02 \x01(\x04\x12\x0b\n\x03seq\x18\x03 \x01(\r\"\xa2\x01\n\x1b\x44wc3AllocRequestFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03req\x18\x02 \x01(\x04\x12\x0e\n\x06\x61\x63tual\x18\x03 \x01(\r\x12\x0e\n\x06length\x18\x04 \x01(\r\x12\x0e\n\x06status\x18\x05 \x01(\x05\x12\x0c\n\x04zero\x18\x06 \x01(\x05\x12\x14\n\x0cshort_not_ok\x18\x07 \x01(\x05\x12\x14\n\x0cno_interrupt\x18\x08 \x01(\x05\"\xc0\x01\n\x1a\x44wc3CompleteTrbFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03trb\x18\x02 \x01(\x04\x12\x11\n\tallocated\x18\x03 \x01(\r\x12\x0e\n\x06queued\x18\x04 \x01(\r\x12\x0b\n\x03\x62pl\x18\x05 \x01(\r\x12\x0b\n\x03\x62ph\x18\x06 \x01(\r\x12\x0c\n\x04size\x18\x07 \x01(\r\x12\x0c\n\x04\x63trl\x18\x08 \x01(\r\x12\x0c\n\x04type\x18\t \x01(\r\x12\x0f\n\x07\x65nqueue\x18\n \x01(\r\x12\x0f\n\x07\x64\x65queue\x18\x0b \x01(\r\"~\n\x16\x44wc3CtrlReqFtraceEvent\x12\x14\n\x0c\x62RequestType\x18\x01 \x01(\r\x12\x10\n\x08\x62Request\x18\x02 \x01(\r\x12\x0e\n\x06wValue\x18\x03 \x01(\r\x12\x0e\n\x06wIndex\x18\x04 \x01(\r\x12\x0f\n\x07wLength\x18\x05 \x01(\r\x12\x0b\n\x03str\x18\x06 \x01(\t\"\x9f\x01\n\x18\x44wc3EpDequeueFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03req\x18\x02 \x01(\x04\x12\x0e\n\x06\x61\x63tual\x18\x03 \x01(\r\x12\x0e\n\x06length\x18\x04 \x01(\r\x12\x0e\n\x06status\x18\x05 \x01(\x05\x12\x0c\n\x04zero\x18\x06 \x01(\x05\x12\x14\n\x0cshort_not_ok\x18\x07 \x01(\x05\x12\x14\n\x0cno_interrupt\x18\x08 \x01(\x05\"\x9d\x01\n\x16\x44wc3EpQueueFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03req\x18\x02 \x01(\x04\x12\x0e\n\x06\x61\x63tual\x18\x03 \x01(\r\x12\x0e\n\x06length\x18\x04 \x01(\r\x12\x0e\n\x06status\x18\x05 \x01(\x05\x12\x0c\n\x04zero\x18\x06 \x01(\x05\x12\x14\n\x0cshort_not_ok\x18\x07 \x01(\x05\x12\x14\n\x0cno_interrupt\x18\x08 \x01(\x05\"D\n\x14\x44wc3EventFtraceEvent\x12\r\n\x05\x65vent\x18\x01 \x01(\r\x12\x10\n\x08\x65p0state\x18\x02 \x01(\r\x12\x0b\n\x03str\x18\x03 \x01(\t\"\xa1\x01\n\x1a\x44wc3FreeRequestFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03req\x18\x02 \x01(\x04\x12\x0e\n\x06\x61\x63tual\x18\x03 \x01(\r\x12\x0e\n\x06length\x18\x04 \x01(\r\x12\x0e\n\x06status\x18\x05 \x01(\x05\x12\x0c\n\x04zero\x18\x06 \x01(\x05\x12\x14\n\x0cshort_not_ok\x18\x07 \x01(\x05\x12\x14\n\x0cno_interrupt\x18\x08 \x01(\x05\"{\n\x1a\x44wc3GadgetEpCmdFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03\x63md\x18\x02 \x01(\r\x12\x0e\n\x06param0\x18\x03 \x01(\r\x12\x0e\n\x06param1\x18\x04 \x01(\r\x12\x0e\n\x06param2\x18\x05 \x01(\r\x12\x12\n\ncmd_status\x18\x06 \x01(\x05\"\xcd\x01\n\x1e\x44wc3GadgetEpDisableFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tmaxpacket\x18\x02 \x01(\r\x12\x17\n\x0fmaxpacket_limit\x18\x03 \x01(\r\x12\x13\n\x0bmax_streams\x18\x04 \x01(\r\x12\x10\n\x08maxburst\x18\x05 \x01(\r\x12\r\n\x05\x66lags\x18\x06 \x01(\r\x12\x11\n\tdirection\x18\x07 \x01(\r\x12\x13\n\x0btrb_enqueue\x18\x08 \x01(\r\x12\x13\n\x0btrb_dequeue\x18\t \x01(\r\"\xcc\x01\n\x1d\x44wc3GadgetEpEnableFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tmaxpacket\x18\x02 \x01(\r\x12\x17\n\x0fmaxpacket_limit\x18\x03 \x01(\r\x12\x13\n\x0bmax_streams\x18\x04 \x01(\r\x12\x10\n\x08maxburst\x18\x05 \x01(\r\x12\r\n\x05\x66lags\x18\x06 \x01(\r\x12\x11\n\tdirection\x18\x07 \x01(\r\x12\x13\n\x0btrb_enqueue\x18\x08 \x01(\r\x12\x13\n\x0btrb_dequeue\x18\t \x01(\r\"M\n\x1f\x44wc3GadgetGenericCmdFtraceEvent\x12\x0b\n\x03\x63md\x18\x01 \x01(\r\x12\r\n\x05param\x18\x02 \x01(\r\x12\x0e\n\x06status\x18\x03 \x01(\x05\"\xa4\x01\n\x1d\x44wc3GadgetGivebackFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03req\x18\x02 \x01(\x04\x12\x0e\n\x06\x61\x63tual\x18\x03 \x01(\r\x12\x0e\n\x06length\x18\x04 \x01(\r\x12\x0e\n\x06status\x18\x05 \x01(\x05\x12\x0c\n\x04zero\x18\x06 \x01(\x05\x12\x14\n\x0cshort_not_ok\x18\x07 \x01(\x05\x12\x14\n\x0cno_interrupt\x18\x08 \x01(\x05\"\xbf\x01\n\x19\x44wc3PrepareTrbFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03trb\x18\x02 \x01(\x04\x12\x11\n\tallocated\x18\x03 \x01(\r\x12\x0e\n\x06queued\x18\x04 \x01(\r\x12\x0b\n\x03\x62pl\x18\x05 \x01(\r\x12\x0b\n\x03\x62ph\x18\x06 \x01(\r\x12\x0c\n\x04size\x18\x07 \x01(\r\x12\x0c\n\x04\x63trl\x18\x08 \x01(\r\x12\x0c\n\x04type\x18\t \x01(\r\x12\x0f\n\x07\x65nqueue\x18\n \x01(\r\x12\x0f\n\x07\x64\x65queue\x18\x0b \x01(\r\"P\n\x14\x44wc3ReadlFtraceEvent\x12\x0c\n\x04\x62\x61se\x18\x01 \x01(\x04\x12\x0e\n\x06offset\x18\x02 \x01(\r\x12\r\n\x05value\x18\x03 \x01(\r\x12\x0b\n\x03msg\x18\x04 \x01(\t\"Q\n\x15\x44wc3WritelFtraceEvent\x12\x0c\n\x04\x62\x61se\x18\x01 \x01(\x04\x12\x0e\n\x06offset\x18\x02 \x01(\r\x12\r\n\x05value\x18\x03 \x01(\r\x12\x0b\n\x03msg\x18\x04 \x01(\t\"`\n\x1b\x45xt4DaWriteBeginFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03pos\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\r\n\x05\x66lags\x18\x05 \x01(\r\"_\n\x19\x45xt4DaWriteEndFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03pos\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\x0e\n\x06\x63opied\x18\x05 \x01(\r\"Z\n\x1c\x45xt4SyncFileEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06parent\x18\x03 \x01(\x04\x12\x10\n\x08\x64\x61tasync\x18\x04 \x01(\x05\"D\n\x1b\x45xt4SyncFileExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03ret\x18\x03 \x01(\x05\"b\n\x1c\x45xt4AllocDaBlocksFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x13\n\x0b\x64\x61ta_blocks\x18\x03 \x01(\r\x12\x13\n\x0bmeta_blocks\x18\x04 \x01(\r\"\xc1\x01\n\x1d\x45xt4AllocateBlocksFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05\x62lock\x18\x03 \x01(\x04\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\x0f\n\x07logical\x18\x05 \x01(\r\x12\r\n\x05lleft\x18\x06 \x01(\r\x12\x0e\n\x06lright\x18\x07 \x01(\r\x12\x0c\n\x04goal\x18\x08 \x01(\x04\x12\r\n\x05pleft\x18\t \x01(\x04\x12\x0e\n\x06pright\x18\n \x01(\x04\x12\r\n\x05\x66lags\x18\x0b \x01(\r\"S\n\x1c\x45xt4AllocateInodeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03\x64ir\x18\x03 \x01(\x04\x12\x0c\n\x04mode\x18\x04 \x01(\r\"Q\n#Ext4BeginOrderedTruncateFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x10\n\x08new_size\x18\x03 \x01(\x03\"U\n\x1c\x45xt4CollapseRangeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06offset\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\x03\"\xca\x01\n\x1d\x45xt4DaReleaseSpaceFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x10\n\x08i_blocks\x18\x03 \x01(\x04\x12\x14\n\x0c\x66reed_blocks\x18\x04 \x01(\x05\x12\x1c\n\x14reserved_data_blocks\x18\x05 \x01(\x05\x12\x1c\n\x14reserved_meta_blocks\x18\x06 \x01(\x05\x12\x1d\n\x15\x61llocated_meta_blocks\x18\x07 \x01(\x05\x12\x0c\n\x04mode\x18\x08 \x01(\r\"\xa8\x01\n\x1d\x45xt4DaReserveSpaceFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x10\n\x08i_blocks\x18\x03 \x01(\x04\x12\x1c\n\x14reserved_data_blocks\x18\x04 \x01(\x05\x12\x1c\n\x14reserved_meta_blocks\x18\x05 \x01(\x05\x12\x0c\n\x04mode\x18\x06 \x01(\r\x12\x11\n\tmd_needed\x18\x07 \x01(\x05\"\xe4\x01\n#Ext4DaUpdateReserveSpaceFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x10\n\x08i_blocks\x18\x03 \x01(\x04\x12\x13\n\x0bused_blocks\x18\x04 \x01(\x05\x12\x1c\n\x14reserved_data_blocks\x18\x05 \x01(\x05\x12\x1c\n\x14reserved_meta_blocks\x18\x06 \x01(\x05\x12\x1d\n\x15\x61llocated_meta_blocks\x18\x07 \x01(\x05\x12\x13\n\x0bquota_claim\x18\x08 \x01(\x05\x12\x0c\n\x04mode\x18\t \x01(\r\"\xcf\x01\n\x1b\x45xt4DaWritePagesFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x12\n\nfirst_page\x18\x03 \x01(\x04\x12\x13\n\x0bnr_to_write\x18\x04 \x01(\x03\x12\x11\n\tsync_mode\x18\x05 \x01(\x05\x12\x11\n\tb_blocknr\x18\x06 \x01(\x04\x12\x0e\n\x06\x62_size\x18\x07 \x01(\r\x12\x0f\n\x07\x62_state\x18\x08 \x01(\r\x12\x0f\n\x07io_done\x18\t \x01(\x05\x12\x15\n\rpages_written\x18\n \x01(\x05\"g\n!Ext4DaWritePagesExtentFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\x04\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\r\n\x05\x66lags\x18\x05 \x01(\r\"^\n\x1c\x45xt4DirectIOEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03pos\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\x04\x12\n\n\x02rw\x18\x05 \x01(\x05\"j\n\x1b\x45xt4DirectIOExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03pos\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\x04\x12\n\n\x02rw\x18\x05 \x01(\x05\x12\x0b\n\x03ret\x18\x06 \x01(\x05\"G\n\x1c\x45xt4DiscardBlocksFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03\x62lk\x18\x02 \x01(\x04\x12\r\n\x05\x63ount\x18\x03 \x01(\x04\"]\n$Ext4DiscardPreallocationsFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03len\x18\x03 \x01(\r\x12\x0e\n\x06needed\x18\x04 \x01(\r\"B\n\x18\x45xt4DropInodeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04\x64rop\x18\x03 \x01(\x05\"q\n\x1c\x45xt4EsCacheExtentFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\r\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\x0c\n\x04pblk\x18\x05 \x01(\x04\x12\x0e\n\x06status\x18\x06 \x01(\r\"V\n,Ext4EsFindDelayedExtentRangeEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\r\"\x80\x01\n+Ext4EsFindDelayedExtentRangeExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\r\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\x0c\n\x04pblk\x18\x05 \x01(\x04\x12\x0e\n\x06status\x18\x06 \x01(\x04\"r\n\x1d\x45xt4EsInsertExtentFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\r\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\x0c\n\x04pblk\x18\x05 \x01(\x04\x12\x0e\n\x06status\x18\x06 \x01(\x04\"L\n\"Ext4EsLookupExtentEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\r\"\x85\x01\n!Ext4EsLookupExtentExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\r\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\x0c\n\x04pblk\x18\x05 \x01(\x04\x12\x0e\n\x06status\x18\x06 \x01(\x04\x12\r\n\x05\x66ound\x18\x07 \x01(\x05\"T\n\x1d\x45xt4EsRemoveExtentFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\x03\"q\n\x17\x45xt4EsShrinkFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x11\n\tnr_shrunk\x18\x02 \x01(\x05\x12\x11\n\tscan_time\x18\x03 \x01(\x04\x12\x12\n\nnr_skipped\x18\x04 \x01(\x05\x12\x0f\n\x07retried\x18\x05 \x01(\x05\"R\n\x1c\x45xt4EsShrinkCountFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x12\n\nnr_to_scan\x18\x02 \x01(\x05\x12\x11\n\tcache_cnt\x18\x03 \x01(\x05\"V\n Ext4EsShrinkScanEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x12\n\nnr_to_scan\x18\x02 \x01(\x05\x12\x11\n\tcache_cnt\x18\x03 \x01(\x05\"T\n\x1f\x45xt4EsShrinkScanExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x11\n\tnr_shrunk\x18\x02 \x01(\x05\x12\x11\n\tcache_cnt\x18\x03 \x01(\x05\"D\n\x19\x45xt4EvictInodeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05nlink\x18\x03 \x01(\x05\"\x95\x01\n+Ext4ExtConvertToInitializedEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06m_lblk\x18\x03 \x01(\r\x12\r\n\x05m_len\x18\x04 \x01(\r\x12\x0e\n\x06u_lblk\x18\x05 \x01(\r\x12\r\n\x05u_len\x18\x06 \x01(\r\x12\x0e\n\x06u_pblk\x18\x07 \x01(\x04\"\xc7\x01\n.Ext4ExtConvertToInitializedFastpathFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06m_lblk\x18\x03 \x01(\r\x12\r\n\x05m_len\x18\x04 \x01(\r\x12\x0e\n\x06u_lblk\x18\x05 \x01(\r\x12\r\n\x05u_len\x18\x06 \x01(\r\x12\x0e\n\x06u_pblk\x18\x07 \x01(\x04\x12\x0e\n\x06i_lblk\x18\x08 \x01(\r\x12\r\n\x05i_len\x18\t \x01(\r\x12\x0e\n\x06i_pblk\x18\n \x01(\x04\"\x9f\x01\n(Ext4ExtHandleUnwrittenExtentsFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05\x66lags\x18\x03 \x01(\x05\x12\x0c\n\x04lblk\x18\x04 \x01(\r\x12\x0c\n\x04pblk\x18\x05 \x01(\x04\x12\x0b\n\x03len\x18\x06 \x01(\r\x12\x11\n\tallocated\x18\x07 \x01(\r\x12\x0e\n\x06newblk\x18\x08 \x01(\x04\"P\n\x19\x45xt4ExtInCacheFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\r\x12\x0b\n\x03ret\x18\x04 \x01(\x05\"T\n\x1c\x45xt4ExtLoadExtentFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04pblk\x18\x03 \x01(\x04\x12\x0c\n\x04lblk\x18\x04 \x01(\r\"f\n Ext4ExtMapBlocksEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\r\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\r\n\x05\x66lags\x18\x05 \x01(\r\"\x90\x01\n\x1f\x45xt4ExtMapBlocksExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x0c\n\x04pblk\x18\x04 \x01(\x04\x12\x0c\n\x04lblk\x18\x05 \x01(\r\x12\x0b\n\x03len\x18\x06 \x01(\r\x12\x0e\n\x06mflags\x18\x07 \x01(\r\x12\x0b\n\x03ret\x18\x08 \x01(\x05\"b\n\x1c\x45xt4ExtPutInCacheFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\r\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\r\n\x05start\x18\x05 \x01(\x04\"d\n\x1d\x45xt4ExtRemoveSpaceFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05start\x18\x03 \x01(\r\x12\x0b\n\x03\x65nd\x18\x04 \x01(\r\x12\r\n\x05\x64\x65pth\x18\x05 \x01(\x05\"\xc1\x01\n!Ext4ExtRemoveSpaceDoneFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05start\x18\x03 \x01(\r\x12\x0b\n\x03\x65nd\x18\x04 \x01(\r\x12\r\n\x05\x64\x65pth\x18\x05 \x01(\x05\x12\x0f\n\x07partial\x18\x06 \x01(\x03\x12\x12\n\neh_entries\x18\x07 \x01(\r\x12\x0f\n\x07pc_lblk\x18\x08 \x01(\r\x12\x0f\n\x07pc_pclu\x18\t \x01(\x04\x12\x10\n\x08pc_state\x18\n \x01(\x05\"A\n\x17\x45xt4ExtRmIdxFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04pblk\x18\x03 \x01(\x04\"\xba\x01\n\x18\x45xt4ExtRmLeafFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0f\n\x07partial\x18\x03 \x01(\x03\x12\r\n\x05start\x18\x04 \x01(\r\x12\x0f\n\x07\x65\x65_lblk\x18\x05 \x01(\r\x12\x0f\n\x07\x65\x65_pblk\x18\x06 \x01(\x04\x12\x0e\n\x06\x65\x65_len\x18\x07 \x01(\x05\x12\x0f\n\x07pc_lblk\x18\x08 \x01(\r\x12\x0f\n\x07pc_pclu\x18\t \x01(\x04\x12\x10\n\x08pc_state\x18\n \x01(\x05\"a\n\x1c\x45xt4ExtShowExtentFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04pblk\x18\x03 \x01(\x04\x12\x0c\n\x04lblk\x18\x04 \x01(\r\x12\x0b\n\x03len\x18\x05 \x01(\r\"q\n\x1d\x45xt4FallocateEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06offset\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\x03\x12\x0c\n\x04mode\x18\x05 \x01(\x05\x12\x0b\n\x03pos\x18\x06 \x01(\x03\"b\n\x1c\x45xt4FallocateExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03pos\x18\x03 \x01(\x03\x12\x0e\n\x06\x62locks\x18\x04 \x01(\r\x12\x0b\n\x03ret\x18\x05 \x01(\x05\"\x89\x01\n Ext4FindDelallocRangeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04\x66rom\x18\x03 \x01(\r\x12\n\n\x02to\x18\x04 \x01(\r\x12\x0f\n\x07reverse\x18\x05 \x01(\x05\x12\r\n\x05\x66ound\x18\x06 \x01(\x05\x12\x11\n\tfound_blk\x18\x07 \x01(\r\"c\n\x15\x45xt4ForgetFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05\x62lock\x18\x03 \x01(\x04\x12\x13\n\x0bis_metadata\x18\x04 \x01(\x05\x12\x0c\n\x04mode\x18\x05 \x01(\r\"p\n\x19\x45xt4FreeBlocksFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05\x62lock\x18\x03 \x01(\x04\x12\r\n\x05\x63ount\x18\x04 \x01(\x04\x12\r\n\x05\x66lags\x18\x05 \x01(\x05\x12\x0c\n\x04mode\x18\x06 \x01(\r\"l\n\x18\x45xt4FreeInodeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03uid\x18\x03 \x01(\r\x12\x0b\n\x03gid\x18\x04 \x01(\r\x12\x0e\n\x06\x62locks\x18\x05 \x01(\x04\x12\x0c\n\x04mode\x18\x06 \x01(\r\"}\n)Ext4GetImpliedClusterAllocExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\r\n\x05\x66lags\x18\x02 \x01(\r\x12\x0c\n\x04lblk\x18\x03 \x01(\r\x12\x0c\n\x04pblk\x18\x04 \x01(\x04\x12\x0b\n\x03len\x18\x05 \x01(\r\x12\x0b\n\x03ret\x18\x06 \x01(\x05\"]\n&Ext4GetReservedClusterAllocFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\r\x12\x0b\n\x03len\x18\x04 \x01(\r\"f\n Ext4IndMapBlocksEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04lblk\x18\x03 \x01(\r\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\r\n\x05\x66lags\x18\x05 \x01(\r\"\x90\x01\n\x1f\x45xt4IndMapBlocksExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x0c\n\x04pblk\x18\x04 \x01(\x04\x12\x0c\n\x04lblk\x18\x05 \x01(\r\x12\x0b\n\x03len\x18\x06 \x01(\r\x12\x0e\n\x06mflags\x18\x07 \x01(\r\x12\x0b\n\x03ret\x18\x08 \x01(\x05\"S\n\x1a\x45xt4InsertRangeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06offset\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\x03\"h\n\x1d\x45xt4InvalidatepageFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05index\x18\x03 \x01(\x04\x12\x0e\n\x06offset\x18\x04 \x01(\x04\x12\x0e\n\x06length\x18\x05 \x01(\r\"\x81\x01\n\x1b\x45xt4JournalStartFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\n\n\x02ip\x18\x02 \x01(\x04\x12\x0e\n\x06\x62locks\x18\x03 \x01(\x05\x12\x12\n\nrsv_blocks\x18\x04 \x01(\x05\x12\x0f\n\x07nblocks\x18\x05 \x01(\x05\x12\x14\n\x0crevoke_creds\x18\x06 \x01(\x05\"N\n#Ext4JournalStartReservedFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\n\n\x02ip\x18\x02 \x01(\x04\x12\x0e\n\x06\x62locks\x18\x03 \x01(\x05\"r\n\'Ext4JournalledInvalidatepageFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05index\x18\x03 \x01(\x04\x12\x0e\n\x06offset\x18\x04 \x01(\x04\x12\x0e\n\x06length\x18\x05 \x01(\r\"g\n!Ext4JournalledWriteEndFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03pos\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\x0e\n\x06\x63opied\x18\x05 \x01(\r\"4\n\x18\x45xt4LoadInodeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\"<\n\x1e\x45xt4LoadInodeBitmapFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\r\n\x05group\x18\x02 \x01(\r\"E\n\x1d\x45xt4MarkInodeDirtyFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\n\n\x02ip\x18\x03 \x01(\x04\"9\n\x1b\x45xt4MbBitmapLoadFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\r\n\x05group\x18\x02 \x01(\r\">\n Ext4MbBuddyBitmapLoadFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\r\n\x05group\x18\x02 \x01(\r\"E\n&Ext4MbDiscardPreallocationsFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0e\n\x06needed\x18\x02 \x01(\x05\"m\n\x1b\x45xt4MbNewGroupPaFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x11\n\tpa_pstart\x18\x03 \x01(\x04\x12\x11\n\tpa_lstart\x18\x04 \x01(\x04\x12\x0e\n\x06pa_len\x18\x05 \x01(\r\"m\n\x1b\x45xt4MbNewInodePaFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x11\n\tpa_pstart\x18\x03 \x01(\x04\x12\x11\n\tpa_lstart\x18\x04 \x01(\x04\x12\x0e\n\x06pa_len\x18\x05 \x01(\r\"Q\n\x1f\x45xt4MbReleaseGroupPaFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x11\n\tpa_pstart\x18\x02 \x01(\x04\x12\x0e\n\x06pa_len\x18\x03 \x01(\r\"Y\n\x1f\x45xt4MbReleaseInodePaFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05\x62lock\x18\x03 \x01(\x04\x12\r\n\x05\x63ount\x18\x04 \x01(\r\"\x86\x03\n\x1b\x45xt4MballocAllocFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x14\n\x0corig_logical\x18\x03 \x01(\r\x12\x12\n\norig_start\x18\x04 \x01(\x05\x12\x12\n\norig_group\x18\x05 \x01(\r\x12\x10\n\x08orig_len\x18\x06 \x01(\x05\x12\x14\n\x0cgoal_logical\x18\x07 \x01(\r\x12\x12\n\ngoal_start\x18\x08 \x01(\x05\x12\x12\n\ngoal_group\x18\t \x01(\r\x12\x10\n\x08goal_len\x18\n \x01(\x05\x12\x16\n\x0eresult_logical\x18\x0b \x01(\r\x12\x14\n\x0cresult_start\x18\x0c \x01(\x05\x12\x14\n\x0cresult_group\x18\r \x01(\r\x12\x12\n\nresult_len\x18\x0e \x01(\x05\x12\r\n\x05\x66ound\x18\x0f \x01(\r\x12\x0e\n\x06groups\x18\x10 \x01(\r\x12\r\n\x05\x62uddy\x18\x11 \x01(\r\x12\r\n\x05\x66lags\x18\x12 \x01(\r\x12\x0c\n\x04tail\x18\x13 \x01(\r\x12\n\n\x02\x63r\x18\x14 \x01(\r\"y\n\x1d\x45xt4MballocDiscardFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x14\n\x0cresult_start\x18\x03 \x01(\x05\x12\x14\n\x0cresult_group\x18\x04 \x01(\r\x12\x12\n\nresult_len\x18\x05 \x01(\x05\"v\n\x1a\x45xt4MballocFreeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x14\n\x0cresult_start\x18\x03 \x01(\x05\x12\x14\n\x0cresult_group\x18\x04 \x01(\r\x12\x12\n\nresult_len\x18\x05 \x01(\x05\"\xe2\x01\n\x1e\x45xt4MballocPreallocFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x14\n\x0corig_logical\x18\x03 \x01(\r\x12\x12\n\norig_start\x18\x04 \x01(\x05\x12\x12\n\norig_group\x18\x05 \x01(\r\x12\x10\n\x08orig_len\x18\x06 \x01(\x05\x12\x16\n\x0eresult_logical\x18\x07 \x01(\r\x12\x14\n\x0cresult_start\x18\x08 \x01(\x05\x12\x14\n\x0cresult_group\x18\t \x01(\r\x12\x12\n\nresult_len\x18\n \x01(\x05\"y\n#Ext4OtherInodeUpdateTimeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x10\n\x08orig_ino\x18\x03 \x01(\x04\x12\x0b\n\x03uid\x18\x04 \x01(\r\x12\x0b\n\x03gid\x18\x05 \x01(\r\x12\x0c\n\x04mode\x18\x06 \x01(\r\"_\n\x18\x45xt4PunchHoleFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06offset\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\x03\x12\x0c\n\x04mode\x18\x05 \x01(\x05\"R\n\"Ext4ReadBlockBitmapLoadFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\r\n\x05group\x18\x02 \x01(\r\x12\x10\n\x08prefetch\x18\x03 \x01(\r\"B\n\x17\x45xt4ReadpageFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05index\x18\x03 \x01(\x04\"E\n\x1a\x45xt4ReleasepageFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05index\x18\x03 \x01(\x04\"\xc8\x01\n\x1b\x45xt4RemoveBlocksFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04\x66rom\x18\x03 \x01(\r\x12\n\n\x02to\x18\x04 \x01(\r\x12\x0f\n\x07partial\x18\x05 \x01(\x03\x12\x0f\n\x07\x65\x65_pblk\x18\x06 \x01(\x04\x12\x0f\n\x07\x65\x65_lblk\x18\x07 \x01(\r\x12\x0e\n\x06\x65\x65_len\x18\x08 \x01(\r\x12\x0f\n\x07pc_lblk\x18\t \x01(\r\x12\x0f\n\x07pc_pclu\x18\n \x01(\x04\x12\x10\n\x08pc_state\x18\x0b \x01(\x05\"\xb1\x01\n\x1c\x45xt4RequestBlocksFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03len\x18\x03 \x01(\r\x12\x0f\n\x07logical\x18\x04 \x01(\r\x12\r\n\x05lleft\x18\x05 \x01(\r\x12\x0e\n\x06lright\x18\x06 \x01(\r\x12\x0c\n\x04goal\x18\x07 \x01(\x04\x12\r\n\x05pleft\x18\x08 \x01(\x04\x12\x0e\n\x06pright\x18\t \x01(\x04\x12\r\n\x05\x66lags\x18\n \x01(\r\"E\n\x1b\x45xt4RequestInodeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03\x64ir\x18\x02 \x01(\x04\x12\x0c\n\x04mode\x18\x03 \x01(\r\"2\n\x15\x45xt4SyncFsFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0c\n\x04wait\x18\x02 \x01(\x05\"m\n\x1a\x45xt4TrimAllFreeFtraceEvent\x12\x11\n\tdev_major\x18\x01 \x01(\x05\x12\x11\n\tdev_minor\x18\x02 \x01(\x05\x12\r\n\x05group\x18\x03 \x01(\r\x12\r\n\x05start\x18\x04 \x01(\x05\x12\x0b\n\x03len\x18\x05 \x01(\x05\"l\n\x19\x45xt4TrimExtentFtraceEvent\x12\x11\n\tdev_major\x18\x01 \x01(\x05\x12\x11\n\tdev_minor\x18\x02 \x01(\x05\x12\r\n\x05group\x18\x03 \x01(\r\x12\r\n\x05start\x18\x04 \x01(\x05\x12\x0b\n\x03len\x18\x05 \x01(\x05\"H\n\x1c\x45xt4TruncateEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06\x62locks\x18\x03 \x01(\x04\"G\n\x1b\x45xt4TruncateExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06\x62locks\x18\x03 \x01(\x04\"T\n\x1a\x45xt4UnlinkEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06parent\x18\x03 \x01(\x04\x12\x0c\n\x04size\x18\x04 \x01(\x03\"B\n\x19\x45xt4UnlinkExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03ret\x18\x03 \x01(\x05\"^\n\x19\x45xt4WriteBeginFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03pos\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\r\n\x05\x66lags\x18\x05 \x01(\r\"]\n\x17\x45xt4WriteEndFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03pos\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\x0e\n\x06\x63opied\x18\x05 \x01(\r\"C\n\x18\x45xt4WritepageFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05index\x18\x03 \x01(\x04\"\xe0\x01\n\x19\x45xt4WritepagesFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x13\n\x0bnr_to_write\x18\x03 \x01(\x03\x12\x15\n\rpages_skipped\x18\x04 \x01(\x03\x12\x13\n\x0brange_start\x18\x05 \x01(\x03\x12\x11\n\trange_end\x18\x06 \x01(\x03\x12\x17\n\x0fwriteback_index\x18\x07 \x01(\x04\x12\x11\n\tsync_mode\x18\x08 \x01(\x05\x12\x13\n\x0b\x66or_kupdate\x18\t \x01(\r\x12\x14\n\x0crange_cyclic\x18\n \x01(\r\"\xa2\x01\n\x1f\x45xt4WritepagesResultFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03ret\x18\x03 \x01(\x05\x12\x15\n\rpages_written\x18\x04 \x01(\x05\x12\x15\n\rpages_skipped\x18\x05 \x01(\x03\x12\x17\n\x0fwriteback_index\x18\x06 \x01(\x04\x12\x11\n\tsync_mode\x18\x07 \x01(\x05\"_\n\x18\x45xt4ZeroRangeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06offset\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\x03\x12\x0c\n\x04mode\x18\x05 \x01(\x05\"d\n\x1a\x46\x32\x66sDoSubmitBioFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\r\n\x05\x62type\x18\x02 \x01(\x05\x12\x0c\n\x04sync\x18\x03 \x01(\r\x12\x0e\n\x06sector\x18\x04 \x01(\x04\x12\x0c\n\x04size\x18\x05 \x01(\r\"\x8e\x01\n\x19\x46\x32\x66sEvictInodeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04pino\x18\x03 \x01(\x04\x12\x0c\n\x04mode\x18\x04 \x01(\r\x12\x0c\n\x04size\x18\x05 \x01(\x03\x12\r\n\x05nlink\x18\x06 \x01(\r\x12\x0e\n\x06\x62locks\x18\x07 \x01(\x04\x12\x0e\n\x06\x61\x64vise\x18\x08 \x01(\r\"\x8a\x01\n\x18\x46\x32\x66sFallocateFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04mode\x18\x03 \x01(\x05\x12\x0e\n\x06offset\x18\x04 \x01(\x03\x12\x0b\n\x03len\x18\x05 \x01(\x03\x12\x0c\n\x04size\x18\x06 \x01(\x03\x12\x0e\n\x06\x62locks\x18\x07 \x01(\x04\x12\x0b\n\x03ret\x18\x08 \x01(\x05\"w\n\x1b\x46\x32\x66sGetDataBlockFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0e\n\x06iblock\x18\x03 \x01(\x04\x12\x10\n\x08\x62h_start\x18\x04 \x01(\x04\x12\x0f\n\x07\x62h_size\x18\x05 \x01(\x04\x12\x0b\n\x03ret\x18\x06 \x01(\x05\"\xce\x01\n\x18\x46\x32\x66sGetVictimFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0c\n\x04type\x18\x02 \x01(\x05\x12\x0f\n\x07gc_type\x18\x03 \x01(\x05\x12\x12\n\nalloc_mode\x18\x04 \x01(\x05\x12\x0f\n\x07gc_mode\x18\x05 \x01(\x05\x12\x0e\n\x06victim\x18\x06 \x01(\r\x12\x10\n\x08ofs_unit\x18\x07 \x01(\r\x12\x12\n\npre_victim\x18\x08 \x01(\r\x12\x0f\n\x07prefree\x18\t \x01(\r\x12\x0c\n\x04\x66ree\x18\n \x01(\r\x12\x0c\n\x04\x63ost\x18\x0b \x01(\r\"\x88\x01\n\x13\x46\x32\x66sIgetFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04pino\x18\x03 \x01(\x04\x12\x0c\n\x04mode\x18\x04 \x01(\r\x12\x0c\n\x04size\x18\x05 \x01(\x03\x12\r\n\x05nlink\x18\x06 \x01(\r\x12\x0e\n\x06\x62locks\x18\x07 \x01(\x04\x12\x0e\n\x06\x61\x64vise\x18\x08 \x01(\r\"@\n\x17\x46\x32\x66sIgetExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03ret\x18\x03 \x01(\x05\"@\n\x17\x46\x32\x66sNewInodeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03ret\x18\x03 \x01(\x05\"\x8f\x01\n\x17\x46\x32\x66sReadpageFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\r\n\x05index\x18\x03 \x01(\x04\x12\x0f\n\x07\x62lkaddr\x18\x04 \x01(\x04\x12\x0c\n\x04type\x18\x05 \x01(\x05\x12\x0b\n\x03\x64ir\x18\x06 \x01(\x05\x12\r\n\x05\x64irty\x18\x07 \x01(\x05\x12\x10\n\x08uptodate\x18\x08 \x01(\x05\"O\n\x1e\x46\x32\x66sReserveNewBlockFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03nid\x18\x02 \x01(\r\x12\x13\n\x0bofs_in_node\x18\x03 \x01(\r\"\x82\x01\n\x1b\x46\x32\x66sSetPageDirtyFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04type\x18\x03 \x01(\x05\x12\x0b\n\x03\x64ir\x18\x04 \x01(\x05\x12\r\n\x05index\x18\x05 \x01(\x04\x12\r\n\x05\x64irty\x18\x06 \x01(\x05\x12\x10\n\x08uptodate\x18\x07 \x01(\x05\"f\n\x1e\x46\x32\x66sSubmitWritePageFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04type\x18\x03 \x01(\x05\x12\r\n\x05index\x18\x04 \x01(\x04\x12\r\n\x05\x62lock\x18\x05 \x01(\r\"\x91\x01\n\x1c\x46\x32\x66sSyncFileEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04pino\x18\x03 \x01(\x04\x12\x0c\n\x04mode\x18\x04 \x01(\r\x12\x0c\n\x04size\x18\x05 \x01(\x03\x12\r\n\x05nlink\x18\x06 \x01(\r\x12\x0e\n\x06\x62locks\x18\x07 \x01(\x04\x12\x0e\n\x06\x61\x64vise\x18\x08 \x01(\r\"z\n\x1b\x46\x32\x66sSyncFileExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0f\n\x07need_cp\x18\x03 \x01(\r\x12\x10\n\x08\x64\x61tasync\x18\x04 \x01(\x05\x12\x0b\n\x03ret\x18\x05 \x01(\x05\x12\x11\n\tcp_reason\x18\x06 \x01(\x05\"A\n\x15\x46\x32\x66sSyncFsFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\r\n\x05\x64irty\x18\x02 \x01(\x05\x12\x0c\n\x04wait\x18\x03 \x01(\x05\"\x8c\x01\n\x17\x46\x32\x66sTruncateFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04pino\x18\x03 \x01(\x04\x12\x0c\n\x04mode\x18\x04 \x01(\r\x12\x0c\n\x04size\x18\x05 \x01(\x03\x12\r\n\x05nlink\x18\x06 \x01(\r\x12\x0e\n\x06\x62locks\x18\x07 \x01(\x04\x12\x0e\n\x06\x61\x64vise\x18\x08 \x01(\r\"j\n\"F2fsTruncateBlocksEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04size\x18\x03 \x01(\x03\x12\x0e\n\x06\x62locks\x18\x04 \x01(\x04\x12\x0c\n\x04\x66rom\x18\x05 \x01(\x04\"J\n!F2fsTruncateBlocksExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03ret\x18\x03 \x01(\x05\"j\n&F2fsTruncateDataBlocksRangeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03nid\x18\x03 \x01(\r\x12\x0b\n\x03ofs\x18\x04 \x01(\r\x12\x0c\n\x04\x66ree\x18\x05 \x01(\x05\"o\n\'F2fsTruncateInodeBlocksEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04size\x18\x03 \x01(\x03\x12\x0e\n\x06\x62locks\x18\x04 \x01(\x04\x12\x0c\n\x04\x66rom\x18\x05 \x01(\x04\"O\n&F2fsTruncateInodeBlocksExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03ret\x18\x03 \x01(\x05\"V\n\x1b\x46\x32\x66sTruncateNodeFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03nid\x18\x03 \x01(\r\x12\x10\n\x08\x62lk_addr\x18\x04 \x01(\r\"\\\n!F2fsTruncateNodesEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03nid\x18\x03 \x01(\r\x12\x10\n\x08\x62lk_addr\x18\x04 \x01(\r\"I\n F2fsTruncateNodesExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03ret\x18\x03 \x01(\x05\"h\n#F2fsTruncatePartialNodesFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03nid\x18\x03 \x01(\r\x12\r\n\x05\x64\x65pth\x18\x04 \x01(\x05\x12\x0b\n\x03\x65rr\x18\x05 \x01(\x05\"b\n\x1a\x46\x32\x66sUnlinkEnterFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04size\x18\x03 \x01(\x03\x12\x0e\n\x06\x62locks\x18\x04 \x01(\x04\x12\x0c\n\x04name\x18\x05 \x01(\t\"B\n\x19\x46\x32\x66sUnlinkExitFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03ret\x18\x03 \x01(\x05\"\x83\x01\n\x1c\x46\x32\x66sVmPageMkwriteFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0c\n\x04type\x18\x03 \x01(\x05\x12\x0b\n\x03\x64ir\x18\x04 \x01(\x05\x12\r\n\x05index\x18\x05 \x01(\x04\x12\r\n\x05\x64irty\x18\x06 \x01(\x05\x12\x10\n\x08uptodate\x18\x07 \x01(\x05\"^\n\x19\x46\x32\x66sWriteBeginFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03pos\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\r\n\x05\x66lags\x18\x05 \x01(\r\"]\n\x1e\x46\x32\x66sWriteCheckpointFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x11\n\tis_umount\x18\x02 \x01(\r\x12\x0b\n\x03msg\x18\x03 \x01(\t\x12\x0e\n\x06reason\x18\x04 \x01(\x05\"]\n\x17\x46\x32\x66sWriteEndFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ino\x18\x02 \x01(\x04\x12\x0b\n\x03pos\x18\x03 \x01(\x03\x12\x0b\n\x03len\x18\x04 \x01(\r\x12\x0e\n\x06\x63opied\x18\x05 \x01(\r\"\xa9\x03\n\x15\x46\x32\x66sIostatFtraceEvent\x12\x0f\n\x07\x61pp_bio\x18\x01 \x01(\x04\x12\x10\n\x08\x61pp_brio\x18\x02 \x01(\x04\x12\x0f\n\x07\x61pp_dio\x18\x03 \x01(\x04\x12\x10\n\x08\x61pp_drio\x18\x04 \x01(\x04\x12\x0f\n\x07\x61pp_mio\x18\x05 \x01(\x04\x12\x10\n\x08\x61pp_mrio\x18\x06 \x01(\x04\x12\x0f\n\x07\x61pp_rio\x18\x07 \x01(\x04\x12\x0f\n\x07\x61pp_wio\x18\x08 \x01(\x04\x12\x0b\n\x03\x64\x65v\x18\t \x01(\x04\x12\x10\n\x08\x66s_cdrio\x18\n \x01(\x04\x12\x11\n\tfs_cp_dio\x18\x0b \x01(\x04\x12\x11\n\tfs_cp_mio\x18\x0c \x01(\x04\x12\x11\n\tfs_cp_nio\x18\r \x01(\x04\x12\x0e\n\x06\x66s_dio\x18\x0e \x01(\x04\x12\x12\n\nfs_discard\x18\x0f \x01(\x04\x12\x0f\n\x07\x66s_drio\x18\x10 \x01(\x04\x12\x11\n\tfs_gc_dio\x18\x11 \x01(\x04\x12\x11\n\tfs_gc_nio\x18\x12 \x01(\x04\x12\x10\n\x08\x66s_gdrio\x18\x13 \x01(\x04\x12\x0e\n\x06\x66s_mio\x18\x14 \x01(\x04\x12\x0f\n\x07\x66s_mrio\x18\x15 \x01(\x04\x12\x0e\n\x06\x66s_nio\x18\x16 \x01(\x04\x12\x0f\n\x07\x66s_nrio\x18\x17 \x01(\x04\"\xc7\x04\n\x1c\x46\x32\x66sIostatLatencyFtraceEvent\x12\x10\n\x08\x64_rd_avg\x18\x01 \x01(\r\x12\x10\n\x08\x64_rd_cnt\x18\x02 \x01(\r\x12\x11\n\td_rd_peak\x18\x03 \x01(\r\x12\x13\n\x0b\x64_wr_as_avg\x18\x04 \x01(\r\x12\x13\n\x0b\x64_wr_as_cnt\x18\x05 \x01(\r\x12\x14\n\x0c\x64_wr_as_peak\x18\x06 \x01(\r\x12\x12\n\nd_wr_s_avg\x18\x07 \x01(\r\x12\x12\n\nd_wr_s_cnt\x18\x08 \x01(\r\x12\x13\n\x0b\x64_wr_s_peak\x18\t \x01(\r\x12\x0b\n\x03\x64\x65v\x18\n \x01(\x04\x12\x10\n\x08m_rd_avg\x18\x0b \x01(\r\x12\x10\n\x08m_rd_cnt\x18\x0c \x01(\r\x12\x11\n\tm_rd_peak\x18\r \x01(\r\x12\x13\n\x0bm_wr_as_avg\x18\x0e \x01(\r\x12\x13\n\x0bm_wr_as_cnt\x18\x0f \x01(\r\x12\x14\n\x0cm_wr_as_peak\x18\x10 \x01(\r\x12\x12\n\nm_wr_s_avg\x18\x11 \x01(\r\x12\x12\n\nm_wr_s_cnt\x18\x12 \x01(\r\x12\x13\n\x0bm_wr_s_peak\x18\x13 \x01(\r\x12\x10\n\x08n_rd_avg\x18\x14 \x01(\r\x12\x10\n\x08n_rd_cnt\x18\x15 \x01(\r\x12\x11\n\tn_rd_peak\x18\x16 \x01(\r\x12\x13\n\x0bn_wr_as_avg\x18\x17 \x01(\r\x12\x13\n\x0bn_wr_as_cnt\x18\x18 \x01(\r\x12\x14\n\x0cn_wr_as_peak\x18\x19 \x01(\r\x12\x12\n\nn_wr_s_avg\x18\x1a \x01(\r\x12\x12\n\nn_wr_s_cnt\x18\x1b \x01(\r\x12\x13\n\x0bn_wr_s_peak\x18\x1c \x01(\r\"Z\n\x1b\x46\x32\x66sBackgroundGcFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0f\n\x07wait_ms\x18\x02 \x01(\r\x12\x0f\n\x07prefree\x18\x03 \x01(\r\x12\x0c\n\x04\x66ree\x18\x04 \x01(\r\"\x8e\x02\n\x16\x46\x32\x66sGcBeginFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0c\n\x04sync\x18\x02 \x01(\r\x12\x12\n\nbackground\x18\x03 \x01(\r\x12\x13\n\x0b\x64irty_nodes\x18\x04 \x01(\x03\x12\x13\n\x0b\x64irty_dents\x18\x05 \x01(\x03\x12\x13\n\x0b\x64irty_imeta\x18\x06 \x01(\x03\x12\x10\n\x08\x66ree_sec\x18\x07 \x01(\r\x12\x10\n\x08\x66ree_seg\x18\x08 \x01(\r\x12\x14\n\x0creserved_seg\x18\t \x01(\x05\x12\x13\n\x0bprefree_seg\x18\n \x01(\r\x12\x0f\n\x07gc_type\x18\x0b \x01(\x05\x12\x10\n\x08no_bg_gc\x18\x0c \x01(\r\x12\x14\n\x0cnr_free_secs\x18\r \x01(\r\"\xe4\x01\n\x14\x46\x32\x66sGcEndFtraceEvent\x12\x0b\n\x03\x64\x65v\x18\x01 \x01(\x04\x12\x0b\n\x03ret\x18\x02 \x01(\x05\x12\x11\n\tseg_freed\x18\x03 \x01(\x05\x12\x11\n\tsec_freed\x18\x04 \x01(\x05\x12\x13\n\x0b\x64irty_nodes\x18\x05 \x01(\x03\x12\x13\n\x0b\x64irty_dents\x18\x06 \x01(\x03\x12\x13\n\x0b\x64irty_imeta\x18\x07 \x01(\x03\x12\x10\n\x08\x66ree_sec\x18\x08 \x01(\r\x12\x10\n\x08\x66ree_seg\x18\t \x01(\r\x12\x14\n\x0creserved_seg\x18\n \x01(\x05\x12\x13\n\x0bprefree_seg\x18\x0b \x01(\r\"N\n\x19\x46\x61strpcDmaStatFtraceEvent\x12\x0b\n\x03\x63id\x18\x01 \x01(\x05\x12\x0b\n\x03len\x18\x02 \x01(\x03\x12\x17\n\x0ftotal_allocated\x18\x03 \x01(\x04\"D\n\x19\x46\x61strpcDmaFreeFtraceEvent\x12\x0b\n\x03\x63id\x18\x01 \x01(\x05\x12\x0c\n\x04phys\x18\x02 \x01(\x04\x12\x0c\n\x04size\x18\x03 \x01(\x04\"c\n\x1a\x46\x61strpcDmaAllocFtraceEvent\x12\x0b\n\x03\x63id\x18\x01 \x01(\x05\x12\x0c\n\x04phys\x18\x02 \x01(\x04\x12\x0c\n\x04size\x18\x03 \x01(\x04\x12\x0c\n\x04\x61ttr\x18\x04 \x01(\x04\x12\x0e\n\x06mflags\x18\x05 \x01(\x05\"E\n\x1a\x46\x61strpcDmaUnmapFtraceEvent\x12\x0b\n\x03\x63id\x18\x01 \x01(\x05\x12\x0c\n\x04phys\x18\x02 \x01(\x04\x12\x0c\n\x04size\x18\x03 \x01(\x04\"z\n\x18\x46\x61strpcDmaMapFtraceEvent\x12\x0b\n\x03\x63id\x18\x01 \x01(\x05\x12\n\n\x02\x66\x64\x18\x02 \x01(\x05\x12\x0c\n\x04phys\x18\x03 \x01(\x04\x12\x0c\n\x04size\x18\x04 \x01(\x04\x12\x0b\n\x03len\x18\x05 \x01(\x04\x12\x0c\n\x04\x61ttr\x18\x06 \x01(\r\x12\x0e\n\x06mflags\x18\x07 \x01(\x05\"X\n\x14\x46\x65nceInitFtraceEvent\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\r\x12\x0e\n\x06\x64river\x18\x02 \x01(\t\x12\r\n\x05seqno\x18\x03 \x01(\r\x12\x10\n\x08timeline\x18\x04 \x01(\t\"[\n\x17\x46\x65nceDestroyFtraceEvent\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\r\x12\x0e\n\x06\x64river\x18\x02 \x01(\t\x12\r\n\x05seqno\x18\x03 \x01(\r\x12\x10\n\x08timeline\x18\x04 \x01(\t\"`\n\x1c\x46\x65nceEnableSignalFtraceEvent\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\r\x12\x0e\n\x06\x64river\x18\x02 \x01(\t\x12\r\n\x05seqno\x18\x03 \x01(\r\x12\x10\n\x08timeline\x18\x04 \x01(\t\"\\\n\x18\x46\x65nceSignaledFtraceEvent\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\r\x12\x0e\n\x06\x64river\x18\x02 \x01(\t\x12\r\n\x05seqno\x18\x03 \x01(\r\x12\x10\n\x08timeline\x18\x04 \x01(\t\"l\n\"MmFilemapAddToPageCacheFtraceEvent\x12\x0b\n\x03pfn\x18\x01 \x01(\x04\x12\r\n\x05i_ino\x18\x02 \x01(\x04\x12\r\n\x05index\x18\x03 \x01(\x04\x12\r\n\x05s_dev\x18\x04 \x01(\x04\x12\x0c\n\x04page\x18\x05 \x01(\x04\"q\n\'MmFilemapDeleteFromPageCacheFtraceEvent\x12\x0b\n\x03pfn\x18\x01 \x01(\x04\x12\r\n\x05i_ino\x18\x02 \x01(\x04\x12\r\n\x05index\x18\x03 \x01(\x04\x12\r\n\x05s_dev\x18\x04 \x01(\x04\x12\x0c\n\x04page\x18\x05 \x01(\x04\"E\n\x14\x44oSysOpenFtraceEvent\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\r\n\x05\x66lags\x18\x02 \x01(\x05\x12\x0c\n\x04mode\x18\x03 \x01(\x05\"\'\n\x13OpenExecFtraceEvent\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\"+\n\x10PrintFtraceEvent\x12\n\n\x02ip\x18\x01 \x01(\x04\x12\x0b\n\x03\x62uf\x18\x02 \x01(\t\"8\n\x19\x46uncgraphEntryFtraceEvent\x12\r\n\x05\x64\x65pth\x18\x01 \x01(\x05\x12\x0c\n\x04\x66unc\x18\x02 \x01(\x04\"k\n\x18\x46uncgraphExitFtraceEvent\x12\x10\n\x08\x63\x61lltime\x18\x01 \x01(\x04\x12\r\n\x05\x64\x65pth\x18\x02 \x01(\x05\x12\x0c\n\x04\x66unc\x18\x03 \x01(\x04\x12\x0f\n\x07overrun\x18\x04 \x01(\x04\x12\x0f\n\x07rettime\x18\x05 \x01(\x04\"t\n\x1e\x46wtpPerfettoCounterFtraceEvent\x12\x11\n\ttimestamp\x18\x01 \x01(\x04\x12\x10\n\x08track_id\x18\x02 \x01(\r\x12\x10\n\x08\x63\x61tegory\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\r\n\x05value\x18\x05 \x01(\r\"X\n\x1eG2dTracingMarkWriteFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x0c\n\x04type\x18\x05 \x01(\r\x12\r\n\x05value\x18\x06 \x01(\x05\"\xc2\x01\n\x12GenericFtraceEvent\x12\x12\n\nevent_name\x18\x01 \x01(\t\x12\x38\n\x05\x66ield\x18\x02 \x03(\x0b\x32).perfetto.protos.GenericFtraceEvent.Field\x1a^\n\x05\x46ield\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\tstr_value\x18\x03 \x01(\tH\x00\x12\x13\n\tint_value\x18\x04 \x01(\x03H\x00\x12\x14\n\nuint_value\x18\x05 \x01(\x04H\x00\x42\x07\n\x05value\"\xbe\x01\n\x0bKprobeEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x35\n\x04type\x18\x02 \x01(\x0e\x32\'.perfetto.protos.KprobeEvent.KprobeType\"j\n\nKprobeType\x12\x17\n\x13KPROBE_TYPE_UNKNOWN\x10\x00\x12\x15\n\x11KPROBE_TYPE_BEGIN\x10\x01\x12\x13\n\x0fKPROBE_TYPE_END\x10\x02\x12\x17\n\x13KPROBE_TYPE_INSTANT\x10\x03\"=\n\x19GoogleIccEventFtraceEvent\x12\r\n\x05\x65vent\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\"=\n\x19GoogleIrmEventFtraceEvent\x12\r\n\x05\x65vent\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\"C\n\x16GpuMemTotalFtraceEvent\x12\x0e\n\x06gpu_id\x18\x01 \x01(\r\x12\x0b\n\x03pid\x18\x02 \x01(\r\x12\x0c\n\x04size\x18\x03 \x01(\x04\"z\n\x16\x44rmSchedJobFtraceEvent\x12\x0e\n\x06\x65ntity\x18\x01 \x01(\x04\x12\r\n\x05\x66\x65nce\x18\x02 \x01(\x04\x12\x14\n\x0chw_job_count\x18\x03 \x01(\x05\x12\n\n\x02id\x18\x04 \x01(\x04\x12\x11\n\tjob_count\x18\x05 \x01(\r\x12\x0c\n\x04name\x18\x06 \x01(\t\"x\n\x14\x44rmRunJobFtraceEvent\x12\x0e\n\x06\x65ntity\x18\x01 \x01(\x04\x12\r\n\x05\x66\x65nce\x18\x02 \x01(\x04\x12\x14\n\x0chw_job_count\x18\x03 \x01(\x05\x12\n\n\x02id\x18\x04 \x01(\x04\x12\x11\n\tjob_count\x18\x05 \x01(\r\x12\x0c\n\x04name\x18\x06 \x01(\t\".\n\x1d\x44rmSchedProcessJobFtraceEvent\x12\r\n\x05\x66\x65nce\x18\x01 \x01(\x04\"f\n\x1c\x44rmSchedJobAddDepFtraceEvent\x12\x15\n\rfence_context\x18\x01 \x01(\x04\x12\x13\n\x0b\x66\x65nce_seqno\x18\x02 \x01(\x04\x12\x0b\n\x03\x63tx\x18\x03 \x01(\x04\x12\r\n\x05seqno\x18\x04 \x01(\x04\"H\n\x1a\x44rmSchedJobDoneFtraceEvent\x12\x15\n\rfence_context\x18\x01 \x01(\x04\x12\x13\n\x0b\x66\x65nce_seqno\x18\x02 \x01(\x04\"\xa0\x01\n\x1b\x44rmSchedJobQueueFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tjob_count\x18\x02 \x01(\r\x12\x14\n\x0chw_job_count\x18\x03 \x01(\x05\x12\x0b\n\x03\x64\x65v\x18\x04 \x01(\t\x12\x15\n\rfence_context\x18\x05 \x01(\x04\x12\x13\n\x0b\x66\x65nce_seqno\x18\x06 \x01(\x04\x12\x11\n\tclient_id\x18\x07 \x01(\x04\"\x9e\x01\n\x19\x44rmSchedJobRunFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tjob_count\x18\x02 \x01(\r\x12\x14\n\x0chw_job_count\x18\x03 \x01(\x05\x12\x0b\n\x03\x64\x65v\x18\x04 \x01(\t\x12\x15\n\rfence_context\x18\x05 \x01(\x04\x12\x13\n\x0b\x66\x65nce_seqno\x18\x06 \x01(\x04\x12\x11\n\tclient_id\x18\x07 \x01(\x04\"m\n#DrmSchedJobUnschedulableFtraceEvent\x12\x15\n\rfence_context\x18\x01 \x01(\x04\x12\x13\n\x0b\x66\x65nce_seqno\x18\x02 \x01(\x04\x12\x0b\n\x03\x63tx\x18\x03 \x01(\x04\x12\r\n\x05seqno\x18\x04 \x01(\x04\"\x15\n\x13HypEnterFtraceEvent\"\x14\n\x12HypExitFtraceEvent\"3\n\x14HostHcallFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0f\n\x07invalid\x18\x02 \x01(\r\"3\n\x12HostSmcFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x11\n\tforwarded\x18\x02 \x01(\r\"4\n\x17HostMemAbortFtraceEvent\x12\x0b\n\x03\x65sr\x18\x01 \x01(\x04\x12\x0c\n\x04\x61\x64\x64r\x18\x02 \x01(\x04\"\x87\x01\n\x16HostFfaCallFtraceEvent\x12\x0f\n\x07\x66unc_id\x18\x01 \x01(\x04\x12\x0e\n\x06res_a1\x18\x02 \x01(\x04\x12\x0e\n\x06res_a2\x18\x03 \x01(\x04\x12\x0e\n\x06res_a3\x18\x04 \x01(\x04\x12\x0e\n\x06res_a4\x18\x05 \x01(\x04\x12\x0f\n\x07handled\x18\x06 \x01(\x05\x12\x0b\n\x03\x65rr\x18\x07 \x01(\x05\"?\n\x15IommuIdmapFtraceEvent\x12\x0c\n\x04\x66rom\x18\x01 \x01(\x04\x12\n\n\x02to\x18\x02 \x01(\x04\x12\x0c\n\x04prot\x18\x03 \x01(\x05\"7\n\x19PsciMemProtectFtraceEvent\x12\r\n\x05\x63ount\x18\x01 \x01(\x04\x12\x0b\n\x03was\x18\x02 \x01(\x04\"=\n\x1eHypervisorHostHcallFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0f\n\x07invalid\x18\x02 \x01(\r\"=\n\x1cHypervisorHostSmcFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x11\n\tforwarded\x18\x02 \x01(\r\"\x1e\n\x1cHypervisorHypExitFtraceEvent\"I\n\x1fHypervisorIommuIdmapFtraceEvent\x12\x0c\n\x04\x66rom\x18\x01 \x01(\x04\x12\n\n\x02to\x18\x02 \x01(\x04\x12\x0c\n\x04prot\x18\x03 \x01(\x05\"A\n#HypervisorPsciMemProtectFtraceEvent\x12\r\n\x05\x63ount\x18\x01 \x01(\x04\x12\x0b\n\x03was\x18\x02 \x01(\x04\">\n!HypervisorHostMemAbortFtraceEvent\x12\x0b\n\x03\x65sr\x18\x01 \x01(\x04\x12\x0c\n\x04\x61\x64\x64r\x18\x02 \x01(\x04\"\x1f\n\x1dHypervisorHypEnterFtraceEvent\"6\n\'HypervisorIommuIdmapCompleteFtraceEvent\x12\x0b\n\x03map\x18\x01 \x01(\r\"3\n$HypervisorVcpuIllegalTrapFtraceEvent\x12\x0b\n\x03\x65sr\x18\x01 \x01(\x04\"b\n\x12I2cReadFtraceEvent\x12\x12\n\nadapter_nr\x18\x01 \x01(\x05\x12\x0e\n\x06msg_nr\x18\x02 \x01(\r\x12\x0c\n\x04\x61\x64\x64r\x18\x03 \x01(\r\x12\r\n\x05\x66lags\x18\x04 \x01(\r\x12\x0b\n\x03len\x18\x05 \x01(\r\"p\n\x13I2cWriteFtraceEvent\x12\x12\n\nadapter_nr\x18\x01 \x01(\x05\x12\x0e\n\x06msg_nr\x18\x02 \x01(\r\x12\x0c\n\x04\x61\x64\x64r\x18\x03 \x01(\r\x12\r\n\x05\x66lags\x18\x04 \x01(\r\x12\x0b\n\x03len\x18\x05 \x01(\r\x12\x0b\n\x03\x62uf\x18\x06 \x01(\r\"H\n\x14I2cResultFtraceEvent\x12\x12\n\nadapter_nr\x18\x01 \x01(\x05\x12\x0f\n\x07nr_msgs\x18\x02 \x01(\r\x12\x0b\n\x03ret\x18\x03 \x01(\x05\"p\n\x13I2cReplyFtraceEvent\x12\x12\n\nadapter_nr\x18\x01 \x01(\x05\x12\x0e\n\x06msg_nr\x18\x02 \x01(\r\x12\x0c\n\x04\x61\x64\x64r\x18\x03 \x01(\r\x12\r\n\x05\x66lags\x18\x04 \x01(\r\x12\x0b\n\x03len\x18\x05 \x01(\r\x12\x0b\n\x03\x62uf\x18\x06 \x01(\r\"j\n\x14SmbusReadFtraceEvent\x12\x12\n\nadapter_nr\x18\x01 \x01(\x05\x12\r\n\x05\x66lags\x18\x02 \x01(\r\x12\x0c\n\x04\x61\x64\x64r\x18\x03 \x01(\r\x12\x0f\n\x07\x63ommand\x18\x04 \x01(\r\x12\x10\n\x08protocol\x18\x05 \x01(\r\"x\n\x15SmbusWriteFtraceEvent\x12\x12\n\nadapter_nr\x18\x01 \x01(\x05\x12\x0c\n\x04\x61\x64\x64r\x18\x02 \x01(\r\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x0f\n\x07\x63ommand\x18\x04 \x01(\r\x12\x0b\n\x03len\x18\x05 \x01(\r\x12\x10\n\x08protocol\x18\x06 \x01(\r\"\x8d\x01\n\x16SmbusResultFtraceEvent\x12\x12\n\nadapter_nr\x18\x01 \x01(\x05\x12\x0c\n\x04\x61\x64\x64r\x18\x02 \x01(\r\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x12\n\nread_write\x18\x04 \x01(\r\x12\x0f\n\x07\x63ommand\x18\x05 \x01(\r\x12\x0b\n\x03res\x18\x06 \x01(\x05\x12\x10\n\x08protocol\x18\x07 \x01(\r\"x\n\x15SmbusReplyFtraceEvent\x12\x12\n\nadapter_nr\x18\x01 \x01(\x05\x12\x0c\n\x04\x61\x64\x64r\x18\x02 \x01(\r\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x0f\n\x07\x63ommand\x18\x04 \x01(\r\x12\x0b\n\x03len\x18\x05 \x01(\r\x12\x10\n\x08protocol\x18\x06 \x01(\r\"M\n\x12IonStatFtraceEvent\x12\x11\n\tbuffer_id\x18\x01 \x01(\r\x12\x0b\n\x03len\x18\x02 \x01(\x03\x12\x17\n\x0ftotal_allocated\x18\x03 \x01(\x04\"%\n\x13IpiEntryFtraceEvent\x12\x0e\n\x06reason\x18\x01 \x01(\t\"$\n\x12IpiExitFtraceEvent\x12\x0e\n\x06reason\x18\x01 \x01(\t\":\n\x13IpiRaiseFtraceEvent\x12\x13\n\x0btarget_cpus\x18\x01 \x01(\r\x12\x0e\n\x06reason\x18\x02 \x01(\t\"&\n\x17SoftirqEntryFtraceEvent\x12\x0b\n\x03vec\x18\x01 \x01(\r\"%\n\x16SoftirqExitFtraceEvent\x12\x0b\n\x03vec\x18\x01 \x01(\r\"&\n\x17SoftirqRaiseFtraceEvent\x12\x0b\n\x03vec\x18\x01 \x01(\r\"H\n\x1aIrqHandlerEntryFtraceEvent\x12\x0b\n\x03irq\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0f\n\x07handler\x18\x03 \x01(\r\"5\n\x19IrqHandlerExitFtraceEvent\x12\x0b\n\x03irq\x18\x01 \x01(\x05\x12\x0b\n\x03ret\x18\x02 \x01(\x05\",\n\x1aLocalTimerEntryFtraceEvent\x12\x0e\n\x06vector\x18\x01 \x01(\x05\"+\n\x19LocalTimerExitFtraceEvent\x12\x0e\n\x06vector\x18\x01 \x01(\x05\"?\n\x1bKgslGpuFrequencyFtraceEvent\x12\x10\n\x08gpu_freq\x18\x01 \x01(\r\x12\x0e\n\x06gpu_id\x18\x02 \x01(\r\"q\n#KgslAdrenoCmdbatchQueuedFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\ttimestamp\x18\x02 \x01(\r\x12\x0e\n\x06queued\x18\x03 \x01(\r\x12\r\n\x05\x66lags\x18\x04 \x01(\r\x12\x0c\n\x04prio\x18\x05 \x01(\r\"\xf9\x01\n&KgslAdrenoCmdbatchSubmittedFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\ttimestamp\x18\x02 \x01(\r\x12\x10\n\x08inflight\x18\x03 \x01(\x03\x12\r\n\x05\x66lags\x18\x04 \x01(\r\x12\r\n\x05ticks\x18\x05 \x01(\x04\x12\x0c\n\x04secs\x18\x06 \x01(\x04\x12\r\n\x05usecs\x18\x07 \x01(\x04\x12\x0c\n\x04prio\x18\x08 \x01(\x05\x12\r\n\x05rb_id\x18\t \x01(\x05\x12\x0c\n\x04rptr\x18\n \x01(\r\x12\x0c\n\x04wptr\x18\x0b \x01(\r\x12\x12\n\nq_inflight\x18\x0c \x01(\x05\x12\x16\n\x0e\x64ispatch_queue\x18\r \x01(\x05\"_\n!KgslAdrenoCmdbatchSyncFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\ttimestamp\x18\x02 \x01(\r\x12\r\n\x05ticks\x18\x03 \x01(\x04\x12\x0c\n\x04prio\x18\x04 \x01(\x05\"\xd5\x02\n$KgslAdrenoCmdbatchRetiredFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\ttimestamp\x18\x02 \x01(\r\x12\x10\n\x08inflight\x18\x03 \x01(\x03\x12\x10\n\x08recovery\x18\x04 \x01(\r\x12\r\n\x05\x66lags\x18\x05 \x01(\r\x12\r\n\x05start\x18\x06 \x01(\x04\x12\x0e\n\x06retire\x18\x07 \x01(\x04\x12\x0c\n\x04prio\x18\x08 \x01(\x05\x12\r\n\x05rb_id\x18\t \x01(\x05\x12\x0c\n\x04rptr\x18\n \x01(\r\x12\x0c\n\x04wptr\x18\x0b \x01(\r\x12\x12\n\nq_inflight\x18\x0c \x01(\x05\x12\x16\n\x0e\x66\x61ult_recovery\x18\r \x01(\x04\x12\x16\n\x0e\x64ispatch_queue\x18\x0e \x01(\r\x12\x17\n\x0fsubmitted_to_rb\x18\x0f \x01(\x04\x12\x16\n\x0eretired_on_gmu\x18\x10 \x01(\x04\x12\x0e\n\x06\x61\x63tive\x18\x11 \x01(\x04\"A\n\x1d\x41llocPagesIommuEndFtraceEvent\x12\x11\n\tgfp_flags\x18\x01 \x01(\r\x12\r\n\x05order\x18\x02 \x01(\r\"B\n\x1e\x41llocPagesIommuFailFtraceEvent\x12\x11\n\tgfp_flags\x18\x01 \x01(\r\x12\r\n\x05order\x18\x02 \x01(\r\"C\n\x1f\x41llocPagesIommuStartFtraceEvent\x12\x11\n\tgfp_flags\x18\x01 \x01(\r\x12\r\n\x05order\x18\x02 \x01(\r\"?\n\x1b\x41llocPagesSysEndFtraceEvent\x12\x11\n\tgfp_flags\x18\x01 \x01(\r\x12\r\n\x05order\x18\x02 \x01(\r\"@\n\x1c\x41llocPagesSysFailFtraceEvent\x12\x11\n\tgfp_flags\x18\x01 \x01(\r\x12\r\n\x05order\x18\x02 \x01(\r\"A\n\x1d\x41llocPagesSysStartFtraceEvent\x12\x11\n\tgfp_flags\x18\x01 \x01(\r\x12\r\n\x05order\x18\x02 \x01(\r\"3\n\"DmaAllocContiguousRetryFtraceEvent\x12\r\n\x05tries\x18\x01 \x01(\x05\"S\n\x18IommuMapRangeFtraceEvent\x12\x12\n\nchunk_size\x18\x01 \x01(\x04\x12\x0b\n\x03len\x18\x02 \x01(\x04\x12\n\n\x02pa\x18\x03 \x01(\x04\x12\n\n\x02va\x18\x04 \x01(\x04\"f\n\"IommuSecPtblMapRangeEndFtraceEvent\x12\x0b\n\x03len\x18\x01 \x01(\x04\x12\x0b\n\x03num\x18\x02 \x01(\x05\x12\n\n\x02pa\x18\x03 \x01(\r\x12\x0e\n\x06sec_id\x18\x04 \x01(\x05\x12\n\n\x02va\x18\x05 \x01(\x04\"h\n$IommuSecPtblMapRangeStartFtraceEvent\x12\x0b\n\x03len\x18\x01 \x01(\x04\x12\x0b\n\x03num\x18\x02 \x01(\x05\x12\n\n\x02pa\x18\x03 \x01(\r\x12\x0e\n\x06sec_id\x18\x04 \x01(\x05\x12\n\n\x02va\x18\x05 \x01(\x04\"p\n\x1cIonAllocBufferEndFtraceEvent\x12\x13\n\x0b\x63lient_name\x18\x01 \x01(\t\x12\r\n\x05\x66lags\x18\x02 \x01(\r\x12\x11\n\theap_name\x18\x03 \x01(\t\x12\x0b\n\x03len\x18\x04 \x01(\x04\x12\x0c\n\x04mask\x18\x05 \x01(\r\"\x80\x01\n\x1dIonAllocBufferFailFtraceEvent\x12\x13\n\x0b\x63lient_name\x18\x01 \x01(\t\x12\r\n\x05\x65rror\x18\x02 \x01(\x03\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x11\n\theap_name\x18\x04 \x01(\t\x12\x0b\n\x03len\x18\x05 \x01(\x04\x12\x0c\n\x04mask\x18\x06 \x01(\r\"\x84\x01\n!IonAllocBufferFallbackFtraceEvent\x12\x13\n\x0b\x63lient_name\x18\x01 \x01(\t\x12\r\n\x05\x65rror\x18\x02 \x01(\x03\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x11\n\theap_name\x18\x04 \x01(\t\x12\x0b\n\x03len\x18\x05 \x01(\x04\x12\x0c\n\x04mask\x18\x06 \x01(\r\"r\n\x1eIonAllocBufferStartFtraceEvent\x12\x13\n\x0b\x63lient_name\x18\x01 \x01(\t\x12\r\n\x05\x66lags\x18\x02 \x01(\r\x12\x11\n\theap_name\x18\x03 \x01(\t\x12\x0b\n\x03len\x18\x04 \x01(\x04\x12\x0c\n\x04mask\x18\x05 \x01(\r\"+\n\x1aIonCpAllocRetryFtraceEvent\x12\r\n\x05tries\x18\x01 \x01(\x05\"_\n\x1fIonCpSecureBufferEndFtraceEvent\x12\r\n\x05\x61lign\x18\x01 \x01(\x04\x12\r\n\x05\x66lags\x18\x02 \x01(\x04\x12\x11\n\theap_name\x18\x03 \x01(\t\x12\x0b\n\x03len\x18\x04 \x01(\x04\"a\n!IonCpSecureBufferStartFtraceEvent\x12\r\n\x05\x61lign\x18\x01 \x01(\x04\x12\r\n\x05\x66lags\x18\x02 \x01(\x04\x12\x11\n\theap_name\x18\x03 \x01(\t\x12\x0b\n\x03len\x18\x04 \x01(\x04\"(\n\x19IonPrefetchingFtraceEvent\x12\x0b\n\x03len\x18\x01 \x01(\x04\"[\n#IonSecureCmaAddToPoolEndFtraceEvent\x12\x13\n\x0bis_prefetch\x18\x01 \x01(\r\x12\x0b\n\x03len\x18\x02 \x01(\x04\x12\x12\n\npool_total\x18\x03 \x01(\x05\"]\n%IonSecureCmaAddToPoolStartFtraceEvent\x12\x13\n\x0bis_prefetch\x18\x01 \x01(\r\x12\x0b\n\x03len\x18\x02 \x01(\x04\x12\x12\n\npool_total\x18\x03 \x01(\x05\"b\n\"IonSecureCmaAllocateEndFtraceEvent\x12\r\n\x05\x61lign\x18\x01 \x01(\x04\x12\r\n\x05\x66lags\x18\x02 \x01(\x04\x12\x11\n\theap_name\x18\x03 \x01(\t\x12\x0b\n\x03len\x18\x04 \x01(\x04\"d\n$IonSecureCmaAllocateStartFtraceEvent\x12\r\n\x05\x61lign\x18\x01 \x01(\x04\x12\r\n\x05\x66lags\x18\x02 \x01(\x04\x12\x11\n\theap_name\x18\x03 \x01(\t\x12\x0b\n\x03len\x18\x04 \x01(\x04\"R\n$IonSecureCmaShrinkPoolEndFtraceEvent\x12\x14\n\x0c\x64rained_size\x18\x01 \x01(\x04\x12\x14\n\x0cskipped_size\x18\x02 \x01(\x04\"T\n&IonSecureCmaShrinkPoolStartFtraceEvent\x12\x14\n\x0c\x64rained_size\x18\x01 \x01(\x04\x12\x14\n\x0cskipped_size\x18\x02 \x01(\x04\"2\n\x10KfreeFtraceEvent\x12\x11\n\tcall_site\x18\x01 \x01(\x04\x12\x0b\n\x03ptr\x18\x02 \x01(\x04\"o\n\x12KmallocFtraceEvent\x12\x13\n\x0b\x62ytes_alloc\x18\x01 \x01(\x04\x12\x11\n\tbytes_req\x18\x02 \x01(\x04\x12\x11\n\tcall_site\x18\x03 \x01(\x04\x12\x11\n\tgfp_flags\x18\x04 \x01(\r\x12\x0b\n\x03ptr\x18\x05 \x01(\x04\"\x81\x01\n\x16KmallocNodeFtraceEvent\x12\x13\n\x0b\x62ytes_alloc\x18\x01 \x01(\x04\x12\x11\n\tbytes_req\x18\x02 \x01(\x04\x12\x11\n\tcall_site\x18\x03 \x01(\x04\x12\x11\n\tgfp_flags\x18\x04 \x01(\r\x12\x0c\n\x04node\x18\x05 \x01(\x05\x12\x0b\n\x03ptr\x18\x06 \x01(\x04\"v\n\x19KmemCacheAllocFtraceEvent\x12\x13\n\x0b\x62ytes_alloc\x18\x01 \x01(\x04\x12\x11\n\tbytes_req\x18\x02 \x01(\x04\x12\x11\n\tcall_site\x18\x03 \x01(\x04\x12\x11\n\tgfp_flags\x18\x04 \x01(\r\x12\x0b\n\x03ptr\x18\x05 \x01(\x04\"\x88\x01\n\x1dKmemCacheAllocNodeFtraceEvent\x12\x13\n\x0b\x62ytes_alloc\x18\x01 \x01(\x04\x12\x11\n\tbytes_req\x18\x02 \x01(\x04\x12\x11\n\tcall_site\x18\x03 \x01(\x04\x12\x11\n\tgfp_flags\x18\x04 \x01(\r\x12\x0c\n\x04node\x18\x05 \x01(\x05\x12\x0b\n\x03ptr\x18\x06 \x01(\x04\":\n\x18KmemCacheFreeFtraceEvent\x12\x11\n\tcall_site\x18\x01 \x01(\x04\x12\x0b\n\x03ptr\x18\x02 \x01(\x04\"*\n\x1aMigratePagesEndFtraceEvent\x12\x0c\n\x04mode\x18\x01 \x01(\x05\",\n\x1cMigratePagesStartFtraceEvent\x12\x0c\n\x04mode\x18\x01 \x01(\x05\"(\n\x17MigrateRetryFtraceEvent\x12\r\n\x05tries\x18\x01 \x01(\x05\"j\n\x16MmPageAllocFtraceEvent\x12\x11\n\tgfp_flags\x18\x01 \x01(\r\x12\x13\n\x0bmigratetype\x18\x02 \x01(\x05\x12\r\n\x05order\x18\x03 \x01(\r\x12\x0c\n\x04page\x18\x04 \x01(\x04\x12\x0b\n\x03pfn\x18\x05 \x01(\x04\"\xba\x01\n\x1dMmPageAllocExtfragFtraceEvent\x12\x19\n\x11\x61lloc_migratetype\x18\x01 \x01(\x05\x12\x13\n\x0b\x61lloc_order\x18\x02 \x01(\x05\x12\x1c\n\x14\x66\x61llback_migratetype\x18\x03 \x01(\x05\x12\x16\n\x0e\x66\x61llback_order\x18\x04 \x01(\x05\x12\x0c\n\x04page\x18\x05 \x01(\x04\x12\x18\n\x10\x63hange_ownership\x18\x06 \x01(\x05\x12\x0b\n\x03pfn\x18\x07 \x01(\x04\"a\n MmPageAllocZoneLockedFtraceEvent\x12\x13\n\x0bmigratetype\x18\x01 \x01(\x05\x12\r\n\x05order\x18\x02 \x01(\r\x12\x0c\n\x04page\x18\x03 \x01(\x04\x12\x0b\n\x03pfn\x18\x04 \x01(\x04\"A\n\x15MmPageFreeFtraceEvent\x12\r\n\x05order\x18\x01 \x01(\r\x12\x0c\n\x04page\x18\x02 \x01(\x04\x12\x0b\n\x03pfn\x18\x03 \x01(\x04\"G\n\x1cMmPageFreeBatchedFtraceEvent\x12\x0c\n\x04\x63old\x18\x01 \x01(\x05\x12\x0c\n\x04page\x18\x02 \x01(\x04\x12\x0b\n\x03pfn\x18\x03 \x01(\x04\"[\n\x1aMmPagePcpuDrainFtraceEvent\x12\x13\n\x0bmigratetype\x18\x01 \x01(\x05\x12\r\n\x05order\x18\x02 \x01(\r\x12\x0c\n\x04page\x18\x03 \x01(\x04\x12\x0b\n\x03pfn\x18\x04 \x01(\x04\"O\n\x12RssStatFtraceEvent\x12\x0e\n\x06member\x18\x01 \x01(\x05\x12\x0c\n\x04size\x18\x02 \x01(\x03\x12\x0c\n\x04\x63urr\x18\x03 \x01(\r\x12\r\n\x05mm_id\x18\x04 \x01(\r\"S\n\x18IonHeapShrinkFtraceEvent\x12\x11\n\theap_name\x18\x01 \x01(\t\x12\x0b\n\x03len\x18\x02 \x01(\x04\x12\x17\n\x0ftotal_allocated\x18\x03 \x01(\x03\"Q\n\x16IonHeapGrowFtraceEvent\x12\x11\n\theap_name\x18\x01 \x01(\t\x12\x0b\n\x03len\x18\x02 \x01(\x04\x12\x17\n\x0ftotal_allocated\x18\x03 \x01(\x03\"7\n\x1aIonBufferCreateFtraceEvent\x12\x0c\n\x04\x61\x64\x64r\x18\x01 \x01(\x04\x12\x0b\n\x03len\x18\x02 \x01(\x04\"8\n\x1bIonBufferDestroyFtraceEvent\x12\x0c\n\x04\x61\x64\x64r\x18\x01 \x01(\x04\x12\x0b\n\x03len\x18\x02 \x01(\x04\"\x99\x01\n(MmAllocContigMigrateRangeInfoFtraceEvent\x12\r\n\x05start\x18\x01 \x01(\x04\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x04\x12\x13\n\x0bnr_migrated\x18\x03 \x01(\x04\x12\x14\n\x0cnr_reclaimed\x18\x04 \x01(\x04\x12\x11\n\tnr_mapped\x18\x05 \x01(\x04\x12\x13\n\x0bmigratetype\x18\x06 \x01(\x05\"I\n\x18\x44mabufRssStatFtraceEvent\x12\x0b\n\x03rss\x18\x01 \x01(\x04\x12\x11\n\trss_delta\x18\x02 \x01(\x03\x12\r\n\x05i_ino\x18\x03 \x01(\x04\"(\n\x19KvmAccessFaultFtraceEvent\x12\x0b\n\x03ipa\x18\x01 \x01(\x04\"4\n\x14KvmAckIrqFtraceEvent\x12\x0f\n\x07irqchip\x18\x01 \x01(\r\x12\x0b\n\x03pin\x18\x02 \x01(\r\"2\n\x14KvmAgeHvaFtraceEvent\x12\x0b\n\x03\x65nd\x18\x01 \x01(\x04\x12\r\n\x05start\x18\x02 \x01(\x04\"T\n\x15KvmAgePageFtraceEvent\x12\x0b\n\x03gfn\x18\x01 \x01(\x04\x12\x0b\n\x03hva\x18\x02 \x01(\x04\x12\r\n\x05level\x18\x03 \x01(\r\x12\x12\n\nreferenced\x18\x04 \x01(\r\"2\n\x1bKvmArmClearDebugFtraceEvent\x12\x13\n\x0bguest_debug\x18\x01 \x01(\r\"9\n\x1aKvmArmSetDreg32FtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r\"7\n\x1aKvmArmSetRegsetFtraceEvent\x12\x0b\n\x03len\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\"@\n\x1bKvmArmSetupDebugFtraceEvent\x12\x13\n\x0bguest_debug\x18\x01 \x01(\r\x12\x0c\n\x04vcpu\x18\x02 \x01(\x04\"&\n\x13KvmEntryFtraceEvent\x12\x0f\n\x07vcpu_pc\x18\x01 \x01(\x04\"B\n\x12KvmExitFtraceEvent\x12\x0e\n\x06\x65sr_ec\x18\x01 \x01(\r\x12\x0b\n\x03ret\x18\x02 \x01(\x05\x12\x0f\n\x07vcpu_pc\x18\x03 \x01(\x04\"!\n\x11KvmFpuFtraceEvent\x12\x0c\n\x04load\x18\x01 \x01(\r\"o\n\x19KvmGetTimerMapFtraceEvent\x12\x15\n\rdirect_ptimer\x18\x01 \x01(\x05\x12\x15\n\rdirect_vtimer\x18\x02 \x01(\x05\x12\x13\n\x0b\x65mul_ptimer\x18\x03 \x01(\x05\x12\x0f\n\x07vcpu_id\x18\x04 \x01(\x04\"T\n\x18KvmGuestFaultFtraceEvent\x12\x0b\n\x03hsr\x18\x01 \x01(\x04\x12\r\n\x05hxfar\x18\x02 \x01(\x04\x12\x0b\n\x03ipa\x18\x03 \x01(\x04\x12\x0f\n\x07vcpu_pc\x18\x04 \x01(\x04\")\n\x1aKvmHandleSysRegFtraceEvent\x12\x0b\n\x03hsr\x18\x01 \x01(\x04\"B\n\x16KvmHvcArm64FtraceEvent\x12\x0b\n\x03imm\x18\x01 \x01(\x04\x12\n\n\x02r0\x18\x02 \x01(\x04\x12\x0f\n\x07vcpu_pc\x18\x03 \x01(\x04\"W\n\x15KvmIrqLineFtraceEvent\x12\x0f\n\x07irq_num\x18\x01 \x01(\x05\x12\r\n\x05level\x18\x02 \x01(\x05\x12\x0c\n\x04type\x18\x03 \x01(\r\x12\x10\n\x08vcpu_idx\x18\x04 \x01(\x05\"I\n\x12KvmMmioFtraceEvent\x12\x0b\n\x03gpa\x18\x01 \x01(\x04\x12\x0b\n\x03len\x18\x02 \x01(\r\x12\x0c\n\x04type\x18\x03 \x01(\r\x12\x0b\n\x03val\x18\x04 \x01(\x04\"I\n\x19KvmMmioEmulateFtraceEvent\x12\x0c\n\x04\x63psr\x18\x01 \x01(\x04\x12\r\n\x05instr\x18\x02 \x01(\x04\x12\x0f\n\x07vcpu_pc\x18\x03 \x01(\x04\"@\n\x1bKvmSetGuestDebugFtraceEvent\x12\x13\n\x0bguest_debug\x18\x01 \x01(\r\x12\x0c\n\x04vcpu\x18\x02 \x01(\x04\"I\n\x14KvmSetIrqFtraceEvent\x12\x0b\n\x03gsi\x18\x01 \x01(\r\x12\x15\n\rirq_source_id\x18\x02 \x01(\x05\x12\r\n\x05level\x18\x03 \x01(\x05\"\'\n\x18KvmSetSpteHvaFtraceEvent\x12\x0b\n\x03hva\x18\x01 \x01(\x04\";\n\x19KvmSetWayFlushFtraceEvent\x12\r\n\x05\x63\x61\x63he\x18\x01 \x01(\r\x12\x0f\n\x07vcpu_pc\x18\x02 \x01(\x04\"\x8b\x01\n\x17KvmSysAccessFtraceEvent\x12\x0b\n\x03\x43Rm\x18\x01 \x01(\r\x12\x0b\n\x03\x43Rn\x18\x02 \x01(\r\x12\x0b\n\x03Op0\x18\x03 \x01(\r\x12\x0b\n\x03Op1\x18\x04 \x01(\r\x12\x0b\n\x03Op2\x18\x05 \x01(\r\x12\x10\n\x08is_write\x18\x06 \x01(\r\x12\x0c\n\x04name\x18\x07 \x01(\t\x12\x0f\n\x07vcpu_pc\x18\x08 \x01(\x04\"\'\n\x18KvmTestAgeHvaFtraceEvent\x12\x0b\n\x03hva\x18\x01 \x01(\x04\"D\n\x1aKvmTimerEmulateFtraceEvent\x12\x13\n\x0bshould_fire\x18\x01 \x01(\r\x12\x11\n\ttimer_idx\x18\x02 \x01(\x05\"5\n KvmTimerHrtimerExpireFtraceEvent\x12\x11\n\ttimer_idx\x18\x01 \x01(\x05\"O\n\x1fKvmTimerRestoreStateFtraceEvent\x12\x0b\n\x03\x63tl\x18\x01 \x01(\x04\x12\x0c\n\x04\x63val\x18\x02 \x01(\x04\x12\x11\n\ttimer_idx\x18\x03 \x01(\x05\"L\n\x1cKvmTimerSaveStateFtraceEvent\x12\x0b\n\x03\x63tl\x18\x01 \x01(\x04\x12\x0c\n\x04\x63val\x18\x02 \x01(\x04\x12\x11\n\ttimer_idx\x18\x03 \x01(\x05\"K\n\x1cKvmTimerUpdateIrqFtraceEvent\x12\x0b\n\x03irq\x18\x01 \x01(\r\x12\r\n\x05level\x18\x02 \x01(\x05\x12\x0f\n\x07vcpu_id\x18\x03 \x01(\x04\"F\n\x19KvmToggleCacheFtraceEvent\x12\x0b\n\x03now\x18\x01 \x01(\r\x12\x0f\n\x07vcpu_pc\x18\x02 \x01(\x04\x12\x0b\n\x03was\x18\x03 \x01(\r\"9\n\x1bKvmUnmapHvaRangeFtraceEvent\x12\x0b\n\x03\x65nd\x18\x01 \x01(\x04\x12\r\n\x05start\x18\x02 \x01(\x04\"-\n\x1bKvmUserspaceExitFtraceEvent\x12\x0e\n\x06reason\x18\x01 \x01(\r\"E\n\x18KvmVcpuWakeupFtraceEvent\x12\n\n\x02ns\x18\x01 \x01(\x04\x12\r\n\x05valid\x18\x02 \x01(\r\x12\x0e\n\x06waited\x18\x03 \x01(\r\"9\n\x16KvmWfxArm64FtraceEvent\x12\x0e\n\x06is_wfe\x18\x01 \x01(\r\x12\x0f\n\x07vcpu_pc\x18\x02 \x01(\x04\"T\n\x12TrapRegFtraceEvent\x12\n\n\x02\x66n\x18\x01 \x01(\t\x12\x10\n\x08is_write\x18\x02 \x01(\r\x12\x0b\n\x03reg\x18\x03 \x01(\x05\x12\x13\n\x0bwrite_value\x18\x04 \x01(\x04\"N\n\x1fVgicUpdateIrqPendingFtraceEvent\x12\x0b\n\x03irq\x18\x01 \x01(\r\x12\r\n\x05level\x18\x02 \x01(\r\x12\x0f\n\x07vcpu_id\x18\x03 \x01(\x04\"t\n\x18LowmemoryKillFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x16\n\x0epagecache_size\x18\x03 \x01(\x03\x12\x17\n\x0fpagecache_limit\x18\x04 \x01(\x03\x12\x0c\n\x04\x66ree\x18\x05 \x01(\x03\"q\n\x1fLwisTracingMarkWriteFtraceEvent\x12\x11\n\tlwis_name\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\r\x12\x0b\n\x03pid\x18\x03 \x01(\x05\x12\x11\n\tfunc_name\x18\x04 \x01(\t\x12\r\n\x05value\x18\x05 \x01(\x03\"Y\n\x1fMaliTracingMarkWriteFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x0c\n\x04type\x18\x03 \x01(\r\x12\r\n\x05value\x18\x04 \x01(\x05\"u\n\x1dMaliMaliKCPUCQSSETFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\tinfo_val1\x18\x02 \x01(\x04\x12\x11\n\tinfo_val2\x18\x03 \x01(\x04\x12\x0f\n\x07kctx_id\x18\x04 \x01(\r\x12\x11\n\tkctx_tgid\x18\x05 \x01(\x05\"{\n#MaliMaliKCPUCQSWAITSTARTFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\tinfo_val1\x18\x02 \x01(\x04\x12\x11\n\tinfo_val2\x18\x03 \x01(\x04\x12\x0f\n\x07kctx_id\x18\x04 \x01(\r\x12\x11\n\tkctx_tgid\x18\x05 \x01(\x05\"y\n!MaliMaliKCPUCQSWAITENDFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\tinfo_val1\x18\x02 \x01(\x04\x12\x11\n\tinfo_val2\x18\x03 \x01(\x04\x12\x0f\n\x07kctx_id\x18\x04 \x01(\r\x12\x11\n\tkctx_tgid\x18\x05 \x01(\x05\"z\n\"MaliMaliKCPUFENCESIGNALFtraceEvent\x12\x11\n\tinfo_val1\x18\x01 \x01(\x04\x12\x11\n\tinfo_val2\x18\x02 \x01(\x04\x12\x11\n\tkctx_tgid\x18\x03 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x04 \x01(\r\x12\n\n\x02id\x18\x05 \x01(\r\"}\n%MaliMaliKCPUFENCEWAITSTARTFtraceEvent\x12\x11\n\tinfo_val1\x18\x01 \x01(\x04\x12\x11\n\tinfo_val2\x18\x02 \x01(\x04\x12\x11\n\tkctx_tgid\x18\x03 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x04 \x01(\r\x12\n\n\x02id\x18\x05 \x01(\r\"{\n#MaliMaliKCPUFENCEWAITENDFtraceEvent\x12\x11\n\tinfo_val1\x18\x01 \x01(\x04\x12\x11\n\tinfo_val2\x18\x02 \x01(\x04\x12\x11\n\tkctx_tgid\x18\x03 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x04 \x01(\r\x12\n\n\x02id\x18\x05 \x01(\r\"\\\n$MaliMaliCSFINTERRUPTSTARTFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"Z\n\"MaliMaliCSFINTERRUPTENDFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"l\n4MaliMaliPMMCUHCTLCORESDOWNSCALENOTIFYPENDFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"c\n+MaliMaliPMMCUHCTLCORESNOTIFYPENDFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"d\n,MaliMaliPMMCUHCTLCOREINACTIVEPENDFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"`\n(MaliMaliPMMCUHCTLMCUONRECHECKFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"f\n.MaliMaliPMMCUHCTLSHADERSCOREOFFPENDFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"b\n*MaliMaliPMMCUHCTLSHADERSPENDOFFFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"a\n)MaliMaliPMMCUHCTLSHADERSPENDONFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"c\n+MaliMaliPMMCUHCTLSHADERSREADYOFFFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"W\n\x1fMaliMaliPMMCUINSLEEPFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"S\n\x1bMaliMaliPMMCUOFFFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"R\n\x1aMaliMaliPMMCUONFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"d\n,MaliMaliPMMCUONCOREATTRUPDATEPENDFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"_\n\'MaliMaliPMMCUONGLBREINITPENDFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"V\n\x1eMaliMaliPMMCUONHALTFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"^\n&MaliMaliPMMCUONHWCNTDISABLEFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"]\n%MaliMaliPMMCUONHWCNTENABLEFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"Z\n\"MaliMaliPMMCUONPENDHALTFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"[\n#MaliMaliPMMCUONPENDSLEEPFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"_\n\'MaliMaliPMMCUONSLEEPINITIATEFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"W\n\x1fMaliMaliPMMCUPENDOFFFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"\\\n$MaliMaliPMMCUPENDONRELOADFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"Y\n!MaliMaliPMMCUPOWERDOWNFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"Y\n!MaliMaliPMMCURESETWAITFtraceEvent\x12\x11\n\tkctx_tgid\x18\x01 \x01(\x05\x12\x0f\n\x07kctx_id\x18\x02 \x01(\r\x12\x10\n\x08info_val\x18\x03 \x01(\x04\"W\n\x1cMaliGpuPowerStateFtraceEvent\x12\x11\n\tchange_ns\x18\x01 \x01(\x04\x12\x12\n\nfrom_state\x18\x02 \x01(\x05\x12\x10\n\x08to_state\x18\x03 \x01(\x05\"@\n\x18MdpCmdKickoffFtraceEvent\x12\x0f\n\x07\x63tl_num\x18\x01 \x01(\r\x12\x13\n\x0bkickoff_cnt\x18\x02 \x01(\x05\"Z\n\x14MdpCommitFtraceEvent\x12\x0b\n\x03num\x18\x01 \x01(\r\x12\x10\n\x08play_cnt\x18\x02 \x01(\r\x12\x10\n\x08\x63lk_rate\x18\x03 \x01(\r\x12\x11\n\tbandwidth\x18\x04 \x01(\x04\"[\n\x17MdpPerfSetOtFtraceEvent\x12\x0c\n\x04pnum\x18\x01 \x01(\r\x12\x0e\n\x06xin_id\x18\x02 \x01(\r\x12\x0e\n\x06rd_lim\x18\x03 \x01(\r\x12\x12\n\nis_vbif_rt\x18\x04 \x01(\r\"\x8c\x02\n\x18MdpSsppChangeFtraceEvent\x12\x0b\n\x03num\x18\x01 \x01(\r\x12\x10\n\x08play_cnt\x18\x02 \x01(\r\x12\r\n\x05mixer\x18\x03 \x01(\r\x12\r\n\x05stage\x18\x04 \x01(\r\x12\r\n\x05\x66lags\x18\x05 \x01(\r\x12\x0e\n\x06\x66ormat\x18\x06 \x01(\r\x12\r\n\x05img_w\x18\x07 \x01(\r\x12\r\n\x05img_h\x18\x08 \x01(\r\x12\r\n\x05src_x\x18\t \x01(\r\x12\r\n\x05src_y\x18\n \x01(\r\x12\r\n\x05src_w\x18\x0b \x01(\r\x12\r\n\x05src_h\x18\x0c \x01(\r\x12\r\n\x05\x64st_x\x18\r \x01(\r\x12\r\n\x05\x64st_y\x18\x0e \x01(\r\x12\r\n\x05\x64st_w\x18\x0f \x01(\r\x12\r\n\x05\x64st_h\x18\x10 \x01(\r\"S\n\x1bTracingMarkWriteFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x12\n\ntrace_name\x18\x02 \x01(\t\x12\x13\n\x0btrace_begin\x18\x03 \x01(\r\"d\n\x1dMdpCmdPingpongDoneFtraceEvent\x12\x0f\n\x07\x63tl_num\x18\x01 \x01(\r\x12\x10\n\x08intf_num\x18\x02 \x01(\r\x12\x0e\n\x06pp_num\x18\x03 \x01(\r\x12\x10\n\x08koff_cnt\x18\x04 \x01(\x05\"\xa4\x01\n\x17MdpCompareBwFtraceEvent\x12\x0e\n\x06new_ab\x18\x01 \x01(\x04\x12\x0e\n\x06new_ib\x18\x02 \x01(\x04\x12\x0e\n\x06new_wb\x18\x03 \x01(\x04\x12\x0e\n\x06old_ab\x18\x04 \x01(\x04\x12\x0e\n\x06old_ib\x18\x05 \x01(\x04\x12\x0e\n\x06old_wb\x18\x06 \x01(\x04\x12\x16\n\x0eparams_changed\x18\x07 \x01(\r\x12\x11\n\tupdate_bw\x18\x08 \x01(\r\"p\n\x1eMdpPerfSetPanicLutsFtraceEvent\x12\x0c\n\x04pnum\x18\x01 \x01(\r\x12\x0b\n\x03\x66mt\x18\x02 \x01(\r\x12\x0c\n\x04mode\x18\x03 \x01(\r\x12\x11\n\tpanic_lut\x18\x04 \x01(\r\x12\x12\n\nrobust_lut\x18\x05 \x01(\r\"\x89\x02\n\x15MdpSsppSetFtraceEvent\x12\x0b\n\x03num\x18\x01 \x01(\r\x12\x10\n\x08play_cnt\x18\x02 \x01(\r\x12\r\n\x05mixer\x18\x03 \x01(\r\x12\r\n\x05stage\x18\x04 \x01(\r\x12\r\n\x05\x66lags\x18\x05 \x01(\r\x12\x0e\n\x06\x66ormat\x18\x06 \x01(\r\x12\r\n\x05img_w\x18\x07 \x01(\r\x12\r\n\x05img_h\x18\x08 \x01(\r\x12\r\n\x05src_x\x18\t \x01(\r\x12\r\n\x05src_y\x18\n \x01(\r\x12\r\n\x05src_w\x18\x0b \x01(\r\x12\r\n\x05src_h\x18\x0c \x01(\r\x12\r\n\x05\x64st_x\x18\r \x01(\r\x12\r\n\x05\x64st_y\x18\x0e \x01(\r\x12\r\n\x05\x64st_w\x18\x0f \x01(\r\x12\r\n\x05\x64st_h\x18\x10 \x01(\r\"A\n\x1cMdpCmdReadptrDoneFtraceEvent\x12\x0f\n\x07\x63tl_num\x18\x01 \x01(\r\x12\x10\n\x08koff_cnt\x18\x02 \x01(\x05\"I\n\x15MdpMisrCrcFtraceEvent\x12\x10\n\x08\x62lock_id\x18\x01 \x01(\r\x12\x11\n\tvsync_cnt\x18\x02 \x01(\r\x12\x0b\n\x03\x63rc\x18\x03 \x01(\r\"}\n\x1cMdpPerfSetQosLutsFtraceEvent\x12\x0c\n\x04pnum\x18\x01 \x01(\r\x12\x0b\n\x03\x66mt\x18\x02 \x01(\r\x12\x0c\n\x04intf\x18\x03 \x01(\r\x12\x0b\n\x03rot\x18\x04 \x01(\r\x12\n\n\x02\x66l\x18\x05 \x01(\r\x12\x0b\n\x03lut\x18\x06 \x01(\r\x12\x0e\n\x06linear\x18\x07 \x01(\r\"N\n\x1aMdpTraceCounterFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x14\n\x0c\x63ounter_name\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\x05\"-\n\x1aMdpCmdReleaseBwFtraceEvent\x12\x0f\n\x07\x63tl_num\x18\x01 \x01(\r\".\n\x19MdpMixerUpdateFtraceEvent\x12\x11\n\tmixer_num\x18\x01 \x01(\r\"\xa0\x01\n\x1dMdpPerfSetWmLevelsFtraceEvent\x12\x0c\n\x04pnum\x18\x01 \x01(\r\x12\x11\n\tuse_space\x18\x02 \x01(\r\x12\x16\n\x0epriority_bytes\x18\x03 \x01(\r\x12\x0b\n\x03wm0\x18\x04 \x01(\r\x12\x0b\n\x03wm1\x18\x05 \x01(\r\x12\x0b\n\x03wm2\x18\x06 \x01(\r\x12\x0e\n\x06mb_cnt\x18\x07 \x01(\r\x12\x0f\n\x07mb_size\x18\x08 \x01(\r\"H\n\x1fMdpVideoUnderrunDoneFtraceEvent\x12\x0f\n\x07\x63tl_num\x18\x01 \x01(\r\x12\x14\n\x0cunderrun_cnt\x18\x02 \x01(\r\"E\n\x1dMdpCmdWaitPingpongFtraceEvent\x12\x0f\n\x07\x63tl_num\x18\x01 \x01(\r\x12\x13\n\x0bkickoff_cnt\x18\x02 \x01(\x05\"\xce\x01\n\x1dMdpPerfPrefillCalcFtraceEvent\x12\x0c\n\x04pnum\x18\x01 \x01(\r\x12\x13\n\x0blatency_buf\x18\x02 \x01(\r\x12\n\n\x02ot\x18\x03 \x01(\r\x12\r\n\x05y_buf\x18\x04 \x01(\r\x12\x10\n\x08y_scaler\x18\x05 \x01(\r\x12\x10\n\x08pp_lines\x18\x06 \x01(\r\x12\x10\n\x08pp_bytes\x18\x07 \x01(\r\x12\x0f\n\x07post_sc\x18\x08 \x01(\r\x12\x11\n\tfbc_bytes\x18\t \x01(\r\x12\x15\n\rprefill_bytes\x18\n \x01(\r\"Q\n\x1bMdpPerfUpdateBusFtraceEvent\x12\x0e\n\x06\x63lient\x18\x01 \x01(\x05\x12\x10\n\x08\x61\x62_quota\x18\x02 \x01(\x04\x12\x10\n\x08ib_quota\x18\x03 \x01(\x04\"0\n\x1fRotatorBwAoAsContextFtraceEvent\x12\r\n\x05state\x18\x01 \x01(\r\"Y\n\x18MmEventRecordFtraceEvent\x12\x0f\n\x07\x61vg_lat\x18\x01 \x01(\r\x12\r\n\x05\x63ount\x18\x02 \x01(\r\x12\x0f\n\x07max_lat\x18\x03 \x01(\r\x12\x0c\n\x04type\x18\x04 \x01(\r\"H\n\x1aNetifReceiveSkbFtraceEvent\x12\x0b\n\x03len\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0f\n\x07skbaddr\x18\x03 \x01(\x04\"O\n\x15NetDevXmitFtraceEvent\x12\x0b\n\x03len\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\n\n\x02rc\x18\x03 \x01(\x05\x12\x0f\n\x07skbaddr\x18\x04 \x01(\x04\"\xfb\x02\n\x1eNapiGroReceiveEntryFtraceEvent\x12\x10\n\x08\x64\x61ta_len\x18\x01 \x01(\r\x12\x10\n\x08gso_size\x18\x02 \x01(\r\x12\x10\n\x08gso_type\x18\x03 \x01(\r\x12\x0c\n\x04hash\x18\x04 \x01(\r\x12\x11\n\tip_summed\x18\x05 \x01(\r\x12\x0f\n\x07l4_hash\x18\x06 \x01(\r\x12\x0b\n\x03len\x18\x07 \x01(\r\x12\x12\n\nmac_header\x18\x08 \x01(\x05\x12\x18\n\x10mac_header_valid\x18\t \x01(\r\x12\x0c\n\x04name\x18\n \x01(\t\x12\x0f\n\x07napi_id\x18\x0b \x01(\r\x12\x10\n\x08nr_frags\x18\x0c \x01(\r\x12\x10\n\x08protocol\x18\r \x01(\r\x12\x15\n\rqueue_mapping\x18\x0e \x01(\r\x12\x0f\n\x07skbaddr\x18\x0f \x01(\x04\x12\x10\n\x08truesize\x18\x10 \x01(\r\x12\x12\n\nvlan_proto\x18\x11 \x01(\r\x12\x13\n\x0bvlan_tagged\x18\x12 \x01(\r\x12\x10\n\x08vlan_tci\x18\x13 \x01(\r\",\n\x1dNapiGroReceiveExitFtraceEvent\x12\x0b\n\x03ret\x18\x01 \x01(\x05\"P\n\x1cOomScoreAdjUpdateFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\x12\x15\n\room_score_adj\x18\x02 \x01(\x05\x12\x0b\n\x03pid\x18\x03 \x01(\x05\"$\n\x15MarkVictimFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\">\n\x1b\x44siCmdFifoStatusFtraceEvent\x12\x0e\n\x06header\x18\x01 \x01(\r\x12\x0f\n\x07payload\x18\x02 \x01(\r\"/\n\x10\x44siRxFtraceEvent\x12\x0b\n\x03\x63md\x18\x01 \x01(\r\x12\x0e\n\x06rx_buf\x18\x02 \x01(\r\">\n\x10\x44siTxFtraceEvent\x12\x0c\n\x04last\x18\x01 \x01(\r\x12\x0e\n\x06tx_buf\x18\x02 \x01(\r\x12\x0c\n\x04type\x18\x03 \x01(\r\"\x7f\n\x1cPanelWriteGenericFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x12\n\ntrace_name\x18\x02 \x01(\t\x12\x13\n\x0btrace_begin\x18\x03 \x01(\r\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x0c\n\x04type\x18\x05 \x01(\r\x12\r\n\x05value\x18\x06 \x01(\x05\"\x84\x03\n\x1eSchedSwitchWithCtrsFtraceEvent\x12\x0f\n\x07old_pid\x18\x01 \x01(\x05\x12\x0f\n\x07new_pid\x18\x02 \x01(\x05\x12\x0c\n\x04\x63\x63tr\x18\x03 \x01(\x04\x12\x0c\n\x04\x63tr0\x18\x04 \x01(\x04\x12\x0c\n\x04\x63tr1\x18\x05 \x01(\x04\x12\x0c\n\x04\x63tr2\x18\x06 \x01(\x04\x12\x0c\n\x04\x63tr3\x18\x07 \x01(\x04\x12\r\n\x05lctr0\x18\x08 \x01(\r\x12\r\n\x05lctr1\x18\t \x01(\r\x12\x0c\n\x04\x63tr4\x18\n \x01(\x04\x12\x0c\n\x04\x63tr5\x18\x0b \x01(\x04\x12\x11\n\tprev_comm\x18\x0c \x01(\t\x12\x10\n\x08prev_pid\x18\r \x01(\x05\x12\x0b\n\x03\x63yc\x18\x0e \x01(\r\x12\x0c\n\x04inst\x18\x0f \x01(\r\x12\x0f\n\x07stallbm\x18\x10 \x01(\r\x12\x0c\n\x04l3dm\x18\x11 \x01(\r\x12\x10\n\x08next_pid\x18\x12 \x01(\x05\x12\x11\n\tnext_comm\x18\x13 \x01(\t\x12\x12\n\nprev_state\x18\x14 \x01(\x03\x12\x0c\n\x04\x61mu0\x18\x15 \x01(\x04\x12\x0c\n\x04\x61mu1\x18\x16 \x01(\x04\x12\x0c\n\x04\x61mu2\x18\x17 \x01(\x04\"0\n\x1cPixelMmKswapdWakeFtraceEvent\x12\x10\n\x08whatever\x18\x01 \x01(\x05\"\x85\x01\n\x1cPixelMmKswapdDoneFtraceEvent\x12\x18\n\x10\x64\x65lta_nr_scanned\x18\x01 \x01(\x04\x12\x1a\n\x12\x64\x65lta_nr_reclaimed\x18\x02 \x01(\x04\x12\x1a\n\x12\x64\x65lta_nr_allocated\x18\x03 \x01(\x04\x12\x13\n\x0b\x64uration_ns\x18\x04 \x01(\x04\"8\n\x17\x43puFrequencyFtraceEvent\x12\r\n\x05state\x18\x01 \x01(\r\x12\x0e\n\x06\x63pu_id\x18\x02 \x01(\r\"S\n\x1d\x43puFrequencyLimitsFtraceEvent\x12\x10\n\x08min_freq\x18\x01 \x01(\r\x12\x10\n\x08max_freq\x18\x02 \x01(\r\x12\x0e\n\x06\x63pu_id\x18\x03 \x01(\r\"3\n\x12\x43puIdleFtraceEvent\x12\r\n\x05state\x18\x01 \x01(\r\x12\x0e\n\x06\x63pu_id\x18\x02 \x01(\r\"E\n\x16\x43lockEnableFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05state\x18\x02 \x01(\x04\x12\x0e\n\x06\x63pu_id\x18\x03 \x01(\x04\"F\n\x17\x43lockDisableFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05state\x18\x02 \x01(\x04\x12\x0e\n\x06\x63pu_id\x18\x03 \x01(\x04\"F\n\x17\x43lockSetRateFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05state\x18\x02 \x01(\x04\x12\x0e\n\x06\x63pu_id\x18\x03 \x01(\x04\"F\n\x18SuspendResumeFtraceEvent\x12\x0e\n\x06\x61\x63tion\x18\x01 \x01(\t\x12\x0b\n\x03val\x18\x02 \x01(\x05\x12\r\n\x05start\x18\x03 \x01(\r\"8\n\x17GpuFrequencyFtraceEvent\x12\x0e\n\x06gpu_id\x18\x01 \x01(\r\x12\r\n\x05state\x18\x02 \x01(\r\">\n\x1fWakeupSourceActivateFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05state\x18\x02 \x01(\x04\"@\n!WakeupSourceDeactivateFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05state\x18\x02 \x01(\x04\"\x85\x01\n\x18GpuWorkPeriodFtraceEvent\x12\x0e\n\x06gpu_id\x18\x01 \x01(\r\x12\x0b\n\x03uid\x18\x02 \x01(\r\x12\x15\n\rstart_time_ns\x18\x03 \x01(\x04\x12\x13\n\x0b\x65nd_time_ns\x18\x04 \x01(\x04\x12 \n\x18total_active_duration_ns\x18\x05 \x01(\x04\"q\n DevicePmCallbackStartFtraceEvent\x12\x0e\n\x06\x64\x65vice\x18\x01 \x01(\t\x12\x0e\n\x06\x64river\x18\x02 \x01(\t\x12\x0e\n\x06parent\x18\x03 \x01(\t\x12\x0e\n\x06pm_ops\x18\x04 \x01(\t\x12\r\n\x05\x65vent\x18\x05 \x01(\x05\"O\n\x1e\x44\x65vicePmCallbackEndFtraceEvent\x12\x0e\n\x06\x64\x65vice\x18\x01 \x01(\t\x12\x0e\n\x06\x64river\x18\x02 \x01(\t\x12\r\n\x05\x65rror\x18\x03 \x01(\x05\"!\n\x12\x43onsoleFtraceEvent\x12\x0b\n\x03msg\x18\x01 \x01(\t\"/\n\x13SysEnterFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0c\n\x04\x61rgs\x18\x02 \x03(\x04\"-\n\x12SysExitFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0b\n\x03ret\x18\x02 \x01(\x03\"+\n\x1bRegulatorDisableFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\"3\n#RegulatorDisableCompleteFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\"*\n\x1aRegulatorEnableFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\"2\n\"RegulatorEnableCompleteFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\"/\n\x1fRegulatorEnableDelayFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\"H\n\x1eRegulatorSetVoltageFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03min\x18\x02 \x01(\x05\x12\x0b\n\x03max\x18\x03 \x01(\x05\"C\n&RegulatorSetVoltageCompleteFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03val\x18\x02 \x01(\r\"4\n\x14RpmStatusFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \x01(\x05\"}\n\"SamsungTracingMarkWriteFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x12\n\ntrace_name\x18\x02 \x01(\t\x12\x13\n\x0btrace_begin\x18\x03 \x01(\r\x12\x12\n\ntrace_type\x18\x04 \x01(\r\x12\r\n\x05value\x18\x05 \x01(\x05\"\x9c\x01\n\x16SchedSwitchFtraceEvent\x12\x11\n\tprev_comm\x18\x01 \x01(\t\x12\x10\n\x08prev_pid\x18\x02 \x01(\x05\x12\x11\n\tprev_prio\x18\x03 \x01(\x05\x12\x12\n\nprev_state\x18\x04 \x01(\x03\x12\x11\n\tnext_comm\x18\x05 \x01(\t\x12\x10\n\x08next_pid\x18\x06 \x01(\x05\x12\x11\n\tnext_prio\x18\x07 \x01(\x05\"f\n\x16SchedWakeupFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x0c\n\x04prio\x18\x03 \x01(\x05\x12\x0f\n\x07success\x18\x04 \x01(\x05\x12\x12\n\ntarget_cpu\x18\x05 \x01(\x05\"M\n\x1dSchedBlockedReasonFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x0e\n\x06\x63\x61ller\x18\x02 \x01(\x04\x12\x0f\n\x07io_wait\x18\x03 \x01(\r\"Q\n\x1aSchedCpuHotplugFtraceEvent\x12\x14\n\x0c\x61\x66\x66\x65\x63ted_cpu\x18\x01 \x01(\x05\x12\r\n\x05\x65rror\x18\x02 \x01(\x05\x12\x0e\n\x06status\x18\x03 \x01(\x05\"f\n\x16SchedWakingFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x0c\n\x04prio\x18\x03 \x01(\x05\x12\x0f\n\x07success\x18\x04 \x01(\x05\x12\x12\n\ntarget_cpu\x18\x05 \x01(\x05\"i\n\x19SchedWakeupNewFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x0c\n\x04prio\x18\x03 \x01(\x05\x12\x0f\n\x07success\x18\x04 \x01(\x05\x12\x12\n\ntarget_cpu\x18\x05 \x01(\x05\"M\n\x1bSchedProcessExecFtraceEvent\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x0f\n\x07old_pid\x18\x03 \x01(\x05\"T\n\x1bSchedProcessExitFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x0c\n\x04tgid\x18\x03 \x01(\x05\x12\x0c\n\x04prio\x18\x04 \x01(\x05\"m\n\x1bSchedProcessForkFtraceEvent\x12\x13\n\x0bparent_comm\x18\x01 \x01(\t\x12\x12\n\nparent_pid\x18\x02 \x01(\x05\x12\x12\n\nchild_comm\x18\x03 \x01(\t\x12\x11\n\tchild_pid\x18\x04 \x01(\x05\"F\n\x1bSchedProcessFreeFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x0c\n\x04prio\x18\x03 \x01(\x05\"8\n\x1bSchedProcessHangFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\"F\n\x1bSchedProcessWaitFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x0c\n\x04prio\x18\x03 \x01(\x05\"X\n\x19SchedPiSetprioFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\x12\x0f\n\x07newprio\x18\x02 \x01(\x05\x12\x0f\n\x07oldprio\x18\x03 \x01(\x05\x12\x0b\n\x03pid\x18\x04 \x01(\x05\"\xc8\x02\n\x1aSchedCpuUtilCfsFtraceEvent\x12\x0e\n\x06\x61\x63tive\x18\x01 \x01(\x05\x12\x10\n\x08\x63\x61pacity\x18\x02 \x01(\x04\x12\x15\n\rcapacity_orig\x18\x03 \x01(\x04\x12\x0b\n\x03\x63pu\x18\x04 \x01(\r\x12\x16\n\x0e\x63pu_importance\x18\x05 \x01(\x04\x12\x10\n\x08\x63pu_util\x18\x06 \x01(\x04\x12\x10\n\x08\x65xit_lat\x18\x07 \x01(\r\x12\x16\n\x0egroup_capacity\x18\x08 \x01(\x04\x12\x18\n\x10grp_overutilized\x18\t \x01(\r\x12\x10\n\x08idle_cpu\x18\n \x01(\r\x12\x12\n\nnr_running\x18\x0b \x01(\r\x12\x11\n\tspare_cap\x18\x0c \x01(\x03\x12\x11\n\ttask_fits\x18\r \x01(\r\x12\x17\n\x0fwake_group_util\x18\x0e \x01(\x04\x12\x11\n\twake_util\x18\x0f \x01(\x04\"\x89\x01\n\x1bSchedMigrateTaskFtraceEvent\x12\x0c\n\x04\x63omm\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x0c\n\x04prio\x18\x03 \x01(\x05\x12\x10\n\x08orig_cpu\x18\x04 \x01(\x05\x12\x10\n\x08\x64\x65st_cpu\x18\x05 \x01(\x05\x12\x0f\n\x07running\x18\x06 \x01(\x05\x12\x0c\n\x04load\x18\x07 \x01(\r\"|\n\x1eSchedWakeupTaskAttrFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x14\n\x0c\x63pu_affinity\x18\x02 \x01(\x04\x12\x11\n\ttask_util\x18\x03 \x01(\x04\x12\x12\n\nuclamp_min\x18\x04 \x01(\x04\x12\x10\n\x08vruntime\x18\x05 \x01(\x04\"B\n\x17ScmCallStartFtraceEvent\x12\x0f\n\x07\x61rginfo\x18\x01 \x01(\r\x12\n\n\x02x0\x18\x02 \x01(\x04\x12\n\n\x02x5\x18\x03 \x01(\x04\"\x17\n\x15ScmCallEndFtraceEvent\"\xfc\x01\n\x1fScsiDispatchCmdErrorFtraceEvent\x12\x0f\n\x07host_no\x18\x01 \x01(\r\x12\x0f\n\x07\x63hannel\x18\x02 \x01(\r\x12\n\n\x02id\x18\x03 \x01(\r\x12\x0b\n\x03lun\x18\x04 \x01(\r\x12\x0b\n\x03rtn\x18\x05 \x01(\x05\x12\x0e\n\x06opcode\x18\x06 \x01(\r\x12\x0f\n\x07\x63md_len\x18\x07 \x01(\r\x12\x12\n\ndata_sglen\x18\x08 \x01(\r\x12\x12\n\nprot_sglen\x18\t \x01(\r\x12\x0f\n\x07prot_op\x18\n \x01(\r\x12\x0c\n\x04\x63mnd\x18\x0b \x01(\t\x12\x12\n\ndriver_tag\x18\x0c \x01(\x05\x12\x15\n\rscheduler_tag\x18\r \x01(\x05\"\xaf\x02\n!ScsiDispatchCmdTimeoutFtraceEvent\x12\x0f\n\x07host_no\x18\x01 \x01(\r\x12\x0f\n\x07\x63hannel\x18\x02 \x01(\r\x12\n\n\x02id\x18\x03 \x01(\r\x12\x0b\n\x03lun\x18\x04 \x01(\r\x12\x0e\n\x06result\x18\x05 \x01(\x05\x12\x0e\n\x06opcode\x18\x06 \x01(\r\x12\x0f\n\x07\x63md_len\x18\x07 \x01(\r\x12\x12\n\ndata_sglen\x18\x08 \x01(\r\x12\x12\n\nprot_sglen\x18\t \x01(\r\x12\x0f\n\x07prot_op\x18\n \x01(\r\x12\x0c\n\x04\x63mnd\x18\x0b \x01(\t\x12\x12\n\ndriver_tag\x18\x0c \x01(\x05\x12\x15\n\rscheduler_tag\x18\r \x01(\x05\x12\x11\n\tsense_key\x18\x0e \x01(\r\x12\x0b\n\x03\x61sc\x18\x0f \x01(\r\x12\x0c\n\x04\x61scq\x18\x10 \x01(\r\"*\n\x17ScsiEhWakeupFtraceEvent\x12\x0f\n\x07host_no\x18\x01 \x01(\r\"y\n\x1eSdeTracingMarkWriteFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x12\n\ntrace_name\x18\x02 \x01(\t\x12\x12\n\ntrace_type\x18\x03 \x01(\r\x12\r\n\x05value\x18\x04 \x01(\x05\x12\x13\n\x0btrace_begin\x18\x05 \x01(\r\"J\n\x17SdeSdeEvtlogFtraceEvent\x12\x12\n\nevtlog_tag\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x0e\n\x06tag_id\x18\x03 \x01(\r\"\xb4\x01\n\x1dSdeSdePerfCalcCrtcFtraceEvent\x12\x12\n\nbw_ctl_ebi\x18\x01 \x01(\x04\x12\x13\n\x0b\x62w_ctl_llcc\x18\x02 \x01(\x04\x12\x13\n\x0b\x62w_ctl_mnoc\x18\x03 \x01(\x04\x12\x15\n\rcore_clk_rate\x18\x04 \x01(\r\x12\x0c\n\x04\x63rtc\x18\x05 \x01(\r\x12\x0e\n\x06ib_ebi\x18\x06 \x01(\x04\x12\x0f\n\x07ib_llcc\x18\x07 \x01(\x04\x12\x0f\n\x07ib_mnoc\x18\x08 \x01(\x04\"\x9b\x02\n\x1fSdeSdePerfCrtcUpdateFtraceEvent\x12\x12\n\nbw_ctl_ebi\x18\x01 \x01(\x04\x12\x13\n\x0b\x62w_ctl_llcc\x18\x02 \x01(\x04\x12\x13\n\x0b\x62w_ctl_mnoc\x18\x03 \x01(\x04\x12\x15\n\rcore_clk_rate\x18\x04 \x01(\r\x12\x0c\n\x04\x63rtc\x18\x05 \x01(\r\x12\x0e\n\x06params\x18\x06 \x01(\x05\x12\x17\n\x0fper_pipe_ib_ebi\x18\x07 \x01(\x04\x12\x18\n\x10per_pipe_ib_llcc\x18\x08 \x01(\x04\x12\x18\n\x10per_pipe_ib_mnoc\x18\t \x01(\x04\x12\x10\n\x08stop_req\x18\n \x01(\r\x12\x12\n\nupdate_bus\x18\x0b \x01(\r\x12\x12\n\nupdate_clk\x18\x0c \x01(\r\"t\n\x1fSdeSdePerfSetQosLutsFtraceEvent\x12\n\n\x02\x66l\x18\x01 \x01(\r\x12\x0b\n\x03\x66mt\x18\x02 \x01(\r\x12\x0b\n\x03lut\x18\x03 \x01(\x04\x12\x11\n\tlut_usage\x18\x04 \x01(\r\x12\x0c\n\x04pnum\x18\x05 \x01(\r\x12\n\n\x02rt\x18\x06 \x01(\r\"d\n\x1eSdeSdePerfUpdateBusFtraceEvent\x12\x10\n\x08\x61\x62_quota\x18\x01 \x01(\x04\x12\x0e\n\x06\x62us_id\x18\x02 \x01(\r\x12\x0e\n\x06\x63lient\x18\x03 \x01(\x05\x12\x10\n\x08ib_quota\x18\x04 \x01(\x04\"G\n\x18SignalDeliverFtraceEvent\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\x10\n\x08sa_flags\x18\x02 \x01(\x04\x12\x0b\n\x03sig\x18\x03 \x01(\x05\"p\n\x19SignalGenerateFtraceEvent\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\x0c\n\x04\x63omm\x18\x02 \x01(\t\x12\r\n\x05group\x18\x03 \x01(\x05\x12\x0b\n\x03pid\x18\x04 \x01(\x05\x12\x0e\n\x06result\x18\x05 \x01(\x05\x12\x0b\n\x03sig\x18\x06 \x01(\x05\"J\n\x13KfreeSkbFtraceEvent\x12\x10\n\x08location\x18\x01 \x01(\x04\x12\x10\n\x08protocol\x18\x02 \x01(\r\x12\x0f\n\x07skbaddr\x18\x03 \x01(\x04\"\xaf\x01\n\x1bInetSockSetStateFtraceEvent\x12\r\n\x05\x64\x61\x64\x64r\x18\x01 \x01(\r\x12\r\n\x05\x64port\x18\x02 \x01(\r\x12\x0e\n\x06\x66\x61mily\x18\x03 \x01(\r\x12\x10\n\x08newstate\x18\x04 \x01(\x05\x12\x10\n\x08oldstate\x18\x05 \x01(\x05\x12\x10\n\x08protocol\x18\x06 \x01(\r\x12\r\n\x05saddr\x18\x07 \x01(\r\x12\x0e\n\x06skaddr\x18\x08 \x01(\x04\x12\r\n\x05sport\x18\t \x01(\r\"4\n\x11SyncPtFtraceEvent\x12\x10\n\x08timeline\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"6\n\x17SyncTimelineFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"B\n\x13SyncWaitFtraceEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \x01(\x05\x12\r\n\x05\x62\x65gin\x18\x03 \x01(\r\"X\n\x1bRssStatThrottledFtraceEvent\x12\x0c\n\x04\x63urr\x18\x01 \x01(\r\x12\x0e\n\x06member\x18\x02 \x01(\x05\x12\r\n\x05mm_id\x18\x03 \x01(\r\x12\x0c\n\x04size\x18\x04 \x01(\x03\"0\n\x1fSuspendResumeMinimalFtraceEvent\x12\r\n\x05start\x18\x01 \x01(\r\"I\n\x0fZeroFtraceEvent\x12\x0c\n\x04\x66lag\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0b\n\x03pid\x18\x03 \x01(\x05\x12\r\n\x05value\x18\x04 \x01(\x03\"_\n\x16TaskNewtaskFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x0c\n\x04\x63omm\x18\x02 \x01(\t\x12\x13\n\x0b\x63lone_flags\x18\x03 \x01(\x04\x12\x15\n\room_score_adj\x18\x04 \x01(\x05\"]\n\x15TaskRenameFtraceEvent\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x0f\n\x07oldcomm\x18\x02 \x01(\t\x12\x0f\n\x07newcomm\x18\x03 \x01(\t\x12\x15\n\room_score_adj\x18\x04 \x01(\x05\"\x89\x01\n\x1bTcpRetransmitSkbFtraceEvent\x12\r\n\x05\x64\x61\x64\x64r\x18\x01 \x01(\r\x12\r\n\x05\x64port\x18\x02 \x01(\r\x12\r\n\x05saddr\x18\x03 \x01(\r\x12\x0e\n\x06skaddr\x18\x04 \x01(\x04\x12\x0f\n\x07skbaddr\x18\x05 \x01(\x04\x12\r\n\x05sport\x18\x06 \x01(\r\x12\r\n\x05state\x18\x07 \x01(\x05\"b\n\x1dThermalTemperatureFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04temp\x18\x02 \x01(\x05\x12\x11\n\ttemp_prev\x18\x03 \x01(\x05\x12\x14\n\x0cthermal_zone\x18\x04 \x01(\t\"5\n\x15\x43\x64\x65vUpdateFtraceEvent\x12\x0e\n\x06target\x18\x01 \x01(\x04\x12\x0c\n\x04type\x18\x02 \x01(\t\"\xe4\x01\n ThermalExynosAcpmBulkFtraceEvent\x12\r\n\x05tz_id\x18\x01 \x01(\r\x12\x14\n\x0c\x63urrent_temp\x18\x02 \x01(\r\x12\x11\n\tctrl_temp\x18\x03 \x01(\r\x12\x12\n\ncdev_state\x18\x04 \x01(\r\x12\x10\n\x08pid_et_p\x18\x05 \x01(\x05\x12\x17\n\x0fpid_power_range\x18\x06 \x01(\x05\x12\r\n\x05pid_p\x18\x07 \x01(\x05\x12\r\n\x05pid_i\x18\x08 \x01(\x05\x12\x0b\n\x03k_p\x18\t \x01(\x05\x12\x0b\n\x03k_i\x18\n \x01(\x05\x12\x11\n\ttimestamp\x18\x0b \x01(\x04\"\xa2\x01\n(ThermalExynosAcpmHighOverheadFtraceEvent\x12\r\n\x05tz_id\x18\x01 \x01(\x05\x12\x14\n\x0c\x63urrent_temp\x18\x02 \x01(\r\x12\x11\n\tctrl_temp\x18\x03 \x01(\r\x12\x12\n\ncdev_state\x18\x04 \x01(\r\x12\x10\n\x08pid_et_p\x18\x05 \x01(\x05\x12\x0b\n\x03k_p\x18\x06 \x01(\x05\x12\x0b\n\x03k_i\x18\x07 \x01(\x05\"p\n\x17HrtimerStartFtraceEvent\x12\x0f\n\x07hrtimer\x18\x01 \x01(\x04\x12\x10\n\x08\x66unction\x18\x02 \x01(\x04\x12\x0f\n\x07\x65xpires\x18\x03 \x01(\x03\x12\x13\n\x0bsoftexpires\x18\x04 \x01(\x03\x12\x0c\n\x04mode\x18\x05 \x01(\r\"+\n\x18HrtimerCancelFtraceEvent\x12\x0f\n\x07hrtimer\x18\x01 \x01(\x04\"O\n\x1dHrtimerExpireEntryFtraceEvent\x12\x0f\n\x07hrtimer\x18\x01 \x01(\x04\x12\x0b\n\x03now\x18\x02 \x01(\x03\x12\x10\n\x08\x66unction\x18\x03 \x01(\x04\"/\n\x1cHrtimerExpireExitFtraceEvent\x12\x0f\n\x07hrtimer\x18\x01 \x01(\x04\"\x90\x01\n\x15TimerStartFtraceEvent\x12\r\n\x05timer\x18\x01 \x01(\x04\x12\x10\n\x08\x66unction\x18\x02 \x01(\x04\x12\x0f\n\x07\x65xpires\x18\x03 \x01(\x04\x12\x0b\n\x03now\x18\x04 \x01(\x04\x12\x12\n\ndeferrable\x18\x05 \x01(\r\x12\r\n\x05\x66lags\x18\x06 \x01(\r\x12\x15\n\rbucket_expiry\x18\x07 \x01(\x04\"\'\n\x16TimerCancelFtraceEvent\x12\r\n\x05timer\x18\x01 \x01(\x04\"\\\n\x1bTimerExpireEntryFtraceEvent\x12\r\n\x05timer\x18\x01 \x01(\x04\x12\x0b\n\x03now\x18\x02 \x01(\x04\x12\x10\n\x08\x66unction\x18\x03 \x01(\x04\x12\x0f\n\x07\x62\x61seclk\x18\x04 \x01(\x04\"+\n\x1aTimerExpireExitFtraceEvent\x12\r\n\x05timer\x18\x01 \x01(\x04\"F\n\x14TrustySmcFtraceEvent\x12\n\n\x02r0\x18\x01 \x01(\x04\x12\n\n\x02r1\x18\x02 \x01(\x04\x12\n\n\x02r2\x18\x03 \x01(\x04\x12\n\n\x02r3\x18\x04 \x01(\x04\"\'\n\x18TrustySmcDoneFtraceEvent\x12\x0b\n\x03ret\x18\x01 \x01(\x04\"L\n\x1aTrustyStdCall32FtraceEvent\x12\n\n\x02r0\x18\x01 \x01(\x04\x12\n\n\x02r1\x18\x02 \x01(\x04\x12\n\n\x02r2\x18\x03 \x01(\x04\x12\n\n\x02r3\x18\x04 \x01(\x04\"-\n\x1eTrustyStdCall32DoneFtraceEvent\x12\x0b\n\x03ret\x18\x01 \x01(\x03\"H\n\x1cTrustyShareMemoryFtraceEvent\x12\x0b\n\x03len\x18\x01 \x01(\x04\x12\x0c\n\x04lend\x18\x02 \x01(\r\x12\r\n\x05nents\x18\x03 \x01(\r\"i\n TrustyShareMemoryDoneFtraceEvent\x12\x0e\n\x06handle\x18\x01 \x01(\x04\x12\x0b\n\x03len\x18\x02 \x01(\x04\x12\x0c\n\x04lend\x18\x03 \x01(\r\x12\r\n\x05nents\x18\x04 \x01(\r\x12\x0b\n\x03ret\x18\x05 \x01(\x05\",\n\x1eTrustyReclaimMemoryFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\x04\"=\n\"TrustyReclaimMemoryDoneFtraceEvent\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x0b\n\x03ret\x18\x02 \x01(\x05\"#\n\x14TrustyIrqFtraceEvent\x12\x0b\n\x03irq\x18\x01 \x01(\x05\"S\n\x1fTrustyIpcHandleEventFtraceEvent\x12\x0c\n\x04\x63han\x18\x01 \x01(\r\x12\x10\n\x08\x65vent_id\x18\x02 \x01(\r\x12\x10\n\x08srv_name\x18\x03 \x01(\t\"H\n\x1bTrustyIpcConnectFtraceEvent\x12\x0c\n\x04\x63han\x18\x01 \x01(\r\x12\x0c\n\x04port\x18\x02 \x01(\t\x12\r\n\x05state\x18\x03 \x01(\x05\"J\n\x1eTrustyIpcConnectEndFtraceEvent\x12\x0c\n\x04\x63han\x18\x01 \x01(\r\x12\x0b\n\x03\x65rr\x18\x02 \x01(\x05\x12\r\n\x05state\x18\x03 \x01(\x05\"\x82\x01\n\x19TrustyIpcWriteFtraceEvent\x12\x0e\n\x06\x62uf_id\x18\x01 \x01(\x04\x12\x0c\n\x04\x63han\x18\x02 \x01(\r\x12\x10\n\x08kind_shm\x18\x03 \x01(\x05\x12\x12\n\nlen_or_err\x18\x04 \x01(\x05\x12\x0f\n\x07shm_cnt\x18\x05 \x01(\x04\x12\x10\n\x08srv_name\x18\x06 \x01(\t\"M\n\x18TrustyIpcPollFtraceEvent\x12\x0c\n\x04\x63han\x18\x01 \x01(\r\x12\x11\n\tpoll_mask\x18\x02 \x01(\r\x12\x10\n\x08srv_name\x18\x03 \x01(\t\":\n\x18TrustyIpcReadFtraceEvent\x12\x0c\n\x04\x63han\x18\x01 \x01(\r\x12\x10\n\x08srv_name\x18\x02 \x01(\t\"r\n\x1bTrustyIpcReadEndFtraceEvent\x12\x0e\n\x06\x62uf_id\x18\x01 \x01(\x04\x12\x0c\n\x04\x63han\x18\x02 \x01(\r\x12\x12\n\nlen_or_err\x18\x03 \x01(\x05\x12\x0f\n\x07shm_cnt\x18\x04 \x01(\x04\x12\x10\n\x08srv_name\x18\x05 \x01(\t\"H\n\x16TrustyIpcRxFtraceEvent\x12\x0e\n\x06\x62uf_id\x18\x01 \x01(\x04\x12\x0c\n\x04\x63han\x18\x02 \x01(\r\x12\x10\n\x08srv_name\x18\x03 \x01(\t\"G\n\x1bTrustyEnqueueNopFtraceEvent\x12\x0c\n\x04\x61rg1\x18\x01 \x01(\r\x12\x0c\n\x04\x61rg2\x18\x02 \x01(\r\x12\x0c\n\x04\x61rg3\x18\x03 \x01(\r\"\xba\x01\n\x18UfshcdCommandFtraceEvent\x12\x10\n\x08\x64\x65v_name\x18\x01 \x01(\t\x12\x10\n\x08\x64oorbell\x18\x02 \x01(\r\x12\x0c\n\x04intr\x18\x03 \x01(\r\x12\x0b\n\x03lba\x18\x04 \x01(\x04\x12\x0e\n\x06opcode\x18\x05 \x01(\r\x12\x0b\n\x03str\x18\x06 \x01(\t\x12\x0b\n\x03tag\x18\x07 \x01(\r\x12\x14\n\x0ctransfer_len\x18\x08 \x01(\x05\x12\x10\n\x08group_id\x18\t \x01(\r\x12\r\n\x05str_t\x18\n \x01(\r\"=\n\x1aUfshcdClkGatingFtraceEvent\x12\x10\n\x08\x64\x65v_name\x18\x01 \x01(\t\x12\r\n\x05state\x18\x02 \x01(\x05\"\x9b\x03\n\x13V4l2QbufFtraceEvent\x12\x11\n\tbytesused\x18\x01 \x01(\r\x12\r\n\x05\x66ield\x18\x02 \x01(\r\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\r\n\x05index\x18\x04 \x01(\r\x12\r\n\x05minor\x18\x05 \x01(\x05\x12\x10\n\x08sequence\x18\x06 \x01(\r\x12\x16\n\x0etimecode_flags\x18\x07 \x01(\r\x12\x17\n\x0ftimecode_frames\x18\x08 \x01(\r\x12\x16\n\x0etimecode_hours\x18\t \x01(\r\x12\x18\n\x10timecode_minutes\x18\n \x01(\r\x12\x18\n\x10timecode_seconds\x18\x0b \x01(\r\x12\x15\n\rtimecode_type\x18\x0c \x01(\r\x12\x1a\n\x12timecode_userbits0\x18\r \x01(\r\x12\x1a\n\x12timecode_userbits1\x18\x0e \x01(\r\x12\x1a\n\x12timecode_userbits2\x18\x0f \x01(\r\x12\x1a\n\x12timecode_userbits3\x18\x10 \x01(\r\x12\x11\n\ttimestamp\x18\x11 \x01(\x03\x12\x0c\n\x04type\x18\x12 \x01(\r\"\x9c\x03\n\x14V4l2DqbufFtraceEvent\x12\x11\n\tbytesused\x18\x01 \x01(\r\x12\r\n\x05\x66ield\x18\x02 \x01(\r\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\r\n\x05index\x18\x04 \x01(\r\x12\r\n\x05minor\x18\x05 \x01(\x05\x12\x10\n\x08sequence\x18\x06 \x01(\r\x12\x16\n\x0etimecode_flags\x18\x07 \x01(\r\x12\x17\n\x0ftimecode_frames\x18\x08 \x01(\r\x12\x16\n\x0etimecode_hours\x18\t \x01(\r\x12\x18\n\x10timecode_minutes\x18\n \x01(\r\x12\x18\n\x10timecode_seconds\x18\x0b \x01(\r\x12\x15\n\rtimecode_type\x18\x0c \x01(\r\x12\x1a\n\x12timecode_userbits0\x18\r \x01(\r\x12\x1a\n\x12timecode_userbits1\x18\x0e \x01(\r\x12\x1a\n\x12timecode_userbits2\x18\x0f \x01(\r\x12\x1a\n\x12timecode_userbits3\x18\x10 \x01(\r\x12\x11\n\ttimestamp\x18\x11 \x01(\x03\x12\x0c\n\x04type\x18\x12 \x01(\r\"\xf2\x02\n\x1aVb2V4l2BufQueueFtraceEvent\x12\r\n\x05\x66ield\x18\x01 \x01(\r\x12\r\n\x05\x66lags\x18\x02 \x01(\r\x12\r\n\x05minor\x18\x03 \x01(\x05\x12\x10\n\x08sequence\x18\x04 \x01(\r\x12\x16\n\x0etimecode_flags\x18\x05 \x01(\r\x12\x17\n\x0ftimecode_frames\x18\x06 \x01(\r\x12\x16\n\x0etimecode_hours\x18\x07 \x01(\r\x12\x18\n\x10timecode_minutes\x18\x08 \x01(\r\x12\x18\n\x10timecode_seconds\x18\t \x01(\r\x12\x15\n\rtimecode_type\x18\n \x01(\r\x12\x1a\n\x12timecode_userbits0\x18\x0b \x01(\r\x12\x1a\n\x12timecode_userbits1\x18\x0c \x01(\r\x12\x1a\n\x12timecode_userbits2\x18\r \x01(\r\x12\x1a\n\x12timecode_userbits3\x18\x0e \x01(\r\x12\x11\n\ttimestamp\x18\x0f \x01(\x03\"\xf1\x02\n\x19Vb2V4l2BufDoneFtraceEvent\x12\r\n\x05\x66ield\x18\x01 \x01(\r\x12\r\n\x05\x66lags\x18\x02 \x01(\r\x12\r\n\x05minor\x18\x03 \x01(\x05\x12\x10\n\x08sequence\x18\x04 \x01(\r\x12\x16\n\x0etimecode_flags\x18\x05 \x01(\r\x12\x17\n\x0ftimecode_frames\x18\x06 \x01(\r\x12\x16\n\x0etimecode_hours\x18\x07 \x01(\r\x12\x18\n\x10timecode_minutes\x18\x08 \x01(\r\x12\x18\n\x10timecode_seconds\x18\t \x01(\r\x12\x15\n\rtimecode_type\x18\n \x01(\r\x12\x1a\n\x12timecode_userbits0\x18\x0b \x01(\r\x12\x1a\n\x12timecode_userbits1\x18\x0c \x01(\r\x12\x1a\n\x12timecode_userbits2\x18\r \x01(\r\x12\x1a\n\x12timecode_userbits3\x18\x0e \x01(\r\x12\x11\n\ttimestamp\x18\x0f \x01(\x03\"\xee\x02\n\x16Vb2V4l2QbufFtraceEvent\x12\r\n\x05\x66ield\x18\x01 \x01(\r\x12\r\n\x05\x66lags\x18\x02 \x01(\r\x12\r\n\x05minor\x18\x03 \x01(\x05\x12\x10\n\x08sequence\x18\x04 \x01(\r\x12\x16\n\x0etimecode_flags\x18\x05 \x01(\r\x12\x17\n\x0ftimecode_frames\x18\x06 \x01(\r\x12\x16\n\x0etimecode_hours\x18\x07 \x01(\r\x12\x18\n\x10timecode_minutes\x18\x08 \x01(\r\x12\x18\n\x10timecode_seconds\x18\t \x01(\r\x12\x15\n\rtimecode_type\x18\n \x01(\r\x12\x1a\n\x12timecode_userbits0\x18\x0b \x01(\r\x12\x1a\n\x12timecode_userbits1\x18\x0c \x01(\r\x12\x1a\n\x12timecode_userbits2\x18\r \x01(\r\x12\x1a\n\x12timecode_userbits3\x18\x0e \x01(\r\x12\x11\n\ttimestamp\x18\x0f \x01(\x03\"\xef\x02\n\x17Vb2V4l2DqbufFtraceEvent\x12\r\n\x05\x66ield\x18\x01 \x01(\r\x12\r\n\x05\x66lags\x18\x02 \x01(\r\x12\r\n\x05minor\x18\x03 \x01(\x05\x12\x10\n\x08sequence\x18\x04 \x01(\r\x12\x16\n\x0etimecode_flags\x18\x05 \x01(\r\x12\x17\n\x0ftimecode_frames\x18\x06 \x01(\r\x12\x16\n\x0etimecode_hours\x18\x07 \x01(\r\x12\x18\n\x10timecode_minutes\x18\x08 \x01(\r\x12\x18\n\x10timecode_seconds\x18\t \x01(\r\x12\x15\n\rtimecode_type\x18\n \x01(\r\x12\x1a\n\x12timecode_userbits0\x18\x0b \x01(\r\x12\x1a\n\x12timecode_userbits1\x18\x0c \x01(\r\x12\x1a\n\x12timecode_userbits2\x18\r \x01(\r\x12\x1a\n\x12timecode_userbits3\x18\x0e \x01(\r\x12\x11\n\ttimestamp\x18\x0f \x01(\x03\"\xa5\x01\n\x1cVirtioGpuCmdQueueFtraceEvent\x12\x0e\n\x06\x63tx_id\x18\x01 \x01(\r\x12\x0b\n\x03\x64\x65v\x18\x02 \x01(\x05\x12\x10\n\x08\x66\x65nce_id\x18\x03 \x01(\x04\x12\r\n\x05\x66lags\x18\x04 \x01(\r\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x10\n\x08num_free\x18\x06 \x01(\r\x12\r\n\x05seqno\x18\x07 \x01(\r\x12\x0c\n\x04type\x18\x08 \x01(\r\x12\n\n\x02vq\x18\t \x01(\r\"\xa8\x01\n\x1fVirtioGpuCmdResponseFtraceEvent\x12\x0e\n\x06\x63tx_id\x18\x01 \x01(\r\x12\x0b\n\x03\x64\x65v\x18\x02 \x01(\x05\x12\x10\n\x08\x66\x65nce_id\x18\x03 \x01(\x04\x12\r\n\x05\x66lags\x18\x04 \x01(\r\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x10\n\x08num_free\x18\x06 \x01(\r\x12\r\n\x05seqno\x18\x07 \x01(\r\x12\x0c\n\x04type\x18\x08 \x01(\r\x12\n\n\x02vq\x18\t \x01(\r\"<\n\x19VirtioVideoCmdFtraceEvent\x12\x11\n\tstream_id\x18\x01 \x01(\r\x12\x0c\n\x04type\x18\x02 \x01(\r\"@\n\x1dVirtioVideoCmdDoneFtraceEvent\x12\x11\n\tstream_id\x18\x01 \x01(\r\x12\x0c\n\x04type\x18\x02 \x01(\r\"\xc4\x01\n#VirtioVideoResourceQueueFtraceEvent\x12\x12\n\ndata_size0\x18\x01 \x01(\r\x12\x12\n\ndata_size1\x18\x02 \x01(\r\x12\x12\n\ndata_size2\x18\x03 \x01(\r\x12\x12\n\ndata_size3\x18\x04 \x01(\r\x12\x12\n\nqueue_type\x18\x05 \x01(\r\x12\x13\n\x0bresource_id\x18\x06 \x01(\x05\x12\x11\n\tstream_id\x18\x07 \x01(\x05\x12\x11\n\ttimestamp\x18\x08 \x01(\x04\"\xc8\x01\n\'VirtioVideoResourceQueueDoneFtraceEvent\x12\x12\n\ndata_size0\x18\x01 \x01(\r\x12\x12\n\ndata_size1\x18\x02 \x01(\r\x12\x12\n\ndata_size2\x18\x03 \x01(\r\x12\x12\n\ndata_size3\x18\x04 \x01(\r\x12\x12\n\nqueue_type\x18\x05 \x01(\r\x12\x13\n\x0bresource_id\x18\x06 \x01(\x05\x12\x11\n\tstream_id\x18\x07 \x01(\x05\x12\x11\n\ttimestamp\x18\x08 \x01(\x04\"`\n%MmVmscanDirectReclaimBeginFtraceEvent\x12\r\n\x05order\x18\x01 \x01(\x05\x12\x15\n\rmay_writepage\x18\x02 \x01(\x05\x12\x11\n\tgfp_flags\x18\x03 \x01(\r\";\n#MmVmscanDirectReclaimEndFtraceEvent\x12\x14\n\x0cnr_reclaimed\x18\x01 \x01(\x04\"H\n\x1dMmVmscanKswapdWakeFtraceEvent\x12\x0b\n\x03nid\x18\x01 \x01(\x05\x12\r\n\x05order\x18\x02 \x01(\x05\x12\x0b\n\x03zid\x18\x03 \x01(\x05\"-\n\x1eMmVmscanKswapdSleepFtraceEvent\x12\x0b\n\x03nid\x18\x01 \x01(\x05\"\xe9\x01\n\x1cMmShrinkSlabStartFtraceEvent\x12\x13\n\x0b\x63\x61\x63he_items\x18\x01 \x01(\x04\x12\r\n\x05\x64\x65lta\x18\x02 \x01(\x04\x12\x11\n\tgfp_flags\x18\x03 \x01(\r\x12\x0f\n\x07lru_pgs\x18\x04 \x01(\x04\x12\x1c\n\x14nr_objects_to_shrink\x18\x05 \x01(\x03\x12\x13\n\x0bpgs_scanned\x18\x06 \x01(\x04\x12\x0b\n\x03shr\x18\x07 \x01(\x04\x12\x0e\n\x06shrink\x18\x08 \x01(\x04\x12\x12\n\ntotal_scan\x18\t \x01(\x04\x12\x0b\n\x03nid\x18\n \x01(\x05\x12\x10\n\x08priority\x18\x0b \x01(\x05\"\x91\x01\n\x1aMmShrinkSlabEndFtraceEvent\x12\x10\n\x08new_scan\x18\x01 \x01(\x03\x12\x0e\n\x06retval\x18\x02 \x01(\x05\x12\x0b\n\x03shr\x18\x03 \x01(\x04\x12\x0e\n\x06shrink\x18\x04 \x01(\x04\x12\x12\n\ntotal_scan\x18\x05 \x01(\x03\x12\x13\n\x0bunused_scan\x18\x06 \x01(\x03\x12\x0b\n\x03nid\x18\x07 \x01(\x05\"B\n WorkqueueActivateWorkFtraceEvent\x12\x0c\n\x04work\x18\x01 \x01(\x04\x12\x10\n\x08\x66unction\x18\x02 \x01(\x04\"@\n\x1eWorkqueueExecuteEndFtraceEvent\x12\x0c\n\x04work\x18\x01 \x01(\x04\x12\x10\n\x08\x66unction\x18\x02 \x01(\x04\"B\n WorkqueueExecuteStartFtraceEvent\x12\x0c\n\x04work\x18\x01 \x01(\x04\x12\x10\n\x08\x66unction\x18\x02 \x01(\x04\"p\n\x1dWorkqueueQueueWorkFtraceEvent\x12\x0c\n\x04work\x18\x01 \x01(\x04\x12\x10\n\x08\x66unction\x18\x02 \x01(\x04\x12\x0f\n\x07req_cpu\x18\x04 \x01(\x05\x12\x0b\n\x03\x63pu\x18\x05 \x01(\x05\x12\x11\n\tworkqueue\x18\x06 \x01(\t\"\xaf\xe1\x02\n\x0b\x46traceEvent\x12\x11\n\ttimestamp\x18\x01 \x01(\x04\x12\x0b\n\x03pid\x18\x02 \x01(\r\x12\x14\n\x0c\x63ommon_flags\x18\x05 \x01(\r\x12\x32\n\x05print\x18\x03 \x01(\x0b\x32!.perfetto.protos.PrintFtraceEventH\x00\x12?\n\x0csched_switch\x18\x04 \x01(\x0b\x32\'.perfetto.protos.SchedSwitchFtraceEventH\x00\x12\x41\n\rcpu_frequency\x18\x0b \x01(\x0b\x32(.perfetto.protos.CpuFrequencyFtraceEventH\x00\x12N\n\x14\x63pu_frequency_limits\x18\x0c \x01(\x0b\x32..perfetto.protos.CpuFrequencyLimitsFtraceEventH\x00\x12\x37\n\x08\x63pu_idle\x18\r \x01(\x0b\x32#.perfetto.protos.CpuIdleFtraceEventH\x00\x12?\n\x0c\x63lock_enable\x18\x0e \x01(\x0b\x32\'.perfetto.protos.ClockEnableFtraceEventH\x00\x12\x41\n\rclock_disable\x18\x0f \x01(\x0b\x32(.perfetto.protos.ClockDisableFtraceEventH\x00\x12\x42\n\x0e\x63lock_set_rate\x18\x10 \x01(\x0b\x32(.perfetto.protos.ClockSetRateFtraceEventH\x00\x12?\n\x0csched_wakeup\x18\x11 \x01(\x0b\x32\'.perfetto.protos.SchedWakeupFtraceEventH\x00\x12N\n\x14sched_blocked_reason\x18\x12 \x01(\x0b\x32..perfetto.protos.SchedBlockedReasonFtraceEventH\x00\x12H\n\x11sched_cpu_hotplug\x18\x13 \x01(\x0b\x32+.perfetto.protos.SchedCpuHotplugFtraceEventH\x00\x12?\n\x0csched_waking\x18\x14 \x01(\x0b\x32\'.perfetto.protos.SchedWakingFtraceEventH\x00\x12\x39\n\tipi_entry\x18\x15 \x01(\x0b\x32$.perfetto.protos.IpiEntryFtraceEventH\x00\x12\x37\n\x08ipi_exit\x18\x16 \x01(\x0b\x32#.perfetto.protos.IpiExitFtraceEventH\x00\x12\x39\n\tipi_raise\x18\x17 \x01(\x0b\x32$.perfetto.protos.IpiRaiseFtraceEventH\x00\x12\x41\n\rsoftirq_entry\x18\x18 \x01(\x0b\x32(.perfetto.protos.SoftirqEntryFtraceEventH\x00\x12?\n\x0csoftirq_exit\x18\x19 \x01(\x0b\x32\'.perfetto.protos.SoftirqExitFtraceEventH\x00\x12\x41\n\rsoftirq_raise\x18\x1a \x01(\x0b\x32(.perfetto.protos.SoftirqRaiseFtraceEventH\x00\x12\x37\n\x08i2c_read\x18\x1b \x01(\x0b\x32#.perfetto.protos.I2cReadFtraceEventH\x00\x12\x39\n\ti2c_write\x18\x1c \x01(\x0b\x32$.perfetto.protos.I2cWriteFtraceEventH\x00\x12;\n\ni2c_result\x18\x1d \x01(\x0b\x32%.perfetto.protos.I2cResultFtraceEventH\x00\x12\x39\n\ti2c_reply\x18\x1e \x01(\x0b\x32$.perfetto.protos.I2cReplyFtraceEventH\x00\x12;\n\nsmbus_read\x18\x1f \x01(\x0b\x32%.perfetto.protos.SmbusReadFtraceEventH\x00\x12=\n\x0bsmbus_write\x18  \x01(\x0b\x32&.perfetto.protos.SmbusWriteFtraceEventH\x00\x12?\n\x0csmbus_result\x18! \x01(\x0b\x32\'.perfetto.protos.SmbusResultFtraceEventH\x00\x12=\n\x0bsmbus_reply\x18\" \x01(\x0b\x32&.perfetto.protos.SmbusReplyFtraceEventH\x00\x12\x43\n\x0elowmemory_kill\x18# \x01(\x0b\x32).perfetto.protos.LowmemoryKillFtraceEventH\x00\x12H\n\x11irq_handler_entry\x18$ \x01(\x0b\x32+.perfetto.protos.IrqHandlerEntryFtraceEventH\x00\x12\x46\n\x10irq_handler_exit\x18% \x01(\x0b\x32*.perfetto.protos.IrqHandlerExitFtraceEventH\x00\x12\x35\n\x07sync_pt\x18& \x01(\x0b\x32\".perfetto.protos.SyncPtFtraceEventH\x00\x12\x41\n\rsync_timeline\x18\' \x01(\x0b\x32(.perfetto.protos.SyncTimelineFtraceEventH\x00\x12\x39\n\tsync_wait\x18( \x01(\x0b\x32$.perfetto.protos.SyncWaitFtraceEventH\x00\x12K\n\x13\x65xt4_da_write_begin\x18) \x01(\x0b\x32,.perfetto.protos.Ext4DaWriteBeginFtraceEventH\x00\x12G\n\x11\x65xt4_da_write_end\x18* \x01(\x0b\x32*.perfetto.protos.Ext4DaWriteEndFtraceEventH\x00\x12M\n\x14\x65xt4_sync_file_enter\x18+ \x01(\x0b\x32-.perfetto.protos.Ext4SyncFileEnterFtraceEventH\x00\x12K\n\x13\x65xt4_sync_file_exit\x18, \x01(\x0b\x32,.perfetto.protos.Ext4SyncFileExitFtraceEventH\x00\x12\x42\n\x0e\x62lock_rq_issue\x18- \x01(\x0b\x32(.perfetto.protos.BlockRqIssueFtraceEventH\x00\x12`\n\x1emm_vmscan_direct_reclaim_begin\x18. \x01(\x0b\x32\x36.perfetto.protos.MmVmscanDirectReclaimBeginFtraceEventH\x00\x12\\\n\x1cmm_vmscan_direct_reclaim_end\x18/ \x01(\x0b\x32\x34.perfetto.protos.MmVmscanDirectReclaimEndFtraceEventH\x00\x12O\n\x15mm_vmscan_kswapd_wake\x18\x30 \x01(\x0b\x32..perfetto.protos.MmVmscanKswapdWakeFtraceEventH\x00\x12Q\n\x16mm_vmscan_kswapd_sleep\x18\x31 \x01(\x0b\x32/.perfetto.protos.MmVmscanKswapdSleepFtraceEventH\x00\x12K\n\x12\x62inder_transaction\x18\x32 \x01(\x0b\x32-.perfetto.protos.BinderTransactionFtraceEventH\x00\x12\\\n\x1b\x62inder_transaction_received\x18\x33 \x01(\x0b\x32\x35.perfetto.protos.BinderTransactionReceivedFtraceEventH\x00\x12L\n\x13\x62inder_set_priority\x18\x34 \x01(\x0b\x32-.perfetto.protos.BinderSetPriorityFtraceEventH\x00\x12=\n\x0b\x62inder_lock\x18\x35 \x01(\x0b\x32&.perfetto.protos.BinderLockFtraceEventH\x00\x12\x41\n\rbinder_locked\x18\x36 \x01(\x0b\x32(.perfetto.protos.BinderLockedFtraceEventH\x00\x12\x41\n\rbinder_unlock\x18\x37 \x01(\x0b\x32(.perfetto.protos.BinderUnlockFtraceEventH\x00\x12T\n\x17workqueue_activate_work\x18\x38 \x01(\x0b\x32\x31.perfetto.protos.WorkqueueActivateWorkFtraceEventH\x00\x12P\n\x15workqueue_execute_end\x18\x39 \x01(\x0b\x32/.perfetto.protos.WorkqueueExecuteEndFtraceEventH\x00\x12T\n\x17workqueue_execute_start\x18: \x01(\x0b\x32\x31.perfetto.protos.WorkqueueExecuteStartFtraceEventH\x00\x12N\n\x14workqueue_queue_work\x18; \x01(\x0b\x32..perfetto.protos.WorkqueueQueueWorkFtraceEventH\x00\x12I\n\x11regulator_disable\x18< \x01(\x0b\x32,.perfetto.protos.RegulatorDisableFtraceEventH\x00\x12Z\n\x1aregulator_disable_complete\x18= \x01(\x0b\x32\x34.perfetto.protos.RegulatorDisableCompleteFtraceEventH\x00\x12G\n\x10regulator_enable\x18> \x01(\x0b\x32+.perfetto.protos.RegulatorEnableFtraceEventH\x00\x12X\n\x19regulator_enable_complete\x18? \x01(\x0b\x32\x33.perfetto.protos.RegulatorEnableCompleteFtraceEventH\x00\x12R\n\x16regulator_enable_delay\x18@ \x01(\x0b\x32\x30.perfetto.protos.RegulatorEnableDelayFtraceEventH\x00\x12P\n\x15regulator_set_voltage\x18\x41 \x01(\x0b\x32/.perfetto.protos.RegulatorSetVoltageFtraceEventH\x00\x12\x61\n\x1eregulator_set_voltage_complete\x18\x42 \x01(\x0b\x32\x37.perfetto.protos.RegulatorSetVoltageCompleteFtraceEventH\x00\x12J\n\x12\x63group_attach_task\x18\x43 \x01(\x0b\x32,.perfetto.protos.CgroupAttachTaskFtraceEventH\x00\x12?\n\x0c\x63group_mkdir\x18\x44 \x01(\x0b\x32\'.perfetto.protos.CgroupMkdirFtraceEventH\x00\x12\x43\n\x0e\x63group_remount\x18\x45 \x01(\x0b\x32).perfetto.protos.CgroupRemountFtraceEventH\x00\x12?\n\x0c\x63group_rmdir\x18\x46 \x01(\x0b\x32\'.perfetto.protos.CgroupRmdirFtraceEventH\x00\x12P\n\x15\x63group_transfer_tasks\x18G \x01(\x0b\x32/.perfetto.protos.CgroupTransferTasksFtraceEventH\x00\x12L\n\x13\x63group_destroy_root\x18H \x01(\x0b\x32-.perfetto.protos.CgroupDestroyRootFtraceEventH\x00\x12\x43\n\x0e\x63group_release\x18I \x01(\x0b\x32).perfetto.protos.CgroupReleaseFtraceEventH\x00\x12\x41\n\rcgroup_rename\x18J \x01(\x0b\x32(.perfetto.protos.CgroupRenameFtraceEventH\x00\x12H\n\x11\x63group_setup_root\x18K \x01(\x0b\x32+.perfetto.protos.CgroupSetupRootFtraceEventH\x00\x12\x44\n\x0fmdp_cmd_kickoff\x18L \x01(\x0b\x32).perfetto.protos.MdpCmdKickoffFtraceEventH\x00\x12;\n\nmdp_commit\x18M \x01(\x0b\x32%.perfetto.protos.MdpCommitFtraceEventH\x00\x12\x43\n\x0fmdp_perf_set_ot\x18N \x01(\x0b\x32(.perfetto.protos.MdpPerfSetOtFtraceEventH\x00\x12\x44\n\x0fmdp_sspp_change\x18O \x01(\x0b\x32).perfetto.protos.MdpSsppChangeFtraceEventH\x00\x12J\n\x12tracing_mark_write\x18P \x01(\x0b\x32,.perfetto.protos.TracingMarkWriteFtraceEventH\x00\x12O\n\x15mdp_cmd_pingpong_done\x18Q \x01(\x0b\x32..perfetto.protos.MdpCmdPingpongDoneFtraceEventH\x00\x12\x42\n\x0emdp_compare_bw\x18R \x01(\x0b\x32(.perfetto.protos.MdpCompareBwFtraceEventH\x00\x12R\n\x17mdp_perf_set_panic_luts\x18S \x01(\x0b\x32/.perfetto.protos.MdpPerfSetPanicLutsFtraceEventH\x00\x12>\n\x0cmdp_sspp_set\x18T \x01(\x0b\x32&.perfetto.protos.MdpSsppSetFtraceEventH\x00\x12M\n\x14mdp_cmd_readptr_done\x18U \x01(\x0b\x32-.perfetto.protos.MdpCmdReadptrDoneFtraceEventH\x00\x12>\n\x0cmdp_misr_crc\x18V \x01(\x0b\x32&.perfetto.protos.MdpMisrCrcFtraceEventH\x00\x12N\n\x15mdp_perf_set_qos_luts\x18W \x01(\x0b\x32-.perfetto.protos.MdpPerfSetQosLutsFtraceEventH\x00\x12H\n\x11mdp_trace_counter\x18X \x01(\x0b\x32+.perfetto.protos.MdpTraceCounterFtraceEventH\x00\x12I\n\x12mdp_cmd_release_bw\x18Y \x01(\x0b\x32+.perfetto.protos.MdpCmdReleaseBwFtraceEventH\x00\x12\x46\n\x10mdp_mixer_update\x18Z \x01(\x0b\x32*.perfetto.protos.MdpMixerUpdateFtraceEventH\x00\x12P\n\x16mdp_perf_set_wm_levels\x18[ \x01(\x0b\x32..perfetto.protos.MdpPerfSetWmLevelsFtraceEventH\x00\x12S\n\x17mdp_video_underrun_done\x18\\ \x01(\x0b\x32\x30.perfetto.protos.MdpVideoUnderrunDoneFtraceEventH\x00\x12O\n\x15mdp_cmd_wait_pingpong\x18] \x01(\x0b\x32..perfetto.protos.MdpCmdWaitPingpongFtraceEventH\x00\x12O\n\x15mdp_perf_prefill_calc\x18^ \x01(\x0b\x32..perfetto.protos.MdpPerfPrefillCalcFtraceEventH\x00\x12K\n\x13mdp_perf_update_bus\x18_ \x01(\x0b\x32,.perfetto.protos.MdpPerfUpdateBusFtraceEventH\x00\x12T\n\x18rotator_bw_ao_as_context\x18` \x01(\x0b\x32\x30.perfetto.protos.RotatorBwAoAsContextFtraceEventH\x00\x12[\n\x1cmm_filemap_add_to_page_cache\x18\x61 \x01(\x0b\x32\x33.perfetto.protos.MmFilemapAddToPageCacheFtraceEventH\x00\x12\x65\n!mm_filemap_delete_from_page_cache\x18\x62 \x01(\x0b\x32\x38.perfetto.protos.MmFilemapDeleteFromPageCacheFtraceEventH\x00\x12L\n\x13mm_compaction_begin\x18\x63 \x01(\x0b\x32-.perfetto.protos.MmCompactionBeginFtraceEventH\x00\x12\x61\n\x1emm_compaction_defer_compaction\x18\x64 \x01(\x0b\x32\x37.perfetto.protos.MmCompactionDeferCompactionFtraceEventH\x00\x12R\n\x16mm_compaction_deferred\x18\x65 \x01(\x0b\x32\x30.perfetto.protos.MmCompactionDeferredFtraceEventH\x00\x12W\n\x19mm_compaction_defer_reset\x18\x66 \x01(\x0b\x32\x32.perfetto.protos.MmCompactionDeferResetFtraceEventH\x00\x12H\n\x11mm_compaction_end\x18g \x01(\x0b\x32+.perfetto.protos.MmCompactionEndFtraceEventH\x00\x12R\n\x16mm_compaction_finished\x18h \x01(\x0b\x32\x30.perfetto.protos.MmCompactionFinishedFtraceEventH\x00\x12\x63\n\x1fmm_compaction_isolate_freepages\x18i \x01(\x0b\x32\x38.perfetto.protos.MmCompactionIsolateFreepagesFtraceEventH\x00\x12i\n\"mm_compaction_isolate_migratepages\x18j \x01(\x0b\x32;.perfetto.protos.MmCompactionIsolateMigratepagesFtraceEventH\x00\x12_\n\x1dmm_compaction_kcompactd_sleep\x18k \x01(\x0b\x32\x36.perfetto.protos.MmCompactionKcompactdSleepFtraceEventH\x00\x12]\n\x1cmm_compaction_kcompactd_wake\x18l \x01(\x0b\x32\x35.perfetto.protos.MmCompactionKcompactdWakeFtraceEventH\x00\x12Z\n\x1amm_compaction_migratepages\x18m \x01(\x0b\x32\x34.perfetto.protos.MmCompactionMigratepagesFtraceEventH\x00\x12R\n\x16mm_compaction_suitable\x18n \x01(\x0b\x32\x30.perfetto.protos.MmCompactionSuitableFtraceEventH\x00\x12g\n\"mm_compaction_try_to_compact_pages\x18o \x01(\x0b\x32\x39.perfetto.protos.MmCompactionTryToCompactPagesFtraceEventH\x00\x12\x61\n\x1emm_compaction_wakeup_kcompactd\x18p \x01(\x0b\x32\x37.perfetto.protos.MmCompactionWakeupKcompactdFtraceEventH\x00\x12\x43\n\x0esuspend_resume\x18q \x01(\x0b\x32).perfetto.protos.SuspendResumeFtraceEventH\x00\x12\x46\n\x10sched_wakeup_new\x18r \x01(\x0b\x32*.perfetto.protos.SchedWakeupNewFtraceEventH\x00\x12L\n\x13\x62lock_bio_backmerge\x18s \x01(\x0b\x32-.perfetto.protos.BlockBioBackmergeFtraceEventH\x00\x12\x46\n\x10\x62lock_bio_bounce\x18t \x01(\x0b\x32*.perfetto.protos.BlockBioBounceFtraceEventH\x00\x12J\n\x12\x62lock_bio_complete\x18u \x01(\x0b\x32,.perfetto.protos.BlockBioCompleteFtraceEventH\x00\x12N\n\x14\x62lock_bio_frontmerge\x18v \x01(\x0b\x32..perfetto.protos.BlockBioFrontmergeFtraceEventH\x00\x12\x44\n\x0f\x62lock_bio_queue\x18w \x01(\x0b\x32).perfetto.protos.BlockBioQueueFtraceEventH\x00\x12\x44\n\x0f\x62lock_bio_remap\x18x \x01(\x0b\x32).perfetto.protos.BlockBioRemapFtraceEventH\x00\x12J\n\x12\x62lock_dirty_buffer\x18y \x01(\x0b\x32,.perfetto.protos.BlockDirtyBufferFtraceEventH\x00\x12=\n\x0b\x62lock_getrq\x18z \x01(\x0b\x32&.perfetto.protos.BlockGetrqFtraceEventH\x00\x12;\n\nblock_plug\x18{ \x01(\x0b\x32%.perfetto.protos.BlockPlugFtraceEventH\x00\x12\x42\n\x0e\x62lock_rq_abort\x18| \x01(\x0b\x32(.perfetto.protos.BlockRqAbortFtraceEventH\x00\x12H\n\x11\x62lock_rq_complete\x18} \x01(\x0b\x32+.perfetto.protos.BlockRqCompleteFtraceEventH\x00\x12\x44\n\x0f\x62lock_rq_insert\x18~ \x01(\x0b\x32).perfetto.protos.BlockRqInsertFtraceEventH\x00\x12\x43\n\x0e\x62lock_rq_remap\x18\x80\x01 \x01(\x0b\x32(.perfetto.protos.BlockRqRemapFtraceEventH\x00\x12G\n\x10\x62lock_rq_requeue\x18\x81\x01 \x01(\x0b\x32*.perfetto.protos.BlockRqRequeueFtraceEventH\x00\x12\x42\n\rblock_sleeprq\x18\x82\x01 \x01(\x0b\x32(.perfetto.protos.BlockSleeprqFtraceEventH\x00\x12>\n\x0b\x62lock_split\x18\x83\x01 \x01(\x0b\x32&.perfetto.protos.BlockSplitFtraceEventH\x00\x12K\n\x12\x62lock_touch_buffer\x18\x84\x01 \x01(\x0b\x32,.perfetto.protos.BlockTouchBufferFtraceEventH\x00\x12@\n\x0c\x62lock_unplug\x18\x85\x01 \x01(\x0b\x32\'.perfetto.protos.BlockUnplugFtraceEventH\x00\x12N\n\x14\x65xt4_alloc_da_blocks\x18\x86\x01 \x01(\x0b\x32-.perfetto.protos.Ext4AllocDaBlocksFtraceEventH\x00\x12O\n\x14\x65xt4_allocate_blocks\x18\x87\x01 \x01(\x0b\x32..perfetto.protos.Ext4AllocateBlocksFtraceEventH\x00\x12M\n\x13\x65xt4_allocate_inode\x18\x88\x01 \x01(\x0b\x32-.perfetto.protos.Ext4AllocateInodeFtraceEventH\x00\x12\\\n\x1b\x65xt4_begin_ordered_truncate\x18\x89\x01 \x01(\x0b\x32\x34.perfetto.protos.Ext4BeginOrderedTruncateFtraceEventH\x00\x12M\n\x13\x65xt4_collapse_range\x18\x8a\x01 \x01(\x0b\x32-.perfetto.protos.Ext4CollapseRangeFtraceEventH\x00\x12P\n\x15\x65xt4_da_release_space\x18\x8b\x01 \x01(\x0b\x32..perfetto.protos.Ext4DaReleaseSpaceFtraceEventH\x00\x12P\n\x15\x65xt4_da_reserve_space\x18\x8c\x01 \x01(\x0b\x32..perfetto.protos.Ext4DaReserveSpaceFtraceEventH\x00\x12]\n\x1c\x65xt4_da_update_reserve_space\x18\x8d\x01 \x01(\x0b\x32\x34.perfetto.protos.Ext4DaUpdateReserveSpaceFtraceEventH\x00\x12L\n\x13\x65xt4_da_write_pages\x18\x8e\x01 \x01(\x0b\x32,.perfetto.protos.Ext4DaWritePagesFtraceEventH\x00\x12Y\n\x1a\x65xt4_da_write_pages_extent\x18\x8f\x01 \x01(\x0b\x32\x32.perfetto.protos.Ext4DaWritePagesExtentFtraceEventH\x00\x12N\n\x14\x65xt4_direct_IO_enter\x18\x90\x01 \x01(\x0b\x32-.perfetto.protos.Ext4DirectIOEnterFtraceEventH\x00\x12L\n\x13\x65xt4_direct_IO_exit\x18\x91\x01 \x01(\x0b\x32,.perfetto.protos.Ext4DirectIOExitFtraceEventH\x00\x12M\n\x13\x65xt4_discard_blocks\x18\x92\x01 \x01(\x0b\x32-.perfetto.protos.Ext4DiscardBlocksFtraceEventH\x00\x12]\n\x1b\x65xt4_discard_preallocations\x18\x93\x01 \x01(\x0b\x32\x35.perfetto.protos.Ext4DiscardPreallocationsFtraceEventH\x00\x12\x45\n\x0f\x65xt4_drop_inode\x18\x94\x01 \x01(\x0b\x32).perfetto.protos.Ext4DropInodeFtraceEventH\x00\x12N\n\x14\x65xt4_es_cache_extent\x18\x95\x01 \x01(\x0b\x32-.perfetto.protos.Ext4EsCacheExtentFtraceEventH\x00\x12q\n\'ext4_es_find_delayed_extent_range_enter\x18\x96\x01 \x01(\x0b\x32=.perfetto.protos.Ext4EsFindDelayedExtentRangeEnterFtraceEventH\x00\x12o\n&ext4_es_find_delayed_extent_range_exit\x18\x97\x01 \x01(\x0b\x32<.perfetto.protos.Ext4EsFindDelayedExtentRangeExitFtraceEventH\x00\x12P\n\x15\x65xt4_es_insert_extent\x18\x98\x01 \x01(\x0b\x32..perfetto.protos.Ext4EsInsertExtentFtraceEventH\x00\x12[\n\x1b\x65xt4_es_lookup_extent_enter\x18\x99\x01 \x01(\x0b\x32\x33.perfetto.protos.Ext4EsLookupExtentEnterFtraceEventH\x00\x12Y\n\x1a\x65xt4_es_lookup_extent_exit\x18\x9a\x01 \x01(\x0b\x32\x32.perfetto.protos.Ext4EsLookupExtentExitFtraceEventH\x00\x12P\n\x15\x65xt4_es_remove_extent\x18\x9b\x01 \x01(\x0b\x32..perfetto.protos.Ext4EsRemoveExtentFtraceEventH\x00\x12\x43\n\x0e\x65xt4_es_shrink\x18\x9c\x01 \x01(\x0b\x32(.perfetto.protos.Ext4EsShrinkFtraceEventH\x00\x12N\n\x14\x65xt4_es_shrink_count\x18\x9d\x01 \x01(\x0b\x32-.perfetto.protos.Ext4EsShrinkCountFtraceEventH\x00\x12W\n\x19\x65xt4_es_shrink_scan_enter\x18\x9e\x01 \x01(\x0b\x32\x31.perfetto.protos.Ext4EsShrinkScanEnterFtraceEventH\x00\x12U\n\x18\x65xt4_es_shrink_scan_exit\x18\x9f\x01 \x01(\x0b\x32\x30.perfetto.protos.Ext4EsShrinkScanExitFtraceEventH\x00\x12G\n\x10\x65xt4_evict_inode\x18\xa0\x01 \x01(\x0b\x32*.perfetto.protos.Ext4EvictInodeFtraceEventH\x00\x12n\n%ext4_ext_convert_to_initialized_enter\x18\xa1\x01 \x01(\x0b\x32<.perfetto.protos.Ext4ExtConvertToInitializedEnterFtraceEventH\x00\x12t\n(ext4_ext_convert_to_initialized_fastpath\x18\xa2\x01 \x01(\x0b\x32?.perfetto.protos.Ext4ExtConvertToInitializedFastpathFtraceEventH\x00\x12g\n!ext4_ext_handle_unwritten_extents\x18\xa3\x01 \x01(\x0b\x32\x39.perfetto.protos.Ext4ExtHandleUnwrittenExtentsFtraceEventH\x00\x12H\n\x11\x65xt4_ext_in_cache\x18\xa4\x01 \x01(\x0b\x32*.perfetto.protos.Ext4ExtInCacheFtraceEventH\x00\x12N\n\x14\x65xt4_ext_load_extent\x18\xa5\x01 \x01(\x0b\x32-.perfetto.protos.Ext4ExtLoadExtentFtraceEventH\x00\x12W\n\x19\x65xt4_ext_map_blocks_enter\x18\xa6\x01 \x01(\x0b\x32\x31.perfetto.protos.Ext4ExtMapBlocksEnterFtraceEventH\x00\x12U\n\x18\x65xt4_ext_map_blocks_exit\x18\xa7\x01 \x01(\x0b\x32\x30.perfetto.protos.Ext4ExtMapBlocksExitFtraceEventH\x00\x12O\n\x15\x65xt4_ext_put_in_cache\x18\xa8\x01 \x01(\x0b\x32-.perfetto.protos.Ext4ExtPutInCacheFtraceEventH\x00\x12P\n\x15\x65xt4_ext_remove_space\x18\xa9\x01 \x01(\x0b\x32..perfetto.protos.Ext4ExtRemoveSpaceFtraceEventH\x00\x12Y\n\x1a\x65xt4_ext_remove_space_done\x18\xaa\x01 \x01(\x0b\x32\x32.perfetto.protos.Ext4ExtRemoveSpaceDoneFtraceEventH\x00\x12\x44\n\x0f\x65xt4_ext_rm_idx\x18\xab\x01 \x01(\x0b\x32(.perfetto.protos.Ext4ExtRmIdxFtraceEventH\x00\x12\x46\n\x10\x65xt4_ext_rm_leaf\x18\xac\x01 \x01(\x0b\x32).perfetto.protos.Ext4ExtRmLeafFtraceEventH\x00\x12N\n\x14\x65xt4_ext_show_extent\x18\xad\x01 \x01(\x0b\x32-.perfetto.protos.Ext4ExtShowExtentFtraceEventH\x00\x12O\n\x14\x65xt4_fallocate_enter\x18\xae\x01 \x01(\x0b\x32..perfetto.protos.Ext4FallocateEnterFtraceEventH\x00\x12M\n\x13\x65xt4_fallocate_exit\x18\xaf\x01 \x01(\x0b\x32-.perfetto.protos.Ext4FallocateExitFtraceEventH\x00\x12V\n\x18\x65xt4_find_delalloc_range\x18\xb0\x01 \x01(\x0b\x32\x31.perfetto.protos.Ext4FindDelallocRangeFtraceEventH\x00\x12>\n\x0b\x65xt4_forget\x18\xb1\x01 \x01(\x0b\x32&.perfetto.protos.Ext4ForgetFtraceEventH\x00\x12G\n\x10\x65xt4_free_blocks\x18\xb2\x01 \x01(\x0b\x32*.perfetto.protos.Ext4FreeBlocksFtraceEventH\x00\x12\x45\n\x0f\x65xt4_free_inode\x18\xb3\x01 \x01(\x0b\x32).perfetto.protos.Ext4FreeInodeFtraceEventH\x00\x12j\n#ext4_get_implied_cluster_alloc_exit\x18\xb4\x01 \x01(\x0b\x32:.perfetto.protos.Ext4GetImpliedClusterAllocExitFtraceEventH\x00\x12\x63\n\x1f\x65xt4_get_reserved_cluster_alloc\x18\xb5\x01 \x01(\x0b\x32\x37.perfetto.protos.Ext4GetReservedClusterAllocFtraceEventH\x00\x12W\n\x19\x65xt4_ind_map_blocks_enter\x18\xb6\x01 \x01(\x0b\x32\x31.perfetto.protos.Ext4IndMapBlocksEnterFtraceEventH\x00\x12U\n\x18\x65xt4_ind_map_blocks_exit\x18\xb7\x01 \x01(\x0b\x32\x30.perfetto.protos.Ext4IndMapBlocksExitFtraceEventH\x00\x12I\n\x11\x65xt4_insert_range\x18\xb8\x01 \x01(\x0b\x32+.perfetto.protos.Ext4InsertRangeFtraceEventH\x00\x12N\n\x13\x65xt4_invalidatepage\x18\xb9\x01 \x01(\x0b\x32..perfetto.protos.Ext4InvalidatepageFtraceEventH\x00\x12K\n\x12\x65xt4_journal_start\x18\xba\x01 \x01(\x0b\x32,.perfetto.protos.Ext4JournalStartFtraceEventH\x00\x12\\\n\x1b\x65xt4_journal_start_reserved\x18\xbb\x01 \x01(\x0b\x32\x34.perfetto.protos.Ext4JournalStartReservedFtraceEventH\x00\x12\x63\n\x1e\x65xt4_journalled_invalidatepage\x18\xbc\x01 \x01(\x0b\x32\x38.perfetto.protos.Ext4JournalledInvalidatepageFtraceEventH\x00\x12X\n\x19\x65xt4_journalled_write_end\x18\xbd\x01 \x01(\x0b\x32\x32.perfetto.protos.Ext4JournalledWriteEndFtraceEventH\x00\x12\x45\n\x0f\x65xt4_load_inode\x18\xbe\x01 \x01(\x0b\x32).perfetto.protos.Ext4LoadInodeFtraceEventH\x00\x12R\n\x16\x65xt4_load_inode_bitmap\x18\xbf\x01 \x01(\x0b\x32/.perfetto.protos.Ext4LoadInodeBitmapFtraceEventH\x00\x12P\n\x15\x65xt4_mark_inode_dirty\x18\xc0\x01 \x01(\x0b\x32..perfetto.protos.Ext4MarkInodeDirtyFtraceEventH\x00\x12L\n\x13\x65xt4_mb_bitmap_load\x18\xc1\x01 \x01(\x0b\x32,.perfetto.protos.Ext4MbBitmapLoadFtraceEventH\x00\x12W\n\x19\x65xt4_mb_buddy_bitmap_load\x18\xc2\x01 \x01(\x0b\x32\x31.perfetto.protos.Ext4MbBuddyBitmapLoadFtraceEventH\x00\x12\x62\n\x1e\x65xt4_mb_discard_preallocations\x18\xc3\x01 \x01(\x0b\x32\x37.perfetto.protos.Ext4MbDiscardPreallocationsFtraceEventH\x00\x12M\n\x14\x65xt4_mb_new_group_pa\x18\xc4\x01 \x01(\x0b\x32,.perfetto.protos.Ext4MbNewGroupPaFtraceEventH\x00\x12M\n\x14\x65xt4_mb_new_inode_pa\x18\xc5\x01 \x01(\x0b\x32,.perfetto.protos.Ext4MbNewInodePaFtraceEventH\x00\x12U\n\x18\x65xt4_mb_release_group_pa\x18\xc6\x01 \x01(\x0b\x32\x30.perfetto.protos.Ext4MbReleaseGroupPaFtraceEventH\x00\x12U\n\x18\x65xt4_mb_release_inode_pa\x18\xc7\x01 \x01(\x0b\x32\x30.perfetto.protos.Ext4MbReleaseInodePaFtraceEventH\x00\x12K\n\x12\x65xt4_mballoc_alloc\x18\xc8\x01 \x01(\x0b\x32,.perfetto.protos.Ext4MballocAllocFtraceEventH\x00\x12O\n\x14\x65xt4_mballoc_discard\x18\xc9\x01 \x01(\x0b\x32..perfetto.protos.Ext4MballocDiscardFtraceEventH\x00\x12I\n\x11\x65xt4_mballoc_free\x18\xca\x01 \x01(\x0b\x32+.perfetto.protos.Ext4MballocFreeFtraceEventH\x00\x12Q\n\x15\x65xt4_mballoc_prealloc\x18\xcb\x01 \x01(\x0b\x32/.perfetto.protos.Ext4MballocPreallocFtraceEventH\x00\x12]\n\x1c\x65xt4_other_inode_update_time\x18\xcc\x01 \x01(\x0b\x32\x34.perfetto.protos.Ext4OtherInodeUpdateTimeFtraceEventH\x00\x12\x45\n\x0f\x65xt4_punch_hole\x18\xcd\x01 \x01(\x0b\x32).perfetto.protos.Ext4PunchHoleFtraceEventH\x00\x12[\n\x1b\x65xt4_read_block_bitmap_load\x18\xce\x01 \x01(\x0b\x32\x33.perfetto.protos.Ext4ReadBlockBitmapLoadFtraceEventH\x00\x12\x42\n\rext4_readpage\x18\xcf\x01 \x01(\x0b\x32(.perfetto.protos.Ext4ReadpageFtraceEventH\x00\x12H\n\x10\x65xt4_releasepage\x18\xd0\x01 \x01(\x0b\x32+.perfetto.protos.Ext4ReleasepageFtraceEventH\x00\x12K\n\x12\x65xt4_remove_blocks\x18\xd1\x01 \x01(\x0b\x32,.perfetto.protos.Ext4RemoveBlocksFtraceEventH\x00\x12M\n\x13\x65xt4_request_blocks\x18\xd2\x01 \x01(\x0b\x32-.perfetto.protos.Ext4RequestBlocksFtraceEventH\x00\x12K\n\x12\x65xt4_request_inode\x18\xd3\x01 \x01(\x0b\x32,.perfetto.protos.Ext4RequestInodeFtraceEventH\x00\x12?\n\x0c\x65xt4_sync_fs\x18\xd4\x01 \x01(\x0b\x32&.perfetto.protos.Ext4SyncFsFtraceEventH\x00\x12J\n\x12\x65xt4_trim_all_free\x18\xd5\x01 \x01(\x0b\x32+.perfetto.protos.Ext4TrimAllFreeFtraceEventH\x00\x12G\n\x10\x65xt4_trim_extent\x18\xd6\x01 \x01(\x0b\x32*.perfetto.protos.Ext4TrimExtentFtraceEventH\x00\x12M\n\x13\x65xt4_truncate_enter\x18\xd7\x01 \x01(\x0b\x32-.perfetto.protos.Ext4TruncateEnterFtraceEventH\x00\x12K\n\x12\x65xt4_truncate_exit\x18\xd8\x01 \x01(\x0b\x32,.perfetto.protos.Ext4TruncateExitFtraceEventH\x00\x12I\n\x11\x65xt4_unlink_enter\x18\xd9\x01 \x01(\x0b\x32+.perfetto.protos.Ext4UnlinkEnterFtraceEventH\x00\x12G\n\x10\x65xt4_unlink_exit\x18\xda\x01 \x01(\x0b\x32*.perfetto.protos.Ext4UnlinkExitFtraceEventH\x00\x12G\n\x10\x65xt4_write_begin\x18\xdb\x01 \x01(\x0b\x32*.perfetto.protos.Ext4WriteBeginFtraceEventH\x00\x12\x43\n\x0e\x65xt4_write_end\x18\xe6\x01 \x01(\x0b\x32(.perfetto.protos.Ext4WriteEndFtraceEventH\x00\x12\x44\n\x0e\x65xt4_writepage\x18\xe7\x01 \x01(\x0b\x32).perfetto.protos.Ext4WritepageFtraceEventH\x00\x12\x46\n\x0f\x65xt4_writepages\x18\xe8\x01 \x01(\x0b\x32*.perfetto.protos.Ext4WritepagesFtraceEventH\x00\x12S\n\x16\x65xt4_writepages_result\x18\xe9\x01 \x01(\x0b\x32\x30.perfetto.protos.Ext4WritepagesResultFtraceEventH\x00\x12\x45\n\x0f\x65xt4_zero_range\x18\xea\x01 \x01(\x0b\x32).perfetto.protos.Ext4ZeroRangeFtraceEventH\x00\x12@\n\x0ctask_newtask\x18\xeb\x01 \x01(\x0b\x32\'.perfetto.protos.TaskNewtaskFtraceEventH\x00\x12>\n\x0btask_rename\x18\xec\x01 \x01(\x0b\x32&.perfetto.protos.TaskRenameFtraceEventH\x00\x12K\n\x12sched_process_exec\x18\xed\x01 \x01(\x0b\x32,.perfetto.protos.SchedProcessExecFtraceEventH\x00\x12K\n\x12sched_process_exit\x18\xee\x01 \x01(\x0b\x32,.perfetto.protos.SchedProcessExitFtraceEventH\x00\x12K\n\x12sched_process_fork\x18\xef\x01 \x01(\x0b\x32,.perfetto.protos.SchedProcessForkFtraceEventH\x00\x12K\n\x12sched_process_free\x18\xf0\x01 \x01(\x0b\x32,.perfetto.protos.SchedProcessFreeFtraceEventH\x00\x12K\n\x12sched_process_hang\x18\xf1\x01 \x01(\x0b\x32,.perfetto.protos.SchedProcessHangFtraceEventH\x00\x12K\n\x12sched_process_wait\x18\xf2\x01 \x01(\x0b\x32,.perfetto.protos.SchedProcessWaitFtraceEventH\x00\x12J\n\x12\x66\x32\x66s_do_submit_bio\x18\xf3\x01 \x01(\x0b\x32+.perfetto.protos.F2fsDoSubmitBioFtraceEventH\x00\x12G\n\x10\x66\x32\x66s_evict_inode\x18\xf4\x01 \x01(\x0b\x32*.perfetto.protos.F2fsEvictInodeFtraceEventH\x00\x12\x44\n\x0e\x66\x32\x66s_fallocate\x18\xf5\x01 \x01(\x0b\x32).perfetto.protos.F2fsFallocateFtraceEventH\x00\x12L\n\x13\x66\x32\x66s_get_data_block\x18\xf6\x01 \x01(\x0b\x32,.perfetto.protos.F2fsGetDataBlockFtraceEventH\x00\x12\x45\n\x0f\x66\x32\x66s_get_victim\x18\xf7\x01 \x01(\x0b\x32).perfetto.protos.F2fsGetVictimFtraceEventH\x00\x12:\n\tf2fs_iget\x18\xf8\x01 \x01(\x0b\x32$.perfetto.protos.F2fsIgetFtraceEventH\x00\x12\x43\n\x0e\x66\x32\x66s_iget_exit\x18\xf9\x01 \x01(\x0b\x32(.perfetto.protos.F2fsIgetExitFtraceEventH\x00\x12\x43\n\x0e\x66\x32\x66s_new_inode\x18\xfa\x01 \x01(\x0b\x32(.perfetto.protos.F2fsNewInodeFtraceEventH\x00\x12\x42\n\rf2fs_readpage\x18\xfb\x01 \x01(\x0b\x32(.perfetto.protos.F2fsReadpageFtraceEventH\x00\x12R\n\x16\x66\x32\x66s_reserve_new_block\x18\xfc\x01 \x01(\x0b\x32/.perfetto.protos.F2fsReserveNewBlockFtraceEventH\x00\x12L\n\x13\x66\x32\x66s_set_page_dirty\x18\xfd\x01 \x01(\x0b\x32,.perfetto.protos.F2fsSetPageDirtyFtraceEventH\x00\x12R\n\x16\x66\x32\x66s_submit_write_page\x18\xfe\x01 \x01(\x0b\x32/.perfetto.protos.F2fsSubmitWritePageFtraceEventH\x00\x12N\n\x14\x66\x32\x66s_sync_file_enter\x18\xff\x01 \x01(\x0b\x32-.perfetto.protos.F2fsSyncFileEnterFtraceEventH\x00\x12L\n\x13\x66\x32\x66s_sync_file_exit\x18\x80\x02 \x01(\x0b\x32,.perfetto.protos.F2fsSyncFileExitFtraceEventH\x00\x12?\n\x0c\x66\x32\x66s_sync_fs\x18\x81\x02 \x01(\x0b\x32&.perfetto.protos.F2fsSyncFsFtraceEventH\x00\x12\x42\n\rf2fs_truncate\x18\x82\x02 \x01(\x0b\x32(.perfetto.protos.F2fsTruncateFtraceEventH\x00\x12Z\n\x1a\x66\x32\x66s_truncate_blocks_enter\x18\x83\x02 \x01(\x0b\x32\x33.perfetto.protos.F2fsTruncateBlocksEnterFtraceEventH\x00\x12X\n\x19\x66\x32\x66s_truncate_blocks_exit\x18\x84\x02 \x01(\x0b\x32\x32.perfetto.protos.F2fsTruncateBlocksExitFtraceEventH\x00\x12\x63\n\x1f\x66\x32\x66s_truncate_data_blocks_range\x18\x85\x02 \x01(\x0b\x32\x37.perfetto.protos.F2fsTruncateDataBlocksRangeFtraceEventH\x00\x12\x65\n f2fs_truncate_inode_blocks_enter\x18\x86\x02 \x01(\x0b\x32\x38.perfetto.protos.F2fsTruncateInodeBlocksEnterFtraceEventH\x00\x12\x63\n\x1f\x66\x32\x66s_truncate_inode_blocks_exit\x18\x87\x02 \x01(\x0b\x32\x37.perfetto.protos.F2fsTruncateInodeBlocksExitFtraceEventH\x00\x12K\n\x12\x66\x32\x66s_truncate_node\x18\x88\x02 \x01(\x0b\x32,.perfetto.protos.F2fsTruncateNodeFtraceEventH\x00\x12X\n\x19\x66\x32\x66s_truncate_nodes_enter\x18\x89\x02 \x01(\x0b\x32\x32.perfetto.protos.F2fsTruncateNodesEnterFtraceEventH\x00\x12V\n\x18\x66\x32\x66s_truncate_nodes_exit\x18\x8a\x02 \x01(\x0b\x32\x31.perfetto.protos.F2fsTruncateNodesExitFtraceEventH\x00\x12\\\n\x1b\x66\x32\x66s_truncate_partial_nodes\x18\x8b\x02 \x01(\x0b\x32\x34.perfetto.protos.F2fsTruncatePartialNodesFtraceEventH\x00\x12I\n\x11\x66\x32\x66s_unlink_enter\x18\x8c\x02 \x01(\x0b\x32+.perfetto.protos.F2fsUnlinkEnterFtraceEventH\x00\x12G\n\x10\x66\x32\x66s_unlink_exit\x18\x8d\x02 \x01(\x0b\x32*.perfetto.protos.F2fsUnlinkExitFtraceEventH\x00\x12N\n\x14\x66\x32\x66s_vm_page_mkwrite\x18\x8e\x02 \x01(\x0b\x32-.perfetto.protos.F2fsVmPageMkwriteFtraceEventH\x00\x12G\n\x10\x66\x32\x66s_write_begin\x18\x8f\x02 \x01(\x0b\x32*.perfetto.protos.F2fsWriteBeginFtraceEventH\x00\x12Q\n\x15\x66\x32\x66s_write_checkpoint\x18\x90\x02 \x01(\x0b\x32/.perfetto.protos.F2fsWriteCheckpointFtraceEventH\x00\x12\x43\n\x0e\x66\x32\x66s_write_end\x18\x91\x02 \x01(\x0b\x32(.perfetto.protos.F2fsWriteEndFtraceEventH\x00\x12P\n\x15\x61lloc_pages_iommu_end\x18\x92\x02 \x01(\x0b\x32..perfetto.protos.AllocPagesIommuEndFtraceEventH\x00\x12R\n\x16\x61lloc_pages_iommu_fail\x18\x93\x02 \x01(\x0b\x32/.perfetto.protos.AllocPagesIommuFailFtraceEventH\x00\x12T\n\x17\x61lloc_pages_iommu_start\x18\x94\x02 \x01(\x0b\x32\x30.perfetto.protos.AllocPagesIommuStartFtraceEventH\x00\x12L\n\x13\x61lloc_pages_sys_end\x18\x95\x02 \x01(\x0b\x32,.perfetto.protos.AllocPagesSysEndFtraceEventH\x00\x12N\n\x14\x61lloc_pages_sys_fail\x18\x96\x02 \x01(\x0b\x32-.perfetto.protos.AllocPagesSysFailFtraceEventH\x00\x12P\n\x15\x61lloc_pages_sys_start\x18\x97\x02 \x01(\x0b\x32..perfetto.protos.AllocPagesSysStartFtraceEventH\x00\x12Z\n\x1a\x64ma_alloc_contiguous_retry\x18\x98\x02 \x01(\x0b\x32\x33.perfetto.protos.DmaAllocContiguousRetryFtraceEventH\x00\x12\x45\n\x0fiommu_map_range\x18\x99\x02 \x01(\x0b\x32).perfetto.protos.IommuMapRangeFtraceEventH\x00\x12\\\n\x1ciommu_sec_ptbl_map_range_end\x18\x9a\x02 \x01(\x0b\x32\x33.perfetto.protos.IommuSecPtblMapRangeEndFtraceEventH\x00\x12`\n\x1eiommu_sec_ptbl_map_range_start\x18\x9b\x02 \x01(\x0b\x32\x35.perfetto.protos.IommuSecPtblMapRangeStartFtraceEventH\x00\x12N\n\x14ion_alloc_buffer_end\x18\x9c\x02 \x01(\x0b\x32-.perfetto.protos.IonAllocBufferEndFtraceEventH\x00\x12P\n\x15ion_alloc_buffer_fail\x18\x9d\x02 \x01(\x0b\x32..perfetto.protos.IonAllocBufferFailFtraceEventH\x00\x12X\n\x19ion_alloc_buffer_fallback\x18\x9e\x02 \x01(\x0b\x32\x32.perfetto.protos.IonAllocBufferFallbackFtraceEventH\x00\x12R\n\x16ion_alloc_buffer_start\x18\x9f\x02 \x01(\x0b\x32/.perfetto.protos.IonAllocBufferStartFtraceEventH\x00\x12J\n\x12ion_cp_alloc_retry\x18\xa0\x02 \x01(\x0b\x32+.perfetto.protos.IonCpAllocRetryFtraceEventH\x00\x12U\n\x18ion_cp_secure_buffer_end\x18\xa1\x02 \x01(\x0b\x32\x30.perfetto.protos.IonCpSecureBufferEndFtraceEventH\x00\x12Y\n\x1aion_cp_secure_buffer_start\x18\xa2\x02 \x01(\x0b\x32\x32.perfetto.protos.IonCpSecureBufferStartFtraceEventH\x00\x12\x46\n\x0fion_prefetching\x18\xa3\x02 \x01(\x0b\x32*.perfetto.protos.IonPrefetchingFtraceEventH\x00\x12_\n\x1eion_secure_cma_add_to_pool_end\x18\xa4\x02 \x01(\x0b\x32\x34.perfetto.protos.IonSecureCmaAddToPoolEndFtraceEventH\x00\x12\x63\n ion_secure_cma_add_to_pool_start\x18\xa5\x02 \x01(\x0b\x32\x36.perfetto.protos.IonSecureCmaAddToPoolStartFtraceEventH\x00\x12[\n\x1bion_secure_cma_allocate_end\x18\xa6\x02 \x01(\x0b\x32\x33.perfetto.protos.IonSecureCmaAllocateEndFtraceEventH\x00\x12_\n\x1dion_secure_cma_allocate_start\x18\xa7\x02 \x01(\x0b\x32\x35.perfetto.protos.IonSecureCmaAllocateStartFtraceEventH\x00\x12`\n\x1eion_secure_cma_shrink_pool_end\x18\xa8\x02 \x01(\x0b\x32\x35.perfetto.protos.IonSecureCmaShrinkPoolEndFtraceEventH\x00\x12\x64\n ion_secure_cma_shrink_pool_start\x18\xa9\x02 \x01(\x0b\x32\x37.perfetto.protos.IonSecureCmaShrinkPoolStartFtraceEventH\x00\x12\x33\n\x05kfree\x18\xaa\x02 \x01(\x0b\x32!.perfetto.protos.KfreeFtraceEventH\x00\x12\x37\n\x07kmalloc\x18\xab\x02 \x01(\x0b\x32#.perfetto.protos.KmallocFtraceEventH\x00\x12@\n\x0ckmalloc_node\x18\xac\x02 \x01(\x0b\x32\'.perfetto.protos.KmallocNodeFtraceEventH\x00\x12G\n\x10kmem_cache_alloc\x18\xad\x02 \x01(\x0b\x32*.perfetto.protos.KmemCacheAllocFtraceEventH\x00\x12P\n\x15kmem_cache_alloc_node\x18\xae\x02 \x01(\x0b\x32..perfetto.protos.KmemCacheAllocNodeFtraceEventH\x00\x12\x45\n\x0fkmem_cache_free\x18\xaf\x02 \x01(\x0b\x32).perfetto.protos.KmemCacheFreeFtraceEventH\x00\x12I\n\x11migrate_pages_end\x18\xb0\x02 \x01(\x0b\x32+.perfetto.protos.MigratePagesEndFtraceEventH\x00\x12M\n\x13migrate_pages_start\x18\xb1\x02 \x01(\x0b\x32-.perfetto.protos.MigratePagesStartFtraceEventH\x00\x12\x42\n\rmigrate_retry\x18\xb2\x02 \x01(\x0b\x32(.perfetto.protos.MigrateRetryFtraceEventH\x00\x12\x41\n\rmm_page_alloc\x18\xb3\x02 \x01(\x0b\x32\'.perfetto.protos.MmPageAllocFtraceEventH\x00\x12P\n\x15mm_page_alloc_extfrag\x18\xb4\x02 \x01(\x0b\x32..perfetto.protos.MmPageAllocExtfragFtraceEventH\x00\x12W\n\x19mm_page_alloc_zone_locked\x18\xb5\x02 \x01(\x0b\x32\x31.perfetto.protos.MmPageAllocZoneLockedFtraceEventH\x00\x12?\n\x0cmm_page_free\x18\xb6\x02 \x01(\x0b\x32&.perfetto.protos.MmPageFreeFtraceEventH\x00\x12N\n\x14mm_page_free_batched\x18\xb7\x02 \x01(\x0b\x32-.perfetto.protos.MmPageFreeBatchedFtraceEventH\x00\x12J\n\x12mm_page_pcpu_drain\x18\xb8\x02 \x01(\x0b\x32+.perfetto.protos.MmPagePcpuDrainFtraceEventH\x00\x12\x38\n\x08rss_stat\x18\xb9\x02 \x01(\x0b\x32#.perfetto.protos.RssStatFtraceEventH\x00\x12\x45\n\x0fion_heap_shrink\x18\xba\x02 \x01(\x0b\x32).perfetto.protos.IonHeapShrinkFtraceEventH\x00\x12\x41\n\rion_heap_grow\x18\xbb\x02 \x01(\x0b\x32\'.perfetto.protos.IonHeapGrowFtraceEventH\x00\x12<\n\nfence_init\x18\xbc\x02 \x01(\x0b\x32%.perfetto.protos.FenceInitFtraceEventH\x00\x12\x42\n\rfence_destroy\x18\xbd\x02 \x01(\x0b\x32(.perfetto.protos.FenceDestroyFtraceEventH\x00\x12M\n\x13\x66\x65nce_enable_signal\x18\xbe\x02 \x01(\x0b\x32-.perfetto.protos.FenceEnableSignalFtraceEventH\x00\x12\x44\n\x0e\x66\x65nce_signaled\x18\xbf\x02 \x01(\x0b\x32).perfetto.protos.FenceSignaledFtraceEventH\x00\x12<\n\nclk_enable\x18\xc0\x02 \x01(\x0b\x32%.perfetto.protos.ClkEnableFtraceEventH\x00\x12>\n\x0b\x63lk_disable\x18\xc1\x02 \x01(\x0b\x32&.perfetto.protos.ClkDisableFtraceEventH\x00\x12?\n\x0c\x63lk_set_rate\x18\xc2\x02 \x01(\x0b\x32&.perfetto.protos.ClkSetRateFtraceEventH\x00\x12^\n\x1c\x62inder_transaction_alloc_buf\x18\xc3\x02 \x01(\x0b\x32\x35.perfetto.protos.BinderTransactionAllocBufFtraceEventH\x00\x12\x44\n\x0esignal_deliver\x18\xc4\x02 \x01(\x0b\x32).perfetto.protos.SignalDeliverFtraceEventH\x00\x12\x46\n\x0fsignal_generate\x18\xc5\x02 \x01(\x0b\x32*.perfetto.protos.SignalGenerateFtraceEventH\x00\x12N\n\x14oom_score_adj_update\x18\xc6\x02 \x01(\x0b\x32-.perfetto.protos.OomScoreAdjUpdateFtraceEventH\x00\x12\x37\n\x07generic\x18\xc7\x02 \x01(\x0b\x32#.perfetto.protos.GenericFtraceEventH\x00\x12\x45\n\x0fmm_event_record\x18\xc8\x02 \x01(\x0b\x32).perfetto.protos.MmEventRecordFtraceEventH\x00\x12:\n\tsys_enter\x18\xc9\x02 \x01(\x0b\x32$.perfetto.protos.SysEnterFtraceEventH\x00\x12\x38\n\x08sys_exit\x18\xca\x02 \x01(\x0b\x32#.perfetto.protos.SysExitFtraceEventH\x00\x12\x31\n\x04zero\x18\xcb\x02 \x01(\x0b\x32 .perfetto.protos.ZeroFtraceEventH\x00\x12\x42\n\rgpu_frequency\x18\xcc\x02 \x01(\x0b\x32(.perfetto.protos.GpuFrequencyFtraceEventH\x00\x12R\n\x16sde_tracing_mark_write\x18\xcd\x02 \x01(\x0b\x32/.perfetto.protos.SdeTracingMarkWriteFtraceEventH\x00\x12>\n\x0bmark_victim\x18\xce\x02 \x01(\x0b\x32&.perfetto.protos.MarkVictimFtraceEventH\x00\x12\x38\n\x08ion_stat\x18\xcf\x02 \x01(\x0b\x32#.perfetto.protos.IonStatFtraceEventH\x00\x12I\n\x11ion_buffer_create\x18\xd0\x02 \x01(\x0b\x32+.perfetto.protos.IonBufferCreateFtraceEventH\x00\x12K\n\x12ion_buffer_destroy\x18\xd1\x02 \x01(\x0b\x32,.perfetto.protos.IonBufferDestroyFtraceEventH\x00\x12\x43\n\x0escm_call_start\x18\xd2\x02 \x01(\x0b\x32(.perfetto.protos.ScmCallStartFtraceEventH\x00\x12?\n\x0cscm_call_end\x18\xd3\x02 \x01(\x0b\x32&.perfetto.protos.ScmCallEndFtraceEventH\x00\x12\x41\n\rgpu_mem_total\x18\xd4\x02 \x01(\x0b\x32\'.perfetto.protos.GpuMemTotalFtraceEventH\x00\x12N\n\x13thermal_temperature\x18\xd5\x02 \x01(\x0b\x32..perfetto.protos.ThermalTemperatureFtraceEventH\x00\x12>\n\x0b\x63\x64\x65v_update\x18\xd6\x02 \x01(\x0b\x32&.perfetto.protos.CdevUpdateFtraceEventH\x00\x12<\n\ncpuhp_exit\x18\xd7\x02 \x01(\x0b\x32%.perfetto.protos.CpuhpExitFtraceEventH\x00\x12I\n\x11\x63puhp_multi_enter\x18\xd8\x02 \x01(\x0b\x32+.perfetto.protos.CpuhpMultiEnterFtraceEventH\x00\x12>\n\x0b\x63puhp_enter\x18\xd9\x02 \x01(\x0b\x32&.perfetto.protos.CpuhpEnterFtraceEventH\x00\x12\x42\n\rcpuhp_latency\x18\xda\x02 \x01(\x0b\x32(.perfetto.protos.CpuhpLatencyFtraceEventH\x00\x12G\n\x10\x66\x61strpc_dma_stat\x18\xdb\x02 \x01(\x0b\x32*.perfetto.protos.FastrpcDmaStatFtraceEventH\x00\x12R\n\x16\x64pu_tracing_mark_write\x18\xdc\x02 \x01(\x0b\x32/.perfetto.protos.DpuTracingMarkWriteFtraceEventH\x00\x12R\n\x16g2d_tracing_mark_write\x18\xdd\x02 \x01(\x0b\x32/.perfetto.protos.G2dTracingMarkWriteFtraceEventH\x00\x12T\n\x17mali_tracing_mark_write\x18\xde\x02 \x01(\x0b\x32\x30.perfetto.protos.MaliTracingMarkWriteFtraceEventH\x00\x12\x41\n\rdma_heap_stat\x18\xdf\x02 \x01(\x0b\x32\'.perfetto.protos.DmaHeapStatFtraceEventH\x00\x12>\n\x0b\x63puhp_pause\x18\xe0\x02 \x01(\x0b\x32&.perfetto.protos.CpuhpPauseFtraceEventH\x00\x12G\n\x10sched_pi_setprio\x18\xe1\x02 \x01(\x0b\x32*.perfetto.protos.SchedPiSetprioFtraceEventH\x00\x12\x43\n\x0esde_sde_evtlog\x18\xe2\x02 \x01(\x0b\x32(.perfetto.protos.SdeSdeEvtlogFtraceEventH\x00\x12Q\n\x16sde_sde_perf_calc_crtc\x18\xe3\x02 \x01(\x0b\x32..perfetto.protos.SdeSdePerfCalcCrtcFtraceEventH\x00\x12U\n\x18sde_sde_perf_crtc_update\x18\xe4\x02 \x01(\x0b\x32\x30.perfetto.protos.SdeSdePerfCrtcUpdateFtraceEventH\x00\x12V\n\x19sde_sde_perf_set_qos_luts\x18\xe5\x02 \x01(\x0b\x32\x30.perfetto.protos.SdeSdePerfSetQosLutsFtraceEventH\x00\x12S\n\x17sde_sde_perf_update_bus\x18\xe6\x02 \x01(\x0b\x32/.perfetto.protos.SdeSdePerfUpdateBusFtraceEventH\x00\x12K\n\x12rss_stat_throttled\x18\xe7\x02 \x01(\x0b\x32,.perfetto.protos.RssStatThrottledFtraceEventH\x00\x12I\n\x11netif_receive_skb\x18\xe8\x02 \x01(\x0b\x32+.perfetto.protos.NetifReceiveSkbFtraceEventH\x00\x12?\n\x0cnet_dev_xmit\x18\xe9\x02 \x01(\x0b\x32&.perfetto.protos.NetDevXmitFtraceEventH\x00\x12L\n\x13inet_sock_set_state\x18\xea\x02 \x01(\x0b\x32,.perfetto.protos.InetSockSetStateFtraceEventH\x00\x12K\n\x12tcp_retransmit_skb\x18\xeb\x02 \x01(\x0b\x32,.perfetto.protos.TcpRetransmitSkbFtraceEventH\x00\x12R\n\x16\x63ros_ec_sensorhub_data\x18\xec\x02 \x01(\x0b\x32/.perfetto.protos.CrosEcSensorhubDataFtraceEventH\x00\x12R\n\x16napi_gro_receive_entry\x18\xed\x02 \x01(\x0b\x32/.perfetto.protos.NapiGroReceiveEntryFtraceEventH\x00\x12P\n\x15napi_gro_receive_exit\x18\xee\x02 \x01(\x0b\x32..perfetto.protos.NapiGroReceiveExitFtraceEventH\x00\x12:\n\tkfree_skb\x18\xef\x02 \x01(\x0b\x32$.perfetto.protos.KfreeSkbFtraceEventH\x00\x12G\n\x10kvm_access_fault\x18\xf0\x02 \x01(\x0b\x32*.perfetto.protos.KvmAccessFaultFtraceEventH\x00\x12=\n\x0bkvm_ack_irq\x18\xf1\x02 \x01(\x0b\x32%.perfetto.protos.KvmAckIrqFtraceEventH\x00\x12=\n\x0bkvm_age_hva\x18\xf2\x02 \x01(\x0b\x32%.perfetto.protos.KvmAgeHvaFtraceEventH\x00\x12?\n\x0ckvm_age_page\x18\xf3\x02 \x01(\x0b\x32&.perfetto.protos.KvmAgePageFtraceEventH\x00\x12L\n\x13kvm_arm_clear_debug\x18\xf4\x02 \x01(\x0b\x32,.perfetto.protos.KvmArmClearDebugFtraceEventH\x00\x12J\n\x12kvm_arm_set_dreg32\x18\xf5\x02 \x01(\x0b\x32+.perfetto.protos.KvmArmSetDreg32FtraceEventH\x00\x12J\n\x12kvm_arm_set_regset\x18\xf6\x02 \x01(\x0b\x32+.perfetto.protos.KvmArmSetRegsetFtraceEventH\x00\x12L\n\x13kvm_arm_setup_debug\x18\xf7\x02 \x01(\x0b\x32,.perfetto.protos.KvmArmSetupDebugFtraceEventH\x00\x12:\n\tkvm_entry\x18\xf8\x02 \x01(\x0b\x32$.perfetto.protos.KvmEntryFtraceEventH\x00\x12\x38\n\x08kvm_exit\x18\xf9\x02 \x01(\x0b\x32#.perfetto.protos.KvmExitFtraceEventH\x00\x12\x36\n\x07kvm_fpu\x18\xfa\x02 \x01(\x0b\x32\".perfetto.protos.KvmFpuFtraceEventH\x00\x12H\n\x11kvm_get_timer_map\x18\xfb\x02 \x01(\x0b\x32*.perfetto.protos.KvmGetTimerMapFtraceEventH\x00\x12\x45\n\x0fkvm_guest_fault\x18\xfc\x02 \x01(\x0b\x32).perfetto.protos.KvmGuestFaultFtraceEventH\x00\x12J\n\x12kvm_handle_sys_reg\x18\xfd\x02 \x01(\x0b\x32+.perfetto.protos.KvmHandleSysRegFtraceEventH\x00\x12\x41\n\rkvm_hvc_arm64\x18\xfe\x02 \x01(\x0b\x32\'.perfetto.protos.KvmHvcArm64FtraceEventH\x00\x12?\n\x0ckvm_irq_line\x18\xff\x02 \x01(\x0b\x32&.perfetto.protos.KvmIrqLineFtraceEventH\x00\x12\x38\n\x08kvm_mmio\x18\x80\x03 \x01(\x0b\x32#.perfetto.protos.KvmMmioFtraceEventH\x00\x12G\n\x10kvm_mmio_emulate\x18\x81\x03 \x01(\x0b\x32*.perfetto.protos.KvmMmioEmulateFtraceEventH\x00\x12L\n\x13kvm_set_guest_debug\x18\x82\x03 \x01(\x0b\x32,.perfetto.protos.KvmSetGuestDebugFtraceEventH\x00\x12=\n\x0bkvm_set_irq\x18\x83\x03 \x01(\x0b\x32%.perfetto.protos.KvmSetIrqFtraceEventH\x00\x12\x46\n\x10kvm_set_spte_hva\x18\x84\x03 \x01(\x0b\x32).perfetto.protos.KvmSetSpteHvaFtraceEventH\x00\x12H\n\x11kvm_set_way_flush\x18\x85\x03 \x01(\x0b\x32*.perfetto.protos.KvmSetWayFlushFtraceEventH\x00\x12\x43\n\x0ekvm_sys_access\x18\x86\x03 \x01(\x0b\x32(.perfetto.protos.KvmSysAccessFtraceEventH\x00\x12\x46\n\x10kvm_test_age_hva\x18\x87\x03 \x01(\x0b\x32).perfetto.protos.KvmTestAgeHvaFtraceEventH\x00\x12I\n\x11kvm_timer_emulate\x18\x88\x03 \x01(\x0b\x32+.perfetto.protos.KvmTimerEmulateFtraceEventH\x00\x12V\n\x18kvm_timer_hrtimer_expire\x18\x89\x03 \x01(\x0b\x32\x31.perfetto.protos.KvmTimerHrtimerExpireFtraceEventH\x00\x12T\n\x17kvm_timer_restore_state\x18\x8a\x03 \x01(\x0b\x32\x30.perfetto.protos.KvmTimerRestoreStateFtraceEventH\x00\x12N\n\x14kvm_timer_save_state\x18\x8b\x03 \x01(\x0b\x32-.perfetto.protos.KvmTimerSaveStateFtraceEventH\x00\x12N\n\x14kvm_timer_update_irq\x18\x8c\x03 \x01(\x0b\x32-.perfetto.protos.KvmTimerUpdateIrqFtraceEventH\x00\x12G\n\x10kvm_toggle_cache\x18\x8d\x03 \x01(\x0b\x32*.perfetto.protos.KvmToggleCacheFtraceEventH\x00\x12L\n\x13kvm_unmap_hva_range\x18\x8e\x03 \x01(\x0b\x32,.perfetto.protos.KvmUnmapHvaRangeFtraceEventH\x00\x12K\n\x12kvm_userspace_exit\x18\x8f\x03 \x01(\x0b\x32,.perfetto.protos.KvmUserspaceExitFtraceEventH\x00\x12\x45\n\x0fkvm_vcpu_wakeup\x18\x90\x03 \x01(\x0b\x32).perfetto.protos.KvmVcpuWakeupFtraceEventH\x00\x12\x41\n\rkvm_wfx_arm64\x18\x91\x03 \x01(\x0b\x32\'.perfetto.protos.KvmWfxArm64FtraceEventH\x00\x12\x38\n\x08trap_reg\x18\x92\x03 \x01(\x0b\x32#.perfetto.protos.TrapRegFtraceEventH\x00\x12T\n\x17vgic_update_irq_pending\x18\x93\x03 \x01(\x0b\x32\x30.perfetto.protos.VgicUpdateIrqPendingFtraceEventH\x00\x12S\n\x16wakeup_source_activate\x18\x94\x03 \x01(\x0b\x32\x30.perfetto.protos.WakeupSourceActivateFtraceEventH\x00\x12W\n\x18wakeup_source_deactivate\x18\x95\x03 \x01(\x0b\x32\x32.perfetto.protos.WakeupSourceDeactivateFtraceEventH\x00\x12\x44\n\x0eufshcd_command\x18\x96\x03 \x01(\x0b\x32).perfetto.protos.UfshcdCommandFtraceEventH\x00\x12I\n\x11ufshcd_clk_gating\x18\x97\x03 \x01(\x0b\x32+.perfetto.protos.UfshcdClkGatingFtraceEventH\x00\x12\x37\n\x07\x63onsole\x18\x98\x03 \x01(\x0b\x32#.perfetto.protos.ConsoleFtraceEventH\x00\x12G\n\x10\x64rm_vblank_event\x18\x99\x03 \x01(\x0b\x32*.perfetto.protos.DrmVblankEventFtraceEventH\x00\x12Z\n\x1a\x64rm_vblank_event_delivered\x18\x9a\x03 \x01(\x0b\x32\x33.perfetto.protos.DrmVblankEventDeliveredFtraceEventH\x00\x12\x41\n\rdrm_sched_job\x18\x9b\x03 \x01(\x0b\x32\'.perfetto.protos.DrmSchedJobFtraceEventH\x00\x12=\n\x0b\x64rm_run_job\x18\x9c\x03 \x01(\x0b\x32%.perfetto.protos.DrmRunJobFtraceEventH\x00\x12P\n\x15\x64rm_sched_process_job\x18\x9d\x03 \x01(\x0b\x32..perfetto.protos.DrmSchedProcessJobFtraceEventH\x00\x12\x43\n\x0e\x64ma_fence_init\x18\x9e\x03 \x01(\x0b\x32(.perfetto.protos.DmaFenceInitFtraceEventH\x00\x12\x43\n\x0e\x64ma_fence_emit\x18\x9f\x03 \x01(\x0b\x32(.perfetto.protos.DmaFenceEmitFtraceEventH\x00\x12K\n\x12\x64ma_fence_signaled\x18\xa0\x03 \x01(\x0b\x32,.perfetto.protos.DmaFenceSignaledFtraceEventH\x00\x12N\n\x14\x64ma_fence_wait_start\x18\xa1\x03 \x01(\x0b\x32-.perfetto.protos.DmaFenceWaitStartFtraceEventH\x00\x12J\n\x12\x64ma_fence_wait_end\x18\xa2\x03 \x01(\x0b\x32+.perfetto.protos.DmaFenceWaitEndFtraceEventH\x00\x12>\n\x0b\x66\x32\x66s_iostat\x18\xa3\x03 \x01(\x0b\x32&.perfetto.protos.F2fsIostatFtraceEventH\x00\x12M\n\x13\x66\x32\x66s_iostat_latency\x18\xa4\x03 \x01(\x0b\x32-.perfetto.protos.F2fsIostatLatencyFtraceEventH\x00\x12J\n\x12sched_cpu_util_cfs\x18\xa5\x03 \x01(\x0b\x32+.perfetto.protos.SchedCpuUtilCfsFtraceEventH\x00\x12:\n\tv4l2_qbuf\x18\xa6\x03 \x01(\x0b\x32$.perfetto.protos.V4l2QbufFtraceEventH\x00\x12<\n\nv4l2_dqbuf\x18\xa7\x03 \x01(\x0b\x32%.perfetto.protos.V4l2DqbufFtraceEventH\x00\x12J\n\x12vb2_v4l2_buf_queue\x18\xa8\x03 \x01(\x0b\x32+.perfetto.protos.Vb2V4l2BufQueueFtraceEventH\x00\x12H\n\x11vb2_v4l2_buf_done\x18\xa9\x03 \x01(\x0b\x32*.perfetto.protos.Vb2V4l2BufDoneFtraceEventH\x00\x12\x41\n\rvb2_v4l2_qbuf\x18\xaa\x03 \x01(\x0b\x32\'.perfetto.protos.Vb2V4l2QbufFtraceEventH\x00\x12\x43\n\x0evb2_v4l2_dqbuf\x18\xab\x03 \x01(\x0b\x32(.perfetto.protos.Vb2V4l2DqbufFtraceEventH\x00\x12L\n\x13\x64si_cmd_fifo_status\x18\xac\x03 \x01(\x0b\x32,.perfetto.protos.DsiCmdFifoStatusFtraceEventH\x00\x12\x34\n\x06\x64si_rx\x18\xad\x03 \x01(\x0b\x32!.perfetto.protos.DsiRxFtraceEventH\x00\x12\x34\n\x06\x64si_tx\x18\xae\x03 \x01(\x0b\x32!.perfetto.protos.DsiTxFtraceEventH\x00\x12T\n\x17\x61ndroid_fs_dataread_end\x18\xaf\x03 \x01(\x0b\x32\x30.perfetto.protos.AndroidFsDatareadEndFtraceEventH\x00\x12X\n\x19\x61ndroid_fs_dataread_start\x18\xb0\x03 \x01(\x0b\x32\x32.perfetto.protos.AndroidFsDatareadStartFtraceEventH\x00\x12V\n\x18\x61ndroid_fs_datawrite_end\x18\xb1\x03 \x01(\x0b\x32\x31.perfetto.protos.AndroidFsDatawriteEndFtraceEventH\x00\x12Z\n\x1a\x61ndroid_fs_datawrite_start\x18\xb2\x03 \x01(\x0b\x32\x33.perfetto.protos.AndroidFsDatawriteStartFtraceEventH\x00\x12N\n\x14\x61ndroid_fs_fsync_end\x18\xb3\x03 \x01(\x0b\x32-.perfetto.protos.AndroidFsFsyncEndFtraceEventH\x00\x12R\n\x16\x61ndroid_fs_fsync_start\x18\xb4\x03 \x01(\x0b\x32/.perfetto.protos.AndroidFsFsyncStartFtraceEventH\x00\x12\x46\n\x0f\x66uncgraph_entry\x18\xb5\x03 \x01(\x0b\x32*.perfetto.protos.FuncgraphEntryFtraceEventH\x00\x12\x44\n\x0e\x66uncgraph_exit\x18\xb6\x03 \x01(\x0b\x32).perfetto.protos.FuncgraphExitFtraceEventH\x00\x12G\n\x10virtio_video_cmd\x18\xb7\x03 \x01(\x0b\x32*.perfetto.protos.VirtioVideoCmdFtraceEventH\x00\x12P\n\x15virtio_video_cmd_done\x18\xb8\x03 \x01(\x0b\x32..perfetto.protos.VirtioVideoCmdDoneFtraceEventH\x00\x12\\\n\x1bvirtio_video_resource_queue\x18\xb9\x03 \x01(\x0b\x32\x34.perfetto.protos.VirtioVideoResourceQueueFtraceEventH\x00\x12\x65\n virtio_video_resource_queue_done\x18\xba\x03 \x01(\x0b\x32\x38.perfetto.protos.VirtioVideoResourceQueueDoneFtraceEventH\x00\x12N\n\x14mm_shrink_slab_start\x18\xbb\x03 \x01(\x0b\x32-.perfetto.protos.MmShrinkSlabStartFtraceEventH\x00\x12J\n\x12mm_shrink_slab_end\x18\xbc\x03 \x01(\x0b\x32+.perfetto.protos.MmShrinkSlabEndFtraceEventH\x00\x12<\n\ntrusty_smc\x18\xbd\x03 \x01(\x0b\x32%.perfetto.protos.TrustySmcFtraceEventH\x00\x12\x45\n\x0ftrusty_smc_done\x18\xbe\x03 \x01(\x0b\x32).perfetto.protos.TrustySmcDoneFtraceEventH\x00\x12I\n\x11trusty_std_call32\x18\xbf\x03 \x01(\x0b\x32+.perfetto.protos.TrustyStdCall32FtraceEventH\x00\x12R\n\x16trusty_std_call32_done\x18\xc0\x03 \x01(\x0b\x32/.perfetto.protos.TrustyStdCall32DoneFtraceEventH\x00\x12M\n\x13trusty_share_memory\x18\xc1\x03 \x01(\x0b\x32-.perfetto.protos.TrustyShareMemoryFtraceEventH\x00\x12V\n\x18trusty_share_memory_done\x18\xc2\x03 \x01(\x0b\x32\x31.perfetto.protos.TrustyShareMemoryDoneFtraceEventH\x00\x12Q\n\x15trusty_reclaim_memory\x18\xc3\x03 \x01(\x0b\x32/.perfetto.protos.TrustyReclaimMemoryFtraceEventH\x00\x12Z\n\x1atrusty_reclaim_memory_done\x18\xc4\x03 \x01(\x0b\x32\x33.perfetto.protos.TrustyReclaimMemoryDoneFtraceEventH\x00\x12<\n\ntrusty_irq\x18\xc5\x03 \x01(\x0b\x32%.perfetto.protos.TrustyIrqFtraceEventH\x00\x12T\n\x17trusty_ipc_handle_event\x18\xc6\x03 \x01(\x0b\x32\x30.perfetto.protos.TrustyIpcHandleEventFtraceEventH\x00\x12K\n\x12trusty_ipc_connect\x18\xc7\x03 \x01(\x0b\x32,.perfetto.protos.TrustyIpcConnectFtraceEventH\x00\x12R\n\x16trusty_ipc_connect_end\x18\xc8\x03 \x01(\x0b\x32/.perfetto.protos.TrustyIpcConnectEndFtraceEventH\x00\x12G\n\x10trusty_ipc_write\x18\xc9\x03 \x01(\x0b\x32*.perfetto.protos.TrustyIpcWriteFtraceEventH\x00\x12\x45\n\x0ftrusty_ipc_poll\x18\xca\x03 \x01(\x0b\x32).perfetto.protos.TrustyIpcPollFtraceEventH\x00\x12\x45\n\x0ftrusty_ipc_read\x18\xcc\x03 \x01(\x0b\x32).perfetto.protos.TrustyIpcReadFtraceEventH\x00\x12L\n\x13trusty_ipc_read_end\x18\xcd\x03 \x01(\x0b\x32,.perfetto.protos.TrustyIpcReadEndFtraceEventH\x00\x12\x41\n\rtrusty_ipc_rx\x18\xce\x03 \x01(\x0b\x32\'.perfetto.protos.TrustyIpcRxFtraceEventH\x00\x12K\n\x12trusty_enqueue_nop\x18\xd0\x03 \x01(\x0b\x32,.perfetto.protos.TrustyEnqueueNopFtraceEventH\x00\x12\x45\n\x0f\x63ma_alloc_start\x18\xd1\x03 \x01(\x0b\x32).perfetto.protos.CmaAllocStartFtraceEventH\x00\x12\x43\n\x0e\x63ma_alloc_info\x18\xd2\x03 \x01(\x0b\x32(.perfetto.protos.CmaAllocInfoFtraceEventH\x00\x12T\n\x17lwis_tracing_mark_write\x18\xd3\x03 \x01(\x0b\x32\x30.perfetto.protos.LwisTracingMarkWriteFtraceEventH\x00\x12N\n\x14virtio_gpu_cmd_queue\x18\xd4\x03 \x01(\x0b\x32-.perfetto.protos.VirtioGpuCmdQueueFtraceEventH\x00\x12T\n\x17virtio_gpu_cmd_response\x18\xd5\x03 \x01(\x0b\x32\x30.perfetto.protos.VirtioGpuCmdResponseFtraceEventH\x00\x12Q\n\x16mali_mali_KCPU_CQS_SET\x18\xd6\x03 \x01(\x0b\x32..perfetto.protos.MaliMaliKCPUCQSSETFtraceEventH\x00\x12^\n\x1dmali_mali_KCPU_CQS_WAIT_START\x18\xd7\x03 \x01(\x0b\x32\x34.perfetto.protos.MaliMaliKCPUCQSWAITSTARTFtraceEventH\x00\x12Z\n\x1bmali_mali_KCPU_CQS_WAIT_END\x18\xd8\x03 \x01(\x0b\x32\x32.perfetto.protos.MaliMaliKCPUCQSWAITENDFtraceEventH\x00\x12[\n\x1bmali_mali_KCPU_FENCE_SIGNAL\x18\xd9\x03 \x01(\x0b\x32\x33.perfetto.protos.MaliMaliKCPUFENCESIGNALFtraceEventH\x00\x12\x62\n\x1fmali_mali_KCPU_FENCE_WAIT_START\x18\xda\x03 \x01(\x0b\x32\x36.perfetto.protos.MaliMaliKCPUFENCEWAITSTARTFtraceEventH\x00\x12^\n\x1dmali_mali_KCPU_FENCE_WAIT_END\x18\xdb\x03 \x01(\x0b\x32\x34.perfetto.protos.MaliMaliKCPUFENCEWAITENDFtraceEventH\x00\x12:\n\thyp_enter\x18\xdc\x03 \x01(\x0b\x32$.perfetto.protos.HypEnterFtraceEventH\x00\x12\x38\n\x08hyp_exit\x18\xdd\x03 \x01(\x0b\x32#.perfetto.protos.HypExitFtraceEventH\x00\x12<\n\nhost_hcall\x18\xde\x03 \x01(\x0b\x32%.perfetto.protos.HostHcallFtraceEventH\x00\x12\x38\n\x08host_smc\x18\xdf\x03 \x01(\x0b\x32#.perfetto.protos.HostSmcFtraceEventH\x00\x12\x43\n\x0ehost_mem_abort\x18\xe0\x03 \x01(\x0b\x32(.perfetto.protos.HostMemAbortFtraceEventH\x00\x12S\n\x16suspend_resume_minimal\x18\xe1\x03 \x01(\x0b\x32\x30.perfetto.protos.SuspendResumeMinimalFtraceEventH\x00\x12_\n\x1dmali_mali_CSF_INTERRUPT_START\x18\xe2\x03 \x01(\x0b\x32\x35.perfetto.protos.MaliMaliCSFINTERRUPTSTARTFtraceEventH\x00\x12[\n\x1bmali_mali_CSF_INTERRUPT_END\x18\xe3\x03 \x01(\x0b\x32\x33.perfetto.protos.MaliMaliCSFINTERRUPTENDFtraceEventH\x00\x12Z\n\x1asamsung_tracing_mark_write\x18\xe4\x03 \x01(\x0b\x32\x33.perfetto.protos.SamsungTracingMarkWriteFtraceEventH\x00\x12\x44\n\x0e\x62inder_command\x18\xe5\x03 \x01(\x0b\x32).perfetto.protos.BinderCommandFtraceEventH\x00\x12\x42\n\rbinder_return\x18\xe6\x03 \x01(\x0b\x32(.perfetto.protos.BinderReturnFtraceEventH\x00\x12R\n\x16sched_switch_with_ctrs\x18\xe7\x03 \x01(\x0b\x32/.perfetto.protos.SchedSwitchWithCtrsFtraceEventH\x00\x12\x45\n\x0fgpu_work_period\x18\xe8\x03 \x01(\x0b\x32).perfetto.protos.GpuWorkPeriodFtraceEventH\x00\x12<\n\nrpm_status\x18\xe9\x03 \x01(\x0b\x32%.perfetto.protos.RpmStatusFtraceEventH\x00\x12M\n\x13panel_write_generic\x18\xea\x03 \x01(\x0b\x32-.perfetto.protos.PanelWriteGenericFtraceEventH\x00\x12K\n\x12sched_migrate_task\x18\xeb\x03 \x01(\x0b\x32,.perfetto.protos.SchedMigrateTaskFtraceEventH\x00\x12S\n\x17\x64pu_dsi_cmd_fifo_status\x18\xec\x03 \x01(\x0b\x32/.perfetto.protos.DpuDsiCmdFifoStatusFtraceEventH\x00\x12;\n\ndpu_dsi_rx\x18\xed\x03 \x01(\x0b\x32$.perfetto.protos.DpuDsiRxFtraceEventH\x00\x12;\n\ndpu_dsi_tx\x18\xee\x03 \x01(\x0b\x32$.perfetto.protos.DpuDsiTxFtraceEventH\x00\x12K\n\x12\x66\x32\x66s_background_gc\x18\xef\x03 \x01(\x0b\x32,.perfetto.protos.F2fsBackgroundGcFtraceEventH\x00\x12\x41\n\rf2fs_gc_begin\x18\xf0\x03 \x01(\x0b\x32\'.perfetto.protos.F2fsGcBeginFtraceEventH\x00\x12=\n\x0b\x66\x32\x66s_gc_end\x18\xf1\x03 \x01(\x0b\x32%.perfetto.protos.F2fsGcEndFtraceEventH\x00\x12G\n\x10\x66\x61strpc_dma_free\x18\xf2\x03 \x01(\x0b\x32*.perfetto.protos.FastrpcDmaFreeFtraceEventH\x00\x12I\n\x11\x66\x61strpc_dma_alloc\x18\xf3\x03 \x01(\x0b\x32+.perfetto.protos.FastrpcDmaAllocFtraceEventH\x00\x12I\n\x11\x66\x61strpc_dma_unmap\x18\xf4\x03 \x01(\x0b\x32+.perfetto.protos.FastrpcDmaUnmapFtraceEventH\x00\x12\x45\n\x0f\x66\x61strpc_dma_map\x18\xf5\x03 \x01(\x0b\x32).perfetto.protos.FastrpcDmaMapFtraceEventH\x00\x12G\n\x10google_icc_event\x18\xf6\x03 \x01(\x0b\x32*.perfetto.protos.GoogleIccEventFtraceEventH\x00\x12G\n\x10google_irm_event\x18\xf7\x03 \x01(\x0b\x32*.perfetto.protos.GoogleIrmEventFtraceEventH\x00\x12V\n\x18\x64\x65vice_pm_callback_start\x18\xf8\x03 \x01(\x0b\x32\x31.perfetto.protos.DevicePmCallbackStartFtraceEventH\x00\x12R\n\x16\x64\x65vice_pm_callback_end\x18\xf9\x03 \x01(\x0b\x32/.perfetto.protos.DevicePmCallbackEndFtraceEventH\x00\x12V\n\x18thermal_exynos_acpm_bulk\x18\xfa\x03 \x01(\x0b\x32\x31.perfetto.protos.ThermalExynosAcpmBulkFtraceEventH\x00\x12g\n!thermal_exynos_acpm_high_overhead\x18\xfb\x03 \x01(\x0b\x32\x39.perfetto.protos.ThermalExynosAcpmHighOverheadFtraceEventH\x00\x12<\n\ndcvsh_freq\x18\xfc\x03 \x01(\x0b\x32%.perfetto.protos.DcvshFreqFtraceEventH\x00\x12K\n\x12kgsl_gpu_frequency\x18\xfd\x03 \x01(\x0b\x32,.perfetto.protos.KgslGpuFrequencyFtraceEventH\x00\x12\x84\x01\n2mali_mali_PM_MCU_HCTL_CORES_DOWN_SCALE_NOTIFY_PEND\x18\xfe\x03 \x01(\x0b\x32\x45.perfetto.protos.MaliMaliPMMCUHCTLCORESDOWNSCALENOTIFYPENDFtraceEventH\x00\x12p\n\'mali_mali_PM_MCU_HCTL_CORES_NOTIFY_PEND\x18\xff\x03 \x01(\x0b\x32<.perfetto.protos.MaliMaliPMMCUHCTLCORESNOTIFYPENDFtraceEventH\x00\x12r\n(mali_mali_PM_MCU_HCTL_CORE_INACTIVE_PEND\x18\x80\x04 \x01(\x0b\x32=.perfetto.protos.MaliMaliPMMCUHCTLCOREINACTIVEPENDFtraceEventH\x00\x12j\n$mali_mali_PM_MCU_HCTL_MCU_ON_RECHECK\x18\x81\x04 \x01(\x0b\x32\x39.perfetto.protos.MaliMaliPMMCUHCTLMCUONRECHECKFtraceEventH\x00\x12w\n+mali_mali_PM_MCU_HCTL_SHADERS_CORE_OFF_PEND\x18\x82\x04 \x01(\x0b\x32?.perfetto.protos.MaliMaliPMMCUHCTLSHADERSCOREOFFPENDFtraceEventH\x00\x12n\n&mali_mali_PM_MCU_HCTL_SHADERS_PEND_OFF\x18\x83\x04 \x01(\x0b\x32;.perfetto.protos.MaliMaliPMMCUHCTLSHADERSPENDOFFFtraceEventH\x00\x12l\n%mali_mali_PM_MCU_HCTL_SHADERS_PEND_ON\x18\x84\x04 \x01(\x0b\x32:.perfetto.protos.MaliMaliPMMCUHCTLSHADERSPENDONFtraceEventH\x00\x12p\n\'mali_mali_PM_MCU_HCTL_SHADERS_READY_OFF\x18\x85\x04 \x01(\x0b\x32<.perfetto.protos.MaliMaliPMMCUHCTLSHADERSREADYOFFFtraceEventH\x00\x12V\n\x19mali_mali_PM_MCU_IN_SLEEP\x18\x86\x04 \x01(\x0b\x32\x30.perfetto.protos.MaliMaliPMMCUINSLEEPFtraceEventH\x00\x12M\n\x14mali_mali_PM_MCU_OFF\x18\x87\x04 \x01(\x0b\x32,.perfetto.protos.MaliMaliPMMCUOFFFtraceEventH\x00\x12K\n\x13mali_mali_PM_MCU_ON\x18\x88\x04 \x01(\x0b\x32+.perfetto.protos.MaliMaliPMMCUONFtraceEventH\x00\x12s\n)mali_mali_PM_MCU_ON_CORE_ATTR_UPDATE_PEND\x18\x89\x04 \x01(\x0b\x32=.perfetto.protos.MaliMaliPMMCUONCOREATTRUPDATEPENDFtraceEventH\x00\x12h\n#mali_mali_PM_MCU_ON_GLB_REINIT_PEND\x18\x8a\x04 \x01(\x0b\x32\x38.perfetto.protos.MaliMaliPMMCUONGLBREINITPENDFtraceEventH\x00\x12T\n\x18mali_mali_PM_MCU_ON_HALT\x18\x8b\x04 \x01(\x0b\x32/.perfetto.protos.MaliMaliPMMCUONHALTFtraceEventH\x00\x12\x65\n!mali_mali_PM_MCU_ON_HWCNT_DISABLE\x18\x8c\x04 \x01(\x0b\x32\x37.perfetto.protos.MaliMaliPMMCUONHWCNTDISABLEFtraceEventH\x00\x12\x63\n mali_mali_PM_MCU_ON_HWCNT_ENABLE\x18\x8d\x04 \x01(\x0b\x32\x36.perfetto.protos.MaliMaliPMMCUONHWCNTENABLEFtraceEventH\x00\x12]\n\x1dmali_mali_PM_MCU_ON_PEND_HALT\x18\x8e\x04 \x01(\x0b\x32\x33.perfetto.protos.MaliMaliPMMCUONPENDHALTFtraceEventH\x00\x12_\n\x1emali_mali_PM_MCU_ON_PEND_SLEEP\x18\x8f\x04 \x01(\x0b\x32\x34.perfetto.protos.MaliMaliPMMCUONPENDSLEEPFtraceEventH\x00\x12g\n\"mali_mali_PM_MCU_ON_SLEEP_INITIATE\x18\x90\x04 \x01(\x0b\x32\x38.perfetto.protos.MaliMaliPMMCUONSLEEPINITIATEFtraceEventH\x00\x12V\n\x19mali_mali_PM_MCU_PEND_OFF\x18\x91\x04 \x01(\x0b\x32\x30.perfetto.protos.MaliMaliPMMCUPENDOFFFtraceEventH\x00\x12\x61\n\x1fmali_mali_PM_MCU_PEND_ON_RELOAD\x18\x92\x04 \x01(\x0b\x32\x35.perfetto.protos.MaliMaliPMMCUPENDONRELOADFtraceEventH\x00\x12Z\n\x1bmali_mali_PM_MCU_POWER_DOWN\x18\x93\x04 \x01(\x0b\x32\x32.perfetto.protos.MaliMaliPMMCUPOWERDOWNFtraceEventH\x00\x12Z\n\x1bmali_mali_PM_MCU_RESET_WAIT\x18\x94\x04 \x01(\x0b\x32\x32.perfetto.protos.MaliMaliPMMCURESETWAITFtraceEventH\x00\x12\x45\n\x0f\x62\x63l_irq_trigger\x18\x95\x04 \x01(\x0b\x32).perfetto.protos.BclIrqTriggerFtraceEventH\x00\x12\\\n\x1bkgsl_adreno_cmdbatch_queued\x18\x96\x04 \x01(\x0b\x32\x34.perfetto.protos.KgslAdrenoCmdbatchQueuedFtraceEventH\x00\x12\x62\n\x1ekgsl_adreno_cmdbatch_submitted\x18\x97\x04 \x01(\x0b\x32\x37.perfetto.protos.KgslAdrenoCmdbatchSubmittedFtraceEventH\x00\x12X\n\x19kgsl_adreno_cmdbatch_sync\x18\x98\x04 \x01(\x0b\x32\x32.perfetto.protos.KgslAdrenoCmdbatchSyncFtraceEventH\x00\x12^\n\x1ckgsl_adreno_cmdbatch_retired\x18\x99\x04 \x01(\x0b\x32\x35.perfetto.protos.KgslAdrenoCmdbatchRetiredFtraceEventH\x00\x12N\n\x14pixel_mm_kswapd_wake\x18\x9a\x04 \x01(\x0b\x32-.perfetto.protos.PixelMmKswapdWakeFtraceEventH\x00\x12N\n\x14pixel_mm_kswapd_done\x18\x9b\x04 \x01(\x0b\x32-.perfetto.protos.PixelMmKswapdDoneFtraceEventH\x00\x12R\n\x16sched_wakeup_task_attr\x18\x9c\x04 \x01(\x0b\x32/.perfetto.protos.SchedWakeupTaskAttrFtraceEventH\x00\x12J\n\x11\x64\x65vfreq_frequency\x18\x9d\x04 \x01(\x0b\x32,.perfetto.protos.DevfreqFrequencyFtraceEventH\x00\x12\x35\n\x0ckprobe_event\x18\x9e\x04 \x01(\x0b\x32\x1c.perfetto.protos.KprobeEventH\x00\x12L\n\x13param_set_value_cpm\x18\x9f\x04 \x01(\x0b\x32,.perfetto.protos.ParamSetValueCpmFtraceEventH\x00\x12=\n\x0b\x64o_sys_open\x18\xa0\x04 \x01(\x0b\x32%.perfetto.protos.DoSysOpenFtraceEventH\x00\x12:\n\topen_exec\x18\xa1\x04 \x01(\x0b\x32$.perfetto.protos.OpenExecFtraceEventH\x00\x12\x43\n\x0e\x62lock_io_start\x18\xa2\x04 \x01(\x0b\x32(.perfetto.protos.BlockIoStartFtraceEventH\x00\x12\x41\n\rblock_io_done\x18\xa3\x04 \x01(\x0b\x32\'.perfetto.protos.BlockIoDoneFtraceEventH\x00\x12N\n\x14mali_gpu_power_state\x18\xa4\x04 \x01(\x0b\x32-.perfetto.protos.MaliGpuPowerStateFtraceEventH\x00\x12P\n\x15\x64pu_disp_dpu_underrun\x18\xa5\x04 \x01(\x0b\x32..perfetto.protos.DpuDispDpuUnderrunFtraceEventH\x00\x12Y\n\x1a\x64pu_disp_vblank_irq_enable\x18\xa6\x04 \x01(\x0b\x32\x32.perfetto.protos.DpuDispVblankIrqEnableFtraceEventH\x00\x12\x42\n\rhrtimer_start\x18\xa7\x04 \x01(\x0b\x32(.perfetto.protos.HrtimerStartFtraceEventH\x00\x12\x44\n\x0ehrtimer_cancel\x18\xa8\x04 \x01(\x0b\x32).perfetto.protos.HrtimerCancelFtraceEventH\x00\x12O\n\x14hrtimer_expire_entry\x18\xa9\x04 \x01(\x0b\x32..perfetto.protos.HrtimerExpireEntryFtraceEventH\x00\x12M\n\x13hrtimer_expire_exit\x18\xaa\x04 \x01(\x0b\x32-.perfetto.protos.HrtimerExpireExitFtraceEventH\x00\x12>\n\x0btimer_start\x18\xab\x04 \x01(\x0b\x32&.perfetto.protos.TimerStartFtraceEventH\x00\x12@\n\x0ctimer_cancel\x18\xac\x04 \x01(\x0b\x32\'.perfetto.protos.TimerCancelFtraceEventH\x00\x12K\n\x12timer_expire_entry\x18\xad\x04 \x01(\x0b\x32,.perfetto.protos.TimerExpireEntryFtraceEventH\x00\x12I\n\x11timer_expire_exit\x18\xae\x04 \x01(\x0b\x32+.perfetto.protos.TimerExpireExitFtraceEventH\x00\x12I\n\x11local_timer_entry\x18\xaf\x04 \x01(\x0b\x32+.perfetto.protos.LocalTimerEntryFtraceEventH\x00\x12G\n\x10local_timer_exit\x18\xb0\x04 \x01(\x0b\x32*.perfetto.protos.LocalTimerExitFtraceEventH\x00\x12K\n\x12\x64wc3_alloc_request\x18\xb1\x04 \x01(\x0b\x32,.perfetto.protos.Dwc3AllocRequestFtraceEventH\x00\x12I\n\x11\x64wc3_complete_trb\x18\xb2\x04 \x01(\x0b\x32+.perfetto.protos.Dwc3CompleteTrbFtraceEventH\x00\x12\x41\n\rdwc3_ctrl_req\x18\xb3\x04 \x01(\x0b\x32\'.perfetto.protos.Dwc3CtrlReqFtraceEventH\x00\x12\x45\n\x0f\x64wc3_ep_dequeue\x18\xb4\x04 \x01(\x0b\x32).perfetto.protos.Dwc3EpDequeueFtraceEventH\x00\x12\x41\n\rdwc3_ep_queue\x18\xb5\x04 \x01(\x0b\x32\'.perfetto.protos.Dwc3EpQueueFtraceEventH\x00\x12<\n\ndwc3_event\x18\xb6\x04 \x01(\x0b\x32%.perfetto.protos.Dwc3EventFtraceEventH\x00\x12I\n\x11\x64wc3_free_request\x18\xb7\x04 \x01(\x0b\x32+.perfetto.protos.Dwc3FreeRequestFtraceEventH\x00\x12J\n\x12\x64wc3_gadget_ep_cmd\x18\xb8\x04 \x01(\x0b\x32+.perfetto.protos.Dwc3GadgetEpCmdFtraceEventH\x00\x12R\n\x16\x64wc3_gadget_ep_disable\x18\xb9\x04 \x01(\x0b\x32/.perfetto.protos.Dwc3GadgetEpDisableFtraceEventH\x00\x12P\n\x15\x64wc3_gadget_ep_enable\x18\xba\x04 \x01(\x0b\x32..perfetto.protos.Dwc3GadgetEpEnableFtraceEventH\x00\x12T\n\x17\x64wc3_gadget_generic_cmd\x18\xbb\x04 \x01(\x0b\x32\x30.perfetto.protos.Dwc3GadgetGenericCmdFtraceEventH\x00\x12O\n\x14\x64wc3_gadget_giveback\x18\xbc\x04 \x01(\x0b\x32..perfetto.protos.Dwc3GadgetGivebackFtraceEventH\x00\x12G\n\x10\x64wc3_prepare_trb\x18\xbd\x04 \x01(\x0b\x32*.perfetto.protos.Dwc3PrepareTrbFtraceEventH\x00\x12<\n\ndwc3_readl\x18\xbe\x04 \x01(\x0b\x32%.perfetto.protos.Dwc3ReadlFtraceEventH\x00\x12>\n\x0b\x64wc3_writel\x18\xbf\x04 \x01(\x0b\x32&.perfetto.protos.Dwc3WritelFtraceEventH\x00\x12G\n\x10\x63ma_alloc_finish\x18\xc0\x04 \x01(\x0b\x32*.perfetto.protos.CmaAllocFinishFtraceEventH\x00\x12h\n\"mm_alloc_contig_migrate_range_info\x18\xc1\x04 \x01(\x0b\x32\x39.perfetto.protos.MmAllocContigMigrateRangeInfoFtraceEventH\x00\x12\x41\n\rhost_ffa_call\x18\xc2\x04 \x01(\x0b\x32\'.perfetto.protos.HostFfaCallFtraceEventH\x00\x12\x45\n\x0f\x64mabuf_rss_stat\x18\xc3\x04 \x01(\x0b\x32).perfetto.protos.DmabufRssStatFtraceEventH\x00\x12>\n\x0biommu_idmap\x18\xc4\x04 \x01(\x0b\x32&.perfetto.protos.IommuIdmapFtraceEventH\x00\x12G\n\x10psci_mem_protect\x18\xc5\x04 \x01(\x0b\x32*.perfetto.protos.PsciMemProtectFtraceEventH\x00\x12Q\n\x15hypervisor_host_hcall\x18\xc6\x04 \x01(\x0b\x32/.perfetto.protos.HypervisorHostHcallFtraceEventH\x00\x12M\n\x13hypervisor_host_smc\x18\xc7\x04 \x01(\x0b\x32-.perfetto.protos.HypervisorHostSmcFtraceEventH\x00\x12M\n\x13hypervisor_hyp_exit\x18\xc8\x04 \x01(\x0b\x32-.perfetto.protos.HypervisorHypExitFtraceEventH\x00\x12S\n\x16hypervisor_iommu_idmap\x18\xc9\x04 \x01(\x0b\x32\x30.perfetto.protos.HypervisorIommuIdmapFtraceEventH\x00\x12\\\n\x1bhypervisor_psci_mem_protect\x18\xca\x04 \x01(\x0b\x32\x34.perfetto.protos.HypervisorPsciMemProtectFtraceEventH\x00\x12X\n\x19hypervisor_host_mem_abort\x18\xcb\x04 \x01(\x0b\x32\x32.perfetto.protos.HypervisorHostMemAbortFtraceEventH\x00\x12O\n\x14hypervisor_hyp_enter\x18\xcc\x04 \x01(\x0b\x32..perfetto.protos.HypervisorHypEnterFtraceEventH\x00\x12\x64\n\x1fhypervisor_iommu_idmap_complete\x18\xcd\x04 \x01(\x0b\x32\x38.perfetto.protos.HypervisorIommuIdmapCompleteFtraceEventH\x00\x12^\n\x1chypervisor_vcpu_illegal_trap\x18\xce\x04 \x01(\x0b\x32\x35.perfetto.protos.HypervisorVcpuIllegalTrapFtraceEventH\x00\x12O\n\x15\x64rm_sched_job_add_dep\x18\xcf\x04 \x01(\x0b\x32-.perfetto.protos.DrmSchedJobAddDepFtraceEventH\x00\x12J\n\x12\x64rm_sched_job_done\x18\xd0\x04 \x01(\x0b\x32+.perfetto.protos.DrmSchedJobDoneFtraceEventH\x00\x12L\n\x13\x64rm_sched_job_queue\x18\xd1\x04 \x01(\x0b\x32,.perfetto.protos.DrmSchedJobQueueFtraceEventH\x00\x12H\n\x11\x64rm_sched_job_run\x18\xd2\x04 \x01(\x0b\x32*.perfetto.protos.DrmSchedJobRunFtraceEventH\x00\x12\\\n\x1b\x64rm_sched_job_unschedulable\x18\xd3\x04 \x01(\x0b\x32\x34.perfetto.protos.DrmSchedJobUnschedulableFtraceEventH\x00\x12Q\n\x15\x66wtp_perfetto_counter\x18\xd4\x04 \x01(\x0b\x32/.perfetto.protos.FwtpPerfettoCounterFtraceEventH\x00\x12T\n\x17scsi_dispatch_cmd_error\x18\xd5\x04 \x01(\x0b\x32\x30.perfetto.protos.ScsiDispatchCmdErrorFtraceEventH\x00\x12X\n\x19scsi_dispatch_cmd_timeout\x18\xd6\x04 \x01(\x0b\x32\x32.perfetto.protos.ScsiDispatchCmdTimeoutFtraceEventH\x00\x12\x43\n\x0escsi_eh_wakeup\x18\xd7\x04 \x01(\x0b\x32(.perfetto.protos.ScsiEhWakeupFtraceEventH\x00\x42\x07\n\x05\x65ventJ\x08\x08\x80\x80\x04\x10\x81\x80\x08\"\xc1\x01\n\x0e\x46traceCpuStats\x12\x0b\n\x03\x63pu\x18\x01 \x01(\x04\x12\x0f\n\x07\x65ntries\x18\x02 \x01(\x04\x12\x0f\n\x07overrun\x18\x03 \x01(\x04\x12\x16\n\x0e\x63ommit_overrun\x18\x04 \x01(\x04\x12\x12\n\nbytes_read\x18\x05 \x01(\x04\x12\x17\n\x0foldest_event_ts\x18\x06 \x01(\x01\x12\x0e\n\x06now_ts\x18\x07 \x01(\x01\x12\x16\n\x0e\x64ropped_events\x18\x08 \x01(\x04\x12\x13\n\x0bread_events\x18\t \x01(\x04\"1\n\x11\x46traceKprobeStats\x12\x0c\n\x04hits\x18\x01 \x01(\x03\x12\x0e\n\x06misses\x18\x02 \x01(\x03\"\xc7\x04\n\x0b\x46traceStats\x12\x31\n\x05phase\x18\x01 \x01(\x0e\x32\".perfetto.protos.FtraceStats.Phase\x12\x32\n\tcpu_stats\x18\x02 \x03(\x0b\x32\x1f.perfetto.protos.FtraceCpuStats\x12\x1d\n\x15kernel_symbols_parsed\x18\x03 \x01(\r\x12\x1d\n\x15kernel_symbols_mem_kb\x18\x04 \x01(\r\x12\x15\n\ratrace_errors\x18\x05 \x01(\t\x12\x1f\n\x17\x65xclusive_feature_error\x18\r \x01(\t\x12\x1d\n\x15unknown_ftrace_events\x18\x06 \x03(\t\x12\x1c\n\x14\x66\x61iled_ftrace_events\x18\x07 \x03(\t\x12\x1e\n\x16preserve_ftrace_buffer\x18\x08 \x01(\x08\x12?\n\x13\x66trace_parse_errors\x18\t \x03(\x0e\x32\".perfetto.protos.FtraceParseStatus\x12\x38\n\x0ckprobe_stats\x18\n \x01(\x0b\x32\".perfetto.protos.FtraceKprobeStats\x12\x1d\n\x15\x63pu_buffer_size_pages\x18\x0b \x01(\r\x12$\n\x1c\x63\x61\x63hed_cpu_buffer_size_pages\x18\x0c \x01(\r\">\n\x05Phase\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x12\n\x0eSTART_OF_TRACE\x10\x01\x12\x10\n\x0c\x45ND_OF_TRACE\x10\x02\"\xb8\x08\n\x11\x46traceEventBundle\x12\x0b\n\x03\x63pu\x18\x01 \x01(\r\x12+\n\x05\x65vent\x18\x02 \x03(\x0b\x32\x1c.perfetto.protos.FtraceEvent\x12\x13\n\x0blost_events\x18\x03 \x01(\x08\x12\x46\n\rcompact_sched\x18\x04 \x01(\x0b\x32/.perfetto.protos.FtraceEventBundle.CompactSched\x12\x32\n\x0c\x66trace_clock\x18\x05 \x01(\x0e\x32\x1c.perfetto.protos.FtraceClock\x12\x18\n\x10\x66trace_timestamp\x18\x06 \x01(\x03\x12\x16\n\x0e\x62oot_timestamp\x18\x07 \x01(\x03\x12=\n\x05\x65rror\x18\x08 \x03(\x0b\x32..perfetto.protos.FtraceEventBundle.FtraceError\x12!\n\x19last_read_event_timestamp\x18\t \x01(\x04\x12%\n\x1dprevious_bundle_end_timestamp\x18\n \x01(\x04\x12\\\n\x19generic_event_descriptors\x18\x0b \x03(\x0b\x32\x39.perfetto.protos.FtraceEventBundle.GenericEventDescriptor\x12\x1e\n\x15\x62roken_abi_trace_page\x18\x80\x04 \x01(\x0c\x1a\xee\x02\n\x0c\x43ompactSched\x12\x14\n\x0cintern_table\x18\x05 \x03(\t\x12\x1c\n\x10switch_timestamp\x18\x01 \x03(\x04\x42\x02\x10\x01\x12\x1d\n\x11switch_prev_state\x18\x02 \x03(\x03\x42\x02\x10\x01\x12\x1b\n\x0fswitch_next_pid\x18\x03 \x03(\x05\x42\x02\x10\x01\x12\x1c\n\x10switch_next_prio\x18\x04 \x03(\x05\x42\x02\x10\x01\x12\"\n\x16switch_next_comm_index\x18\x06 \x03(\rB\x02\x10\x01\x12\x1c\n\x10waking_timestamp\x18\x07 \x03(\x04\x42\x02\x10\x01\x12\x16\n\nwaking_pid\x18\x08 \x03(\x05\x42\x02\x10\x01\x12\x1d\n\x11waking_target_cpu\x18\t \x03(\x05\x42\x02\x10\x01\x12\x17\n\x0bwaking_prio\x18\n \x03(\x05\x42\x02\x10\x01\x12\x1d\n\x11waking_comm_index\x18\x0b \x03(\rB\x02\x10\x01\x12\x1f\n\x13waking_common_flags\x18\x0c \x03(\rB\x02\x10\x01\x1aT\n\x0b\x46traceError\x12\x11\n\ttimestamp\x18\x01 \x01(\x04\x12\x32\n\x06status\x18\x02 \x01(\x0e\x32\".perfetto.protos.FtraceParseStatus\x1aX\n\x16GenericEventDescriptor\x12\x10\n\x08\x66ield_id\x18\x01 \x01(\x05\x12\x12\n\ngroup_name\x18\x03 \x01(\t\x12\x18\n\x10\x65vent_descriptor\x18\x02 \x01(\x0c\">\n\x1eGenericKernelCpuFrequencyEvent\x12\x0b\n\x03\x63pu\x18\x01 \x01(\x05\x12\x0f\n\x07\x66req_hz\x18\x02 \x01(\x03\"\xa2\x03\n\x1bGenericKernelTaskStateEvent\x12\x0b\n\x03\x63pu\x18\x01 \x01(\x05\x12\x0c\n\x04\x63omm\x18\x02 \x01(\t\x12\x0b\n\x03tid\x18\x03 \x01(\x03\x12I\n\x05state\x18\x04 \x01(\x0e\x32:.perfetto.protos.GenericKernelTaskStateEvent.TaskStateEnum\x12\x0c\n\x04prio\x18\x05 \x01(\x05\"\x81\x02\n\rTaskStateEnum\x12\x16\n\x12TASK_STATE_UNKNOWN\x10\x00\x12\x16\n\x12TASK_STATE_CREATED\x10\x01\x12\x17\n\x13TASK_STATE_RUNNABLE\x10\x02\x12\x16\n\x12TASK_STATE_RUNNING\x10\x03\x12\"\n\x1eTASK_STATE_INTERRUPTIBLE_SLEEP\x10\x04\x12$\n TASK_STATE_UNINTERRUPTIBLE_SLEEP\x10\x05\x12\x16\n\x12TASK_STATE_STOPPED\x10\x06\x12\x13\n\x0fTASK_STATE_DEAD\x10\x07\x12\x18\n\x14TASK_STATE_DESTROYED\x10\x08\"9\n\x1cGenericKernelTaskRenameEvent\x12\x0b\n\x03tid\x18\x01 \x01(\x03\x12\x0c\n\x04\x63omm\x18\x02 \x01(\t\"\xa4\x02\n\x18GenericKernelProcessTree\x12\x44\n\tprocesses\x18\x01 \x03(\x0b\x32\x31.perfetto.protos.GenericKernelProcessTree.Process\x12\x41\n\x07threads\x18\x02 \x03(\x0b\x32\x30.perfetto.protos.GenericKernelProcessTree.Thread\x1aH\n\x06Thread\x12\x0b\n\x03tid\x18\x01 \x01(\x03\x12\x0b\n\x03pid\x18\x02 \x01(\x03\x12\x0c\n\x04\x63omm\x18\x03 \x01(\t\x12\x16\n\x0eis_main_thread\x18\x04 \x01(\x08\x1a\x35\n\x07Process\x12\x0b\n\x03pid\x18\x01 \x01(\x03\x12\x0c\n\x04ppid\x18\x02 \x01(\x03\x12\x0f\n\x07\x63mdline\x18\x03 \x01(\t\"\xfb\x01\n\x0fGpuCounterEvent\x12\x41\n\x12\x63ounter_descriptor\x18\x01 \x01(\x0b\x32%.perfetto.protos.GpuCounterDescriptor\x12=\n\x08\x63ounters\x18\x02 \x03(\x0b\x32+.perfetto.protos.GpuCounterEvent.GpuCounter\x12\x0e\n\x06gpu_id\x18\x03 \x01(\x05\x1aV\n\nGpuCounter\x12\x12\n\ncounter_id\x18\x01 \x01(\r\x12\x13\n\tint_value\x18\x02 \x01(\x03H\x00\x12\x16\n\x0c\x64ouble_value\x18\x03 \x01(\x01H\x00\x42\x07\n\x05value\"\x84\x02\n\x06GpuLog\x12\x32\n\x08severity\x18\x01 \x01(\x0e\x32 .perfetto.protos.GpuLog.Severity\x12\x0b\n\x03tag\x18\x02 \x01(\t\x12\x13\n\x0blog_message\x18\x03 \x01(\t\"\xa3\x01\n\x08Severity\x12\x1c\n\x18LOG_SEVERITY_UNSPECIFIED\x10\x00\x12\x18\n\x14LOG_SEVERITY_VERBOSE\x10\x01\x12\x16\n\x12LOG_SEVERITY_DEBUG\x10\x02\x12\x15\n\x11LOG_SEVERITY_INFO\x10\x03\x12\x18\n\x14LOG_SEVERITY_WARNING\x10\x04\x12\x16\n\x12LOG_SEVERITY_ERROR\x10\x05\"\x97\x07\n\x13GpuRenderStageEvent\x12\x10\n\x08\x65vent_id\x18\x01 \x01(\x04\x12\x10\n\x08\x64uration\x18\x02 \x01(\x04\x12\x14\n\x0chw_queue_iid\x18\r \x01(\x04\x12\x11\n\tstage_iid\x18\x0e \x01(\x04\x12\x0e\n\x06gpu_id\x18\x0b \x01(\x05\x12\x0f\n\x07\x63ontext\x18\x05 \x01(\x04\x12\x1c\n\x14render_target_handle\x18\x08 \x01(\x04\x12\x15\n\rsubmission_id\x18\n \x01(\r\x12\x42\n\nextra_data\x18\x06 \x03(\x0b\x32..perfetto.protos.GpuRenderStageEvent.ExtraData\x12\x1a\n\x12render_pass_handle\x18\t \x01(\x04\x12\x1f\n\x17render_pass_instance_id\x18\x10 \x01(\x04\x12!\n\x19render_subpass_index_mask\x18\x0f \x03(\x04\x12\x1d\n\x15\x63ommand_buffer_handle\x18\x0c \x01(\x04\x12O\n\x0especifications\x18\x07 \x01(\x0b\x32\x33.perfetto.protos.GpuRenderStageEvent.SpecificationsB\x02\x18\x01\x12\x17\n\x0bhw_queue_id\x18\x03 \x01(\x05\x42\x02\x18\x01\x12\x14\n\x08stage_id\x18\x04 \x01(\x05\x42\x02\x18\x01\x1a(\n\tExtraData\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x1a\xe9\x02\n\x0eSpecifications\x12U\n\x0c\x63ontext_spec\x18\x01 \x01(\x0b\x32?.perfetto.protos.GpuRenderStageEvent.Specifications.ContextSpec\x12Q\n\x08hw_queue\x18\x02 \x03(\x0b\x32?.perfetto.protos.GpuRenderStageEvent.Specifications.Description\x12N\n\x05stage\x18\x03 \x03(\x0b\x32?.perfetto.protos.GpuRenderStageEvent.Specifications.Description\x1a+\n\x0b\x43ontextSpec\x12\x0f\n\x07\x63ontext\x18\x01 \x01(\x04\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x1a\x30\n\x0b\x44\x65scription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t*\x04\x08\x64\x10\x65\"\xaa\x01\n\x17InternedGraphicsContext\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x39\n\x03\x61pi\x18\x03 \x01(\x0e\x32,.perfetto.protos.InternedGraphicsContext.Api\":\n\x03\x41pi\x12\r\n\tUNDEFINED\x10\x00\x12\x0b\n\x07OPEN_GL\x10\x01\x12\n\n\x06VULKAN\x10\x02\x12\x0b\n\x07OPEN_CL\x10\x03\"\xee\x01\n#InternedGpuRenderStageSpecification\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12Z\n\x08\x63\x61tegory\x18\x04 \x01(\x0e\x32H.perfetto.protos.InternedGpuRenderStageSpecification.RenderStageCategory\";\n\x13RenderStageCategory\x12\t\n\x05OTHER\x10\x00\x12\x0c\n\x08GRAPHICS\x10\x01\x12\x0b\n\x07\x43OMPUTE\x10\x02\"\xbb\x03\n\x0eVulkanApiEvent\x12\\\n\x1avk_debug_utils_object_name\x18\x01 \x01(\x0b\x32\x36.perfetto.protos.VulkanApiEvent.VkDebugUtilsObjectNameH\x00\x12H\n\x0fvk_queue_submit\x18\x02 \x01(\x0b\x32-.perfetto.protos.VulkanApiEvent.VkQueueSubmitH\x00\x1ar\n\x16VkDebugUtilsObjectName\x12\x0b\n\x03pid\x18\x01 \x01(\r\x12\x11\n\tvk_device\x18\x02 \x01(\x04\x12\x13\n\x0bobject_type\x18\x03 \x01(\x05\x12\x0e\n\x06object\x18\x04 \x01(\x04\x12\x13\n\x0bobject_name\x18\x05 \x01(\t\x1a\x83\x01\n\rVkQueueSubmit\x12\x13\n\x0b\x64uration_ns\x18\x01 \x01(\x04\x12\x0b\n\x03pid\x18\x02 \x01(\r\x12\x0b\n\x03tid\x18\x03 \x01(\r\x12\x10\n\x08vk_queue\x18\x04 \x01(\x04\x12\x1a\n\x12vk_command_buffers\x18\x05 \x03(\x04\x12\x15\n\rsubmission_id\x18\x06 \x01(\rB\x07\n\x05\x65vent\"z\n\x1bVulkanMemoryEventAnnotation\x12\x0f\n\x07key_iid\x18\x01 \x01(\x04\x12\x13\n\tint_value\x18\x02 \x01(\x03H\x00\x12\x16\n\x0c\x64ouble_value\x18\x03 \x01(\x01H\x00\x12\x14\n\nstring_iid\x18\x04 \x01(\x04H\x00\x42\x07\n\x05value\"\xe8\x06\n\x11VulkanMemoryEvent\x12\x39\n\x06source\x18\x01 \x01(\x0e\x32).perfetto.protos.VulkanMemoryEvent.Source\x12?\n\toperation\x18\x02 \x01(\x0e\x32,.perfetto.protos.VulkanMemoryEvent.Operation\x12\x11\n\ttimestamp\x18\x03 \x01(\x03\x12\x0b\n\x03pid\x18\x04 \x01(\r\x12\x16\n\x0ememory_address\x18\x05 \x01(\x06\x12\x13\n\x0bmemory_size\x18\x06 \x01(\x04\x12\x12\n\ncaller_iid\x18\x07 \x01(\x04\x12L\n\x10\x61llocation_scope\x18\x08 \x01(\x0e\x32\x32.perfetto.protos.VulkanMemoryEvent.AllocationScope\x12\x41\n\x0b\x61nnotations\x18\t \x03(\x0b\x32,.perfetto.protos.VulkanMemoryEventAnnotation\x12\x0e\n\x06\x64\x65vice\x18\x10 \x01(\x06\x12\x15\n\rdevice_memory\x18\x11 \x01(\x06\x12\x13\n\x0bmemory_type\x18\x12 \x01(\r\x12\x0c\n\x04heap\x18\x13 \x01(\r\x12\x15\n\robject_handle\x18\x14 \x01(\x06\"\x85\x01\n\x06Source\x12\x16\n\x12SOURCE_UNSPECIFIED\x10\x00\x12\x11\n\rSOURCE_DRIVER\x10\x01\x12\x11\n\rSOURCE_DEVICE\x10\x02\x12\x18\n\x14SOURCE_DEVICE_MEMORY\x10\x03\x12\x11\n\rSOURCE_BUFFER\x10\x04\x12\x10\n\x0cSOURCE_IMAGE\x10\x05\"u\n\tOperation\x12\x12\n\x0eOP_UNSPECIFIED\x10\x00\x12\r\n\tOP_CREATE\x10\x01\x12\x0e\n\nOP_DESTROY\x10\x02\x12\x0b\n\x07OP_BIND\x10\x03\x12\x14\n\x10OP_DESTROY_BOUND\x10\x04\x12\x12\n\x0eOP_ANNOTATIONS\x10\x05\"\x84\x01\n\x0f\x41llocationScope\x12\x15\n\x11SCOPE_UNSPECIFIED\x10\x00\x12\x11\n\rSCOPE_COMMAND\x10\x01\x12\x10\n\x0cSCOPE_OBJECT\x10\x02\x12\x0f\n\x0bSCOPE_CACHE\x10\x03\x12\x10\n\x0cSCOPE_DEVICE\x10\x04\x12\x12\n\x0eSCOPE_INSTANCE\x10\x05\"*\n\x0eInternedString\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x0b\n\x03str\x18\x02 \x01(\x0c\"L\n\x04Line\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12\x18\n\x10source_file_name\x18\x02 \x01(\t\x12\x13\n\x0bline_number\x18\x03 \x01(\r\"G\n\x0e\x41\x64\x64ressSymbols\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04\x12$\n\x05lines\x18\x02 \x03(\x0b\x32\x15.perfetto.protos.Line\"i\n\rModuleSymbols\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x10\n\x08\x62uild_id\x18\x02 \x01(\t\x12\x38\n\x0f\x61\x64\x64ress_symbols\x18\x03 \x03(\x0b\x32\x1f.perfetto.protos.AddressSymbols\"\x9c\x01\n\x07Mapping\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x10\n\x08\x62uild_id\x18\x02 \x01(\x04\x12\x14\n\x0c\x65xact_offset\x18\x08 \x01(\x04\x12\x14\n\x0cstart_offset\x18\x03 \x01(\x04\x12\r\n\x05start\x18\x04 \x01(\x04\x12\x0b\n\x03\x65nd\x18\x05 \x01(\x04\x12\x11\n\tload_bias\x18\x06 \x01(\x04\x12\x17\n\x0fpath_string_ids\x18\x07 \x03(\x04\"\x80\x01\n\x05\x46rame\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x18\n\x10\x66unction_name_id\x18\x02 \x01(\x04\x12\x12\n\nmapping_id\x18\x03 \x01(\x04\x12\x0e\n\x06rel_pc\x18\x04 \x01(\x04\x12\x17\n\x0fsource_path_iid\x18\x05 \x01(\x04\x12\x13\n\x0bline_number\x18\x06 \x01(\r\"+\n\tCallstack\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x11\n\tframe_ids\x18\x02 \x03(\x04\"*\n\rHistogramName\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"Z\n\x15\x43hromeHistogramSample\x12\x11\n\tname_hash\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06sample\x18\x03 \x01(\x03\x12\x10\n\x08name_iid\x18\x04 \x01(\x04\"\xac\x07\n\x0f\x44\x65\x62ugAnnotation\x12\x12\n\x08name_iid\x18\x01 \x01(\x04H\x00\x12\x0e\n\x04name\x18\n \x01(\tH\x00\x12\x14\n\nbool_value\x18\x02 \x01(\x08H\x01\x12\x14\n\nuint_value\x18\x03 \x01(\x04H\x01\x12\x13\n\tint_value\x18\x04 \x01(\x03H\x01\x12\x16\n\x0c\x64ouble_value\x18\x05 \x01(\x01H\x01\x12\x17\n\rpointer_value\x18\x07 \x01(\x04H\x01\x12\x44\n\x0cnested_value\x18\x08 \x01(\x0b\x32,.perfetto.protos.DebugAnnotation.NestedValueH\x01\x12\x1b\n\x11legacy_json_value\x18\t \x01(\tH\x01\x12\x16\n\x0cstring_value\x18\x06 \x01(\tH\x01\x12\x1a\n\x10string_value_iid\x18\x11 \x01(\x04H\x01\x12\x19\n\x0fproto_type_name\x18\x10 \x01(\tH\x02\x12\x1d\n\x13proto_type_name_iid\x18\r \x01(\x04H\x02\x12\x13\n\x0bproto_value\x18\x0e \x01(\x0c\x12\x36\n\x0c\x64ict_entries\x18\x0b \x03(\x0b\x32 .perfetto.protos.DebugAnnotation\x12\x36\n\x0c\x61rray_values\x18\x0c \x03(\x0b\x32 .perfetto.protos.DebugAnnotation\x1a\xfc\x02\n\x0bNestedValue\x12L\n\x0bnested_type\x18\x01 \x01(\x0e\x32\x37.perfetto.protos.DebugAnnotation.NestedValue.NestedType\x12\x11\n\tdict_keys\x18\x02 \x03(\t\x12\x41\n\x0b\x64ict_values\x18\x03 \x03(\x0b\x32,.perfetto.protos.DebugAnnotation.NestedValue\x12\x42\n\x0c\x61rray_values\x18\x04 \x03(\x0b\x32,.perfetto.protos.DebugAnnotation.NestedValue\x12\x11\n\tint_value\x18\x05 \x01(\x03\x12\x14\n\x0c\x64ouble_value\x18\x06 \x01(\x01\x12\x12\n\nbool_value\x18\x07 \x01(\x08\x12\x14\n\x0cstring_value\x18\x08 \x01(\t\"2\n\nNestedType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x08\n\x04\x44ICT\x10\x01\x12\t\n\x05\x41RRAY\x10\x02\x42\x0c\n\nname_fieldB\x07\n\x05valueB\x17\n\x15proto_type_descriptor\"0\n\x13\x44\x65\x62ugAnnotationName\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"9\n\x1c\x44\x65\x62ugAnnotationValueTypeName\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"\x83\x02\n\nLogMessage\x12\x1b\n\x13source_location_iid\x18\x01 \x01(\x04\x12\x10\n\x08\x62ody_iid\x18\x02 \x01(\x04\x12\x32\n\x04prio\x18\x03 \x01(\x0e\x32$.perfetto.protos.LogMessage.Priority\"\x91\x01\n\x08Priority\x12\x14\n\x10PRIO_UNSPECIFIED\x10\x00\x12\x0f\n\x0bPRIO_UNUSED\x10\x01\x12\x10\n\x0cPRIO_VERBOSE\x10\x02\x12\x0e\n\nPRIO_DEBUG\x10\x03\x12\r\n\tPRIO_INFO\x10\x04\x12\r\n\tPRIO_WARN\x10\x05\x12\x0e\n\nPRIO_ERROR\x10\x06\x12\x0e\n\nPRIO_FATAL\x10\x07\"+\n\x0eLogMessageBody\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x0c\n\x04\x62ody\x18\x02 \x01(\t\"M\n\x1aUnsymbolizedSourceLocation\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x12\n\nmapping_id\x18\x02 \x01(\x04\x12\x0e\n\x06rel_pc\x18\x03 \x01(\x04\"\\\n\x0eSourceLocation\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x11\n\tfile_name\x18\x02 \x01(\t\x12\x15\n\rfunction_name\x18\x03 \x01(\t\x12\x13\n\x0bline_number\x18\x04 \x01(\r\"$\n\x15\x43hromeActiveProcesses\x12\x0b\n\x03pid\x18\x01 \x03(\x05\"\xee\x02\n\x1a\x43hromeApplicationStateInfo\x12]\n\x11\x61pplication_state\x18\x01 \x01(\x0e\x32\x42.perfetto.protos.ChromeApplicationStateInfo.ChromeApplicationState\"\xf0\x01\n\x16\x43hromeApplicationState\x12\x1d\n\x19\x41PPLICATION_STATE_UNKNOWN\x10\x00\x12,\n(APPLICATION_STATE_HAS_RUNNING_ACTIVITIES\x10\x01\x12+\n\'APPLICATION_STATE_HAS_PAUSED_ACTIVITIES\x10\x02\x12,\n(APPLICATION_STATE_HAS_STOPPED_ACTIVITIES\x10\x03\x12.\n*APPLICATION_STATE_HAS_DESTROYED_ACTIVITIES\x10\x04\"\xbf\x08\n\x1e\x43hromeCompositorSchedulerState\x12\x44\n\rstate_machine\x18\x01 \x01(\x0b\x32-.perfetto.protos.ChromeCompositorStateMachine\x12$\n\x1cobserving_begin_frame_source\x18\x02 \x01(\x08\x12&\n\x1e\x62\x65gin_impl_frame_deadline_task\x18\x03 \x01(\x08\x12 \n\x18pending_begin_frame_task\x18\x04 \x01(\x08\x12\x33\n+skipped_last_frame_missed_exceeded_deadline\x18\x05 \x01(\x08\x12G\n\rinside_action\x18\x07 \x01(\x0e\x32\x30.perfetto.protos.ChromeCompositorSchedulerAction\x12\x61\n\rdeadline_mode\x18\x08 \x01(\x0e\x32J.perfetto.protos.ChromeCompositorSchedulerState.BeginImplFrameDeadlineMode\x12\x13\n\x0b\x64\x65\x61\x64line_us\x18\t \x01(\x03\x12 \n\x18\x64\x65\x61\x64line_scheduled_at_us\x18\n \x01(\x03\x12\x0e\n\x06now_us\x18\x0b \x01(\x03\x12 \n\x18now_to_deadline_delta_us\x18\x0c \x01(\x03\x12-\n%now_to_deadline_scheduled_at_delta_us\x18\r \x01(\x03\x12\x42\n\x15\x62\x65gin_impl_frame_args\x18\x0e \x01(\x0b\x32#.perfetto.protos.BeginImplFrameArgs\x12L\n\x1a\x62\x65gin_frame_observer_state\x18\x0f \x01(\x0b\x32(.perfetto.protos.BeginFrameObserverState\x12H\n\x18\x62\x65gin_frame_source_state\x18\x10 \x01(\x0b\x32&.perfetto.protos.BeginFrameSourceState\x12K\n\x19\x63ompositor_timing_history\x18\x11 \x01(\x0b\x32(.perfetto.protos.CompositorTimingHistory\"\xbe\x01\n\x1a\x42\x65ginImplFrameDeadlineMode\x12\x1d\n\x19\x44\x45\x41\x44LINE_MODE_UNSPECIFIED\x10\x00\x12\x16\n\x12\x44\x45\x41\x44LINE_MODE_NONE\x10\x01\x12\x1b\n\x17\x44\x45\x41\x44LINE_MODE_IMMEDIATE\x10\x02\x12\x19\n\x15\x44\x45\x41\x44LINE_MODE_REGULAR\x10\x03\x12\x16\n\x12\x44\x45\x41\x44LINE_MODE_LATE\x10\x04\x12\x19\n\x15\x44\x45\x41\x44LINE_MODE_BLOCKED\x10\x05J\x04\x08\x06\x10\x07\"\xfe\x1c\n\x1c\x43hromeCompositorStateMachine\x12M\n\x0bmajor_state\x18\x01 \x01(\x0b\x32\x38.perfetto.protos.ChromeCompositorStateMachine.MajorState\x12M\n\x0bminor_state\x18\x02 \x01(\x0b\x32\x38.perfetto.protos.ChromeCompositorStateMachine.MinorState\x1a\x93\n\n\nMajorState\x12\x45\n\x0bnext_action\x18\x01 \x01(\x0e\x32\x30.perfetto.protos.ChromeCompositorSchedulerAction\x12l\n\x16\x62\x65gin_impl_frame_state\x18\x02 \x01(\x0e\x32L.perfetto.protos.ChromeCompositorStateMachine.MajorState.BeginImplFrameState\x12l\n\x16\x62\x65gin_main_frame_state\x18\x03 \x01(\x0e\x32L.perfetto.protos.ChromeCompositorStateMachine.MajorState.BeginMainFrameState\x12u\n\x1blayer_tree_frame_sink_state\x18\x04 \x01(\x0e\x32P.perfetto.protos.ChromeCompositorStateMachine.MajorState.LayerTreeFrameSinkState\x12p\n\x13\x66orced_redraw_state\x18\x05 \x01(\x0e\x32S.perfetto.protos.ChromeCompositorStateMachine.MajorState.ForcedRedrawOnTimeoutState\"\xa1\x01\n\x13\x42\x65ginImplFrameState\x12 \n\x1c\x42\x45GIN_IMPL_FRAME_UNSPECIFIED\x10\x00\x12\x19\n\x15\x42\x45GIN_IMPL_FRAME_IDLE\x10\x01\x12\'\n#BEGIN_IMPL_FRAME_INSIDE_BEGIN_FRAME\x10\x02\x12$\n BEGIN_IMPL_FRAME_INSIDE_DEADLINE\x10\x03\"\x93\x01\n\x13\x42\x65ginMainFrameState\x12 \n\x1c\x42\x45GIN_MAIN_FRAME_UNSPECIFIED\x10\x00\x12\x19\n\x15\x42\x45GIN_MAIN_FRAME_IDLE\x10\x01\x12\x19\n\x15\x42\x45GIN_MAIN_FRAME_SENT\x10\x02\x12$\n BEGIN_MAIN_FRAME_READY_TO_COMMIT\x10\x03\"\xf4\x01\n\x17LayerTreeFrameSinkState\x12 \n\x1cLAYER_TREE_FRAME_UNSPECIFIED\x10\x00\x12\x19\n\x15LAYER_TREE_FRAME_NONE\x10\x01\x12\x1b\n\x17LAYER_TREE_FRAME_ACTIVE\x10\x02\x12\x1d\n\x19LAYER_TREE_FRAME_CREATING\x10\x03\x12-\n)LAYER_TREE_FRAME_WAITING_FOR_FIRST_COMMIT\x10\x04\x12\x31\n-LAYER_TREE_FRAME_WAITING_FOR_FIRST_ACTIVATION\x10\x05\"\xc7\x01\n\x1a\x46orcedRedrawOnTimeoutState\x12\x1d\n\x19\x46ORCED_REDRAW_UNSPECIFIED\x10\x00\x12\x16\n\x12\x46ORCED_REDRAW_IDLE\x10\x01\x12$\n FORCED_REDRAW_WAITING_FOR_COMMIT\x10\x02\x12(\n$FORCED_REDRAW_WAITING_FOR_ACTIVATION\x10\x03\x12\"\n\x1e\x46ORCED_REDRAW_WAITING_FOR_DRAW\x10\x04\x1a\xa9\x11\n\nMinorState\x12\x14\n\x0c\x63ommit_count\x18\x01 \x01(\x05\x12\x1c\n\x14\x63urrent_frame_number\x18\x02 \x01(\x05\x12*\n\"last_frame_number_submit_performed\x18\x03 \x01(\x05\x12(\n last_frame_number_draw_performed\x18\x04 \x01(\x05\x12/\n\'last_frame_number_begin_main_frame_sent\x18\x05 \x01(\x05\x12\x10\n\x08\x64id_draw\x18\x06 \x01(\x08\x12\x33\n+did_send_begin_main_frame_for_current_frame\x18\x07 \x01(\x08\x12\x36\n.did_notify_begin_main_frame_not_expected_until\x18\x08 \x01(\x08\x12\x35\n-did_notify_begin_main_frame_not_expected_soon\x18\t \x01(\x08\x12+\n#wants_begin_main_frame_not_expected\x18\n \x01(\x08\x12\x1f\n\x17\x64id_commit_during_frame\x18\x0b \x01(\x08\x12,\n$did_invalidate_layer_tree_frame_sink\x18\x0c \x01(\x08\x12)\n!did_perform_impl_side_invalidaion\x18\r \x01(\x08\x12\x19\n\x11\x64id_prepare_tiles\x18\x0e \x01(\x08\x12+\n#consecutive_checkerboard_animations\x18\x0f \x01(\x05\x12\x1d\n\x15pending_submit_frames\x18\x10 \x01(\x05\x12\x38\n0submit_frames_with_current_layer_tree_frame_sink\x18\x11 \x01(\x05\x12\x14\n\x0cneeds_redraw\x18\x12 \x01(\x08\x12\x1b\n\x13needs_prepare_tiles\x18\x13 \x01(\x08\x12\x1e\n\x16needs_begin_main_frame\x18\x14 \x01(\x08\x12\"\n\x1aneeds_one_begin_impl_frame\x18\x15 \x01(\x08\x12\x0f\n\x07visible\x18\x16 \x01(\x08\x12!\n\x19\x62\x65gin_frame_source_paused\x18\x17 \x01(\x08\x12\x10\n\x08\x63\x61n_draw\x18\x18 \x01(\x08\x12\x19\n\x11resourceless_draw\x18\x19 \x01(\x08\x12\x18\n\x10has_pending_tree\x18\x1a \x01(\x08\x12,\n$pending_tree_is_ready_for_activation\x18\x1b \x01(\x08\x12$\n\x1c\x61\x63tive_tree_needs_first_draw\x18\x1c \x01(\x08\x12$\n\x1c\x61\x63tive_tree_is_ready_to_draw\x18\x1d \x01(\x08\x12=\n5did_create_and_initialize_first_layer_tree_frame_sink\x18\x1e \x01(\x08\x12\\\n\rtree_priority\x18\x1f \x01(\x0e\x32\x45.perfetto.protos.ChromeCompositorStateMachine.MinorState.TreePriority\x12i\n\x14scroll_handler_state\x18  \x01(\x0e\x32K.perfetto.protos.ChromeCompositorStateMachine.MinorState.ScrollHandlerState\x12\x35\n-critical_begin_main_frame_to_activate_is_fast\x18! \x01(\x08\x12(\n main_thread_missed_last_deadline\x18\" \x01(\x08\x12 \n\x18video_needs_begin_frames\x18$ \x01(\x08\x12\x1e\n\x16\x64\x65\x66\x65r_begin_main_frame\x18% \x01(\x08\x12\"\n\x1alast_commit_had_no_updates\x18& \x01(\x08\x12\x1e\n\x16\x64id_draw_in_last_frame\x18\' \x01(\x08\x12 \n\x18\x64id_submit_in_last_frame\x18( \x01(\x08\x12$\n\x1cneeds_impl_side_invalidation\x18) \x01(\x08\x12)\n!current_pending_tree_is_impl_side\x18* \x01(\x08\x12+\n#previous_pending_tree_was_impl_side\x18+ \x01(\x08\x12\x35\n-processing_animation_worklets_for_active_tree\x18, \x01(\x08\x12\x36\n.processing_animation_worklets_for_pending_tree\x18- \x01(\x08\x12\x32\n*processing_paint_worklets_for_pending_tree\x18. \x01(\x08\"\xb8\x01\n\x0cTreePriority\x12\x1d\n\x19TREE_PRIORITY_UNSPECIFIED\x10\x00\x12.\n*TREE_PRIORITY_SAME_PRIORITY_FOR_BOTH_TREES\x10\x01\x12+\n\'TREE_PRIORITY_SMOOTHNESS_TAKES_PRIORITY\x10\x02\x12,\n(TREE_PRIORITY_NEW_CONTENT_TAKES_PRIORITY\x10\x03\"\x82\x01\n\x12ScrollHandlerState\x12\x1e\n\x1aSCROLL_HANDLER_UNSPECIFIED\x10\x00\x12!\n\x1dSCROLL_AFFECTS_SCROLL_HANDLER\x10\x01\x12)\n%SCROLL_DOES_NOT_AFFECT_SCROLL_HANDLER\x10\x02J\x04\x08#\x10$\"\xaa\x04\n\x0e\x42\x65ginFrameArgs\x12@\n\x04type\x18\x01 \x01(\x0e\x32\x32.perfetto.protos.BeginFrameArgs.BeginFrameArgsType\x12\x11\n\tsource_id\x18\x02 \x01(\x04\x12\x17\n\x0fsequence_number\x18\x03 \x01(\x04\x12\x15\n\rframe_time_us\x18\x04 \x01(\x03\x12\x13\n\x0b\x64\x65\x61\x64line_us\x18\x05 \x01(\x03\x12\x19\n\x11interval_delta_us\x18\x06 \x01(\x03\x12\x18\n\x10on_critical_path\x18\x07 \x01(\x08\x12\x14\n\x0c\x61nimate_only\x18\x08 \x01(\x08\x12\x1d\n\x13source_location_iid\x18\t \x01(\x04H\x00\x12:\n\x0fsource_location\x18\n \x01(\x0b\x32\x1f.perfetto.protos.SourceLocationH\x00\x12#\n\x1b\x66rames_throttled_since_last\x18\x0c \x01(\x03\"\xa2\x01\n\x12\x42\x65ginFrameArgsType\x12%\n!BEGIN_FRAME_ARGS_TYPE_UNSPECIFIED\x10\x00\x12!\n\x1d\x42\x45GIN_FRAME_ARGS_TYPE_INVALID\x10\x01\x12 \n\x1c\x42\x45GIN_FRAME_ARGS_TYPE_NORMAL\x10\x02\x12 \n\x1c\x42\x45GIN_FRAME_ARGS_TYPE_MISSED\x10\x03\x42\x0e\n\x0c\x63reated_from\"\xc0\x04\n\x12\x42\x65ginImplFrameArgs\x12\x15\n\rupdated_at_us\x18\x01 \x01(\x03\x12\x16\n\x0e\x66inished_at_us\x18\x02 \x01(\x03\x12\x38\n\x05state\x18\x03 \x01(\x0e\x32).perfetto.protos.BeginImplFrameArgs.State\x12\x37\n\x0c\x63urrent_args\x18\x04 \x01(\x0b\x32\x1f.perfetto.protos.BeginFrameArgsH\x00\x12\x34\n\tlast_args\x18\x05 \x01(\x0b\x32\x1f.perfetto.protos.BeginFrameArgsH\x00\x12L\n\x10timestamps_in_us\x18\x06 \x01(\x0b\x32\x32.perfetto.protos.BeginImplFrameArgs.TimestampsInUs\x1a\xc1\x01\n\x0eTimestampsInUs\x12\x16\n\x0einterval_delta\x18\x01 \x01(\x03\x12\x1d\n\x15now_to_deadline_delta\x18\x02 \x01(\x03\x12\x1f\n\x17\x66rame_time_to_now_delta\x18\x03 \x01(\x03\x12$\n\x1c\x66rame_time_to_deadline_delta\x18\x04 \x01(\x03\x12\x0b\n\x03now\x18\x05 \x01(\x03\x12\x12\n\nframe_time\x18\x06 \x01(\x03\x12\x10\n\x08\x64\x65\x61\x64line\x18\x07 \x01(\x03\"8\n\x05State\x12\x18\n\x14\x42\x45GIN_FRAME_FINISHED\x10\x00\x12\x15\n\x11\x42\x45GIN_FRAME_USING\x10\x01\x42\x06\n\x04\x61rgs\"{\n\x17\x42\x65ginFrameObserverState\x12 \n\x18\x64ropped_begin_frame_args\x18\x01 \x01(\x03\x12>\n\x15last_begin_frame_args\x18\x02 \x01(\x0b\x32\x1f.perfetto.protos.BeginFrameArgs\"\x91\x01\n\x15\x42\x65ginFrameSourceState\x12\x11\n\tsource_id\x18\x01 \x01(\r\x12\x0e\n\x06paused\x18\x02 \x01(\x08\x12\x15\n\rnum_observers\x18\x03 \x01(\r\x12>\n\x15last_begin_frame_args\x18\x04 \x01(\x0b\x32\x1f.perfetto.protos.BeginFrameArgs\"\xfc\x02\n\x17\x43ompositorTimingHistory\x12\x39\n1begin_main_frame_queue_critical_estimate_delta_us\x18\x01 \x01(\x03\x12=\n5begin_main_frame_queue_not_critical_estimate_delta_us\x18\x02 \x01(\x03\x12\x43\n;begin_main_frame_start_to_ready_to_commit_estimate_delta_us\x18\x03 \x01(\x03\x12\x35\n-commit_to_ready_to_activate_estimate_delta_us\x18\x04 \x01(\x03\x12\'\n\x1fprepare_tiles_estimate_delta_us\x18\x05 \x01(\x03\x12\"\n\x1a\x61\x63tivate_estimate_delta_us\x18\x06 \x01(\x03\x12\x1e\n\x16\x64raw_estimate_delta_us\x18\x07 \x01(\x03\">\n\x1e\x43hromeContentSettingsEventInfo\x12\x1c\n\x14number_of_exceptions\x18\x01 \x01(\r\"\xe0\x08\n\x13\x43hromeFrameReporter\x12\x39\n\x05state\x18\x01 \x01(\x0e\x32*.perfetto.protos.ChromeFrameReporter.State\x12\x44\n\x06reason\x18\x02 \x01(\x0e\x32\x34.perfetto.protos.ChromeFrameReporter.FrameDropReason\x12\x14\n\x0c\x66rame_source\x18\x03 \x01(\x04\x12\x16\n\x0e\x66rame_sequence\x18\x04 \x01(\x04\x12\x1a\n\x12\x61\x66\x66\x65\x63ts_smoothness\x18\x05 \x01(\x08\x12\x46\n\x0cscroll_state\x18\x06 \x01(\x0e\x32\x30.perfetto.protos.ChromeFrameReporter.ScrollState\x12\x1a\n\x12has_main_animation\x18\x07 \x01(\x08\x12 \n\x18has_compositor_animation\x18\x08 \x01(\x08\x12\x1d\n\x15has_smooth_input_main\x18\t \x01(\x08\x12\x1b\n\x13has_missing_content\x18\n \x01(\x08\x12\x1a\n\x12layer_tree_host_id\x18\x0b \x01(\x04\x12\x18\n\x10has_high_latency\x18\x0c \x01(\x08\x12\x42\n\nframe_type\x18\r \x01(\x0e\x32..perfetto.protos.ChromeFrameReporter.FrameType\x12\'\n\x1fhigh_latency_contribution_stage\x18\x0e \x03(\t\x12#\n\x1b\x63heckerboarded_needs_raster\x18\x0f \x01(\x08\x12#\n\x1b\x63heckerboarded_needs_record\x18\x10 \x01(\x08\x12\x1e\n\x16surface_frame_trace_id\x18\x11 \x01(\x03\x12\x18\n\x10\x64isplay_trace_id\x18\x12 \x01(\x03\"m\n\x05State\x12\x1b\n\x17STATE_NO_UPDATE_DESIRED\x10\x00\x12\x17\n\x13STATE_PRESENTED_ALL\x10\x01\x12\x1b\n\x17STATE_PRESENTED_PARTIAL\x10\x02\x12\x11\n\rSTATE_DROPPED\x10\x03\"~\n\x0f\x46rameDropReason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\x1d\n\x19REASON_DISPLAY_COMPOSITOR\x10\x01\x12\x16\n\x12REASON_MAIN_THREAD\x10\x02\x12\x1c\n\x18REASON_CLIENT_COMPOSITOR\x10\x03\"{\n\x0bScrollState\x12\x0f\n\x0bSCROLL_NONE\x10\x00\x12\x16\n\x12SCROLL_MAIN_THREAD\x10\x01\x12\x1c\n\x18SCROLL_COMPOSITOR_THREAD\x10\x02\x12\x11\n\rSCROLL_RASTER\x10\x03\x12\x12\n\x0eSCROLL_UNKNOWN\x10\x04\"%\n\tFrameType\x12\n\n\x06\x46ORKED\x10\x00\x12\x0c\n\x08\x42\x41\x43KFILL\x10\x01:\x02\x18\x01\"\"\n\x12\x43hromeKeyedService\x12\x0c\n\x04name\x18\x01 \x01(\t\"\xf6\r\n\x11\x43hromeLatencyInfo\x12\x10\n\x08trace_id\x18\x01 \x01(\x03\x12\x35\n\x04step\x18\x02 \x01(\x0e\x32\'.perfetto.protos.ChromeLatencyInfo.Step\x12\x1a\n\x12\x66rame_tree_node_id\x18\x03 \x01(\x05\x12H\n\x0e\x63omponent_info\x18\x04 \x03(\x0b\x32\x30.perfetto.protos.ChromeLatencyInfo.ComponentInfo\x12\x14\n\x0cis_coalesced\x18\x05 \x01(\x08\x12\x19\n\x11gesture_scroll_id\x18\x06 \x01(\x03\x12\x10\n\x08touch_id\x18\x07 \x01(\x03\x12@\n\ninput_type\x18\x08 \x01(\x0e\x32,.perfetto.protos.ChromeLatencyInfo.InputType\x1aq\n\rComponentInfo\x12O\n\x0e\x63omponent_type\x18\x01 \x01(\x0e\x32\x37.perfetto.protos.ChromeLatencyInfo.LatencyComponentType\x12\x0f\n\x07time_us\x18\x02 \x01(\x04\"\x92\x03\n\x04Step\x12\x14\n\x10STEP_UNSPECIFIED\x10\x00\x12\x1c\n\x18STEP_SEND_INPUT_EVENT_UI\x10\x03\x12 \n\x1cSTEP_HANDLE_INPUT_EVENT_IMPL\x10\x05\x12(\n$STEP_DID_HANDLE_INPUT_AND_OVERSCROLL\x10\x08\x12 \n\x1cSTEP_HANDLE_INPUT_EVENT_MAIN\x10\x04\x12\"\n\x1eSTEP_MAIN_THREAD_SCROLL_UPDATE\x10\x02\x12\'\n#STEP_HANDLE_INPUT_EVENT_MAIN_COMMIT\x10\x01\x12)\n%STEP_HANDLED_INPUT_EVENT_MAIN_OR_IMPL\x10\t\x12!\n\x1dSTEP_HANDLED_INPUT_EVENT_IMPL\x10\n\x12\x15\n\x11STEP_SWAP_BUFFERS\x10\x06\x12\x16\n\x12STEP_DRAW_AND_SWAP\x10\x07\x12\x1e\n\x1aSTEP_FINISHED_SWAP_BUFFERS\x10\x0b\"\xf5\x05\n\x14LatencyComponentType\x12\x19\n\x15\x43OMPONENT_UNSPECIFIED\x10\x00\x12+\n\'COMPONENT_INPUT_EVENT_LATENCY_BEGIN_RWH\x10\x01\x12\x38\n4COMPONENT_INPUT_EVENT_LATENCY_SCROLL_UPDATE_ORIGINAL\x10\x02\x12>\n:COMPONENT_INPUT_EVENT_LATENCY_FIRST_SCROLL_UPDATE_ORIGINAL\x10\x03\x12*\n&COMPONENT_INPUT_EVENT_LATENCY_ORIGINAL\x10\x04\x12$\n COMPONENT_INPUT_EVENT_LATENCY_UI\x10\x05\x12/\n+COMPONENT_INPUT_EVENT_LATENCY_RENDERER_MAIN\x10\x06\x12:\n6COMPONENT_INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_MAIN\x10\x07\x12:\n6COMPONENT_INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_IMPL\x10\x08\x12:\n6COMPONENT_INPUT_EVENT_LATENCY_SCROLL_UPDATE_LAST_EVENT\x10\t\x12)\n%COMPONENT_INPUT_EVENT_LATENCY_ACK_RWH\x10\n\x12/\n+COMPONENT_INPUT_EVENT_LATENCY_RENDERER_SWAP\x10\x0b\x12/\n+COMPONENT_DISPLAY_COMPOSITOR_RECEIVED_FRAME\x10\x0c\x12)\n%COMPONENT_INPUT_EVENT_GPU_SWAP_BUFFER\x10\r\x12,\n(COMPONENT_INPUT_EVENT_LATENCY_FRAME_SWAP\x10\x0e\"\xac\x01\n\tInputType\x12\x18\n\x14UNSPECIFIED_OR_OTHER\x10\x00\x12\x0f\n\x0bTOUCH_MOVED\x10\x01\x12\x18\n\x14GESTURE_SCROLL_BEGIN\x10\x02\x12\x19\n\x15GESTURE_SCROLL_UPDATE\x10\x03\x12\x16\n\x12GESTURE_SCROLL_END\x10\x04\x12\x0f\n\x0bGESTURE_TAP\x10\x05\x12\x16\n\x12GESTURE_TAP_CANCEL\x10\x06\"\xce\x07\n\x0f\x43hromeLegacyIpc\x12\x44\n\rmessage_class\x18\x01 \x01(\x0e\x32-.perfetto.protos.ChromeLegacyIpc.MessageClass\x12\x14\n\x0cmessage_line\x18\x02 \x01(\r\"\xde\x06\n\x0cMessageClass\x12\x15\n\x11\x43LASS_UNSPECIFIED\x10\x00\x12\x14\n\x10\x43LASS_AUTOMATION\x10\x01\x12\x0f\n\x0b\x43LASS_FRAME\x10\x02\x12\x0e\n\nCLASS_PAGE\x10\x03\x12\x0e\n\nCLASS_VIEW\x10\x04\x12\x10\n\x0c\x43LASS_WIDGET\x10\x05\x12\x0f\n\x0b\x43LASS_INPUT\x10\x06\x12\x0e\n\nCLASS_TEST\x10\x07\x12\x10\n\x0c\x43LASS_WORKER\x10\x08\x12\x0e\n\nCLASS_NACL\x10\t\x12\x15\n\x11\x43LASS_GPU_CHANNEL\x10\n\x12\x0f\n\x0b\x43LASS_MEDIA\x10\x0b\x12\x0f\n\x0b\x43LASS_PPAPI\x10\x0c\x12\x10\n\x0c\x43LASS_CHROME\x10\r\x12\x0e\n\nCLASS_DRAG\x10\x0e\x12\x0f\n\x0b\x43LASS_PRINT\x10\x0f\x12\x13\n\x0f\x43LASS_EXTENSION\x10\x10\x12\x1b\n\x17\x43LASS_TEXT_INPUT_CLIENT\x10\x11\x12\x14\n\x10\x43LASS_BLINK_TEST\x10\x12\x12\x17\n\x13\x43LASS_ACCESSIBILITY\x10\x13\x12\x13\n\x0f\x43LASS_PRERENDER\x10\x14\x12\x14\n\x10\x43LASS_CHROMOTING\x10\x15\x12\x18\n\x14\x43LASS_BROWSER_PLUGIN\x10\x16\x12\x1a\n\x16\x43LASS_ANDROID_WEB_VIEW\x10\x17\x12\x13\n\x0f\x43LASS_NACL_HOST\x10\x18\x12\x19\n\x15\x43LASS_ENCRYPTED_MEDIA\x10\x19\x12\x0e\n\nCLASS_CAST\x10\x1a\x12\x19\n\x15\x43LASS_GIN_JAVA_BRIDGE\x10\x1b\x12!\n\x1d\x43LASS_CHROME_UTILITY_PRINTING\x10\x1c\x12\x13\n\x0f\x43LASS_OZONE_GPU\x10\x1d\x12\x12\n\x0e\x43LASS_WEB_TEST\x10\x1e\x12\x17\n\x13\x43LASS_NETWORK_HINTS\x10\x1f\x12\x1f\n\x1b\x43LASS_EXTENSIONS_GUEST_VIEW\x10 \x12\x14\n\x10\x43LASS_GUEST_VIEW\x10!\x12\x1f\n\x1b\x43LASS_MEDIA_PLAYER_DELEGATE\x10\"\x12\x1a\n\x16\x43LASS_EXTENSION_WORKER\x10#\x12\x1c\n\x18\x43LASS_SUBRESOURCE_FILTER\x10$\x12\x1b\n\x17\x43LASS_UNFREEZABLE_FRAME\x10%\"T\n\x11\x43hromeMessagePump\x12\x1e\n\x16sent_messages_in_queue\x18\x01 \x01(\x08\x12\x1f\n\x17io_handler_location_iid\x18\x02 \x01(\x04\"\xcc\x01\n\x13\x43hromeMojoEventInfo\x12$\n\x1cwatcher_notify_interface_tag\x18\x01 \x01(\t\x12\x10\n\x08ipc_hash\x18\x02 \x01(\r\x12\x1a\n\x12mojo_interface_tag\x18\x03 \x01(\t\x12!\n\x19mojo_interface_method_iid\x18\x04 \x01(\x04\x12\x10\n\x08is_reply\x18\x05 \x01(\x08\x12\x14\n\x0cpayload_size\x18\x06 \x01(\x04\x12\x16\n\x0e\x64\x61ta_num_bytes\x18\x07 \x01(\x04\"~\n\x1c\x43hromeRendererSchedulerState\x12\x32\n\trail_mode\x18\x01 \x01(\x0e\x32\x1f.perfetto.protos.ChromeRAILMode\x12\x17\n\x0fis_backgrounded\x18\x02 \x01(\x08\x12\x11\n\tis_hidden\x18\x03 \x01(\x08\"6\n\x0f\x43hromeUserEvent\x12\x0e\n\x06\x61\x63tion\x18\x01 \x01(\t\x12\x13\n\x0b\x61\x63tion_hash\x18\x02 \x01(\x04\"P\n\x1b\x43hromeWindowHandleEventInfo\x12\x0b\n\x03\x64pi\x18\x01 \x01(\r\x12\x12\n\nmessage_id\x18\x02 \x01(\r\x12\x10\n\x08hwnd_ptr\x18\x03 \x01(\x06\"\x1f\n\nScreenshot\x12\x11\n\tjpg_image\x18\x01 \x01(\x0c\"(\n\rTaskExecution\x12\x17\n\x0fposted_from_iid\x18\x01 \x01(\x04\"\xdc\x1a\n\nTrackEvent\x12\x15\n\rcategory_iids\x18\x03 \x03(\x04\x12\x12\n\ncategories\x18\x16 \x03(\t\x12\x12\n\x08name_iid\x18\n \x01(\x04H\x00\x12\x0e\n\x04name\x18\x17 \x01(\tH\x00\x12.\n\x04type\x18\t \x01(\x0e\x32 .perfetto.protos.TrackEvent.Type\x12\x12\n\ntrack_uuid\x18\x0b \x01(\x04\x12\x17\n\rcounter_value\x18\x1e \x01(\x03H\x01\x12\x1e\n\x14\x64ouble_counter_value\x18, \x01(\x01H\x01\x12!\n\x19\x65xtra_counter_track_uuids\x18\x1f \x03(\x04\x12\x1c\n\x14\x65xtra_counter_values\x18\x0c \x03(\x03\x12(\n extra_double_counter_track_uuids\x18- \x03(\x04\x12#\n\x1b\x65xtra_double_counter_values\x18. \x03(\x01\x12\x18\n\x0c\x66low_ids_old\x18$ \x03(\x04\x42\x02\x18\x01\x12\x10\n\x08\x66low_ids\x18/ \x03(\x06\x12$\n\x18terminating_flow_ids_old\x18* \x03(\x04\x42\x02\x18\x01\x12\x1c\n\x14terminating_flow_ids\x18\x30 \x03(\x06\x12\x18\n\x0e\x63orrelation_id\x18\x34 \x01(\x04H\x02\x12\x1c\n\x12\x63orrelation_id_str\x18\x35 \x01(\tH\x02\x12 \n\x16\x63orrelation_id_str_iid\x18\x36 \x01(\x04H\x02\x12:\n\tcallstack\x18\x37 \x01(\x0b\x32%.perfetto.protos.TrackEvent.CallstackH\x03\x12\x17\n\rcallstack_iid\x18\x38 \x01(\x04H\x03\x12;\n\x11\x64\x65\x62ug_annotations\x18\x04 \x03(\x0b\x32 .perfetto.protos.DebugAnnotation\x12\x36\n\x0etask_execution\x18\x05 \x01(\x0b\x32\x1e.perfetto.protos.TaskExecution\x12\x30\n\x0blog_message\x18\x15 \x01(\x0b\x32\x1b.perfetto.protos.LogMessage\x12K\n\x12\x63\x63_scheduler_state\x18\x18 \x01(\x0b\x32/.perfetto.protos.ChromeCompositorSchedulerState\x12;\n\x11\x63hrome_user_event\x18\x19 \x01(\x0b\x32 .perfetto.protos.ChromeUserEvent\x12\x41\n\x14\x63hrome_keyed_service\x18\x1a \x01(\x0b\x32#.perfetto.protos.ChromeKeyedService\x12;\n\x11\x63hrome_legacy_ipc\x18\x1b \x01(\x0b\x32 .perfetto.protos.ChromeLegacyIpc\x12G\n\x17\x63hrome_histogram_sample\x18\x1c \x01(\x0b\x32&.perfetto.protos.ChromeHistogramSample\x12?\n\x13\x63hrome_latency_info\x18\x1d \x01(\x0b\x32\".perfetto.protos.ChromeLatencyInfo\x12G\n\x15\x63hrome_frame_reporter\x18  \x01(\x0b\x32$.perfetto.protos.ChromeFrameReporterB\x02\x18\x01\x12R\n\x1d\x63hrome_application_state_info\x18\' \x01(\x0b\x32+.perfetto.protos.ChromeApplicationStateInfo\x12V\n\x1f\x63hrome_renderer_scheduler_state\x18( \x01(\x0b\x32-.perfetto.protos.ChromeRendererSchedulerState\x12U\n\x1f\x63hrome_window_handle_event_info\x18) \x01(\x0b\x32,.perfetto.protos.ChromeWindowHandleEventInfo\x12[\n\"chrome_content_settings_event_info\x18+ \x01(\x0b\x32/.perfetto.protos.ChromeContentSettingsEventInfo\x12G\n\x17\x63hrome_active_processes\x18\x31 \x01(\x0b\x32&.perfetto.protos.ChromeActiveProcesses\x12/\n\nscreenshot\x18\x32 \x01(\x0b\x32\x1b.perfetto.protos.Screenshot\x12:\n\x0fsource_location\x18! \x01(\x0b\x32\x1f.perfetto.protos.SourceLocationH\x04\x12\x1d\n\x13source_location_iid\x18\" \x01(\x04H\x04\x12?\n\x13\x63hrome_message_pump\x18# \x01(\x0b\x32\".perfetto.protos.ChromeMessagePump\x12\x44\n\x16\x63hrome_mojo_event_info\x18& \x01(\x0b\x32$.perfetto.protos.ChromeMojoEventInfo\x12\x1c\n\x12timestamp_delta_us\x18\x01 \x01(\x03H\x05\x12\x1f\n\x15timestamp_absolute_us\x18\x10 \x01(\x03H\x05\x12\x1e\n\x14thread_time_delta_us\x18\x02 \x01(\x03H\x06\x12!\n\x17thread_time_absolute_us\x18\x11 \x01(\x03H\x06\x12(\n\x1ethread_instruction_count_delta\x18\x08 \x01(\x03H\x07\x12+\n!thread_instruction_count_absolute\x18\x14 \x01(\x03H\x07\x12=\n\x0clegacy_event\x18\x06 \x01(\x0b\x32\'.perfetto.protos.TrackEvent.LegacyEvent\x1a\x92\x01\n\tCallstack\x12;\n\x06\x66rames\x18\x01 \x03(\x0b\x32+.perfetto.protos.TrackEvent.Callstack.Frame\x1aH\n\x05\x46rame\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12\x13\n\x0bsource_file\x18\x02 \x01(\t\x12\x13\n\x0bline_number\x18\x03 \x01(\r\x1a\xaa\x05\n\x0bLegacyEvent\x12\x10\n\x08name_iid\x18\x01 \x01(\x04\x12\r\n\x05phase\x18\x02 \x01(\x05\x12\x13\n\x0b\x64uration_us\x18\x03 \x01(\x03\x12\x1a\n\x12thread_duration_us\x18\x04 \x01(\x03\x12 \n\x18thread_instruction_delta\x18\x0f \x01(\x03\x12\x15\n\x0bunscoped_id\x18\x06 \x01(\x04H\x00\x12\x12\n\x08local_id\x18\n \x01(\x04H\x00\x12\x13\n\tglobal_id\x18\x0b \x01(\x04H\x00\x12\x10\n\x08id_scope\x18\x07 \x01(\t\x12\x15\n\ruse_async_tts\x18\t \x01(\x08\x12\x0f\n\x07\x62ind_id\x18\x08 \x01(\x04\x12\x19\n\x11\x62ind_to_enclosing\x18\x0c \x01(\x08\x12M\n\x0e\x66low_direction\x18\r \x01(\x0e\x32\x35.perfetto.protos.TrackEvent.LegacyEvent.FlowDirection\x12V\n\x13instant_event_scope\x18\x0e \x01(\x0e\x32\x39.perfetto.protos.TrackEvent.LegacyEvent.InstantEventScope\x12\x14\n\x0cpid_override\x18\x12 \x01(\x05\x12\x14\n\x0ctid_override\x18\x13 \x01(\x05\"P\n\rFlowDirection\x12\x14\n\x10\x46LOW_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x46LOW_IN\x10\x01\x12\x0c\n\x08\x46LOW_OUT\x10\x02\x12\x0e\n\nFLOW_INOUT\x10\x03\"a\n\x11InstantEventScope\x12\x15\n\x11SCOPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cSCOPE_GLOBAL\x10\x01\x12\x11\n\rSCOPE_PROCESS\x10\x02\x12\x10\n\x0cSCOPE_THREAD\x10\x03\x42\x04\n\x02idJ\x04\x08\x05\x10\x06\"j\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10TYPE_SLICE_BEGIN\x10\x01\x12\x12\n\x0eTYPE_SLICE_END\x10\x02\x12\x10\n\x0cTYPE_INSTANT\x10\x03\x12\x10\n\x0cTYPE_COUNTER\x10\x04*\x06\x08\xe8\x07\x10\xd0\x0f*\x06\x08\xd0\x0f\x10\xd1\x0f*\x06\x08\xd1\x0f\x10\xb8\x17*\x06\x08\xb8\x17\x10\xacM*\x06\x08\xacM\x10\x91NB\x0c\n\nname_fieldB\x15\n\x13\x63ounter_value_fieldB\x16\n\x14\x63orrelation_id_fieldB\x11\n\x0f\x63\x61llstack_fieldB\x17\n\x15source_location_fieldB\x0b\n\ttimestampB\r\n\x0bthread_timeB\x1a\n\x18thread_instruction_countJ\x04\x08\x33\x10\x34\"u\n\x12TrackEventDefaults\x12\x12\n\ntrack_uuid\x18\x0b \x01(\x04\x12!\n\x19\x65xtra_counter_track_uuids\x18\x1f \x03(\x04\x12(\n extra_double_counter_track_uuids\x18- \x03(\x04\"*\n\rEventCategory\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"&\n\tEventName\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"\xfe\x10\n\x0cInternedData\x12\x38\n\x10\x65vent_categories\x18\x01 \x03(\x0b\x32\x1e.perfetto.protos.EventCategory\x12/\n\x0b\x65vent_names\x18\x02 \x03(\x0b\x32\x1a.perfetto.protos.EventName\x12\x44\n\x16\x64\x65\x62ug_annotation_names\x18\x03 \x03(\x0b\x32$.perfetto.protos.DebugAnnotationName\x12X\n!debug_annotation_value_type_names\x18\x1b \x03(\x0b\x32-.perfetto.protos.DebugAnnotationValueTypeName\x12\x39\n\x10source_locations\x18\x04 \x03(\x0b\x32\x1f.perfetto.protos.SourceLocation\x12R\n\x1dunsymbolized_source_locations\x18\x1c \x03(\x0b\x32+.perfetto.protos.UnsymbolizedSourceLocation\x12\x39\n\x10log_message_body\x18\x14 \x03(\x0b\x32\x1f.perfetto.protos.LogMessageBody\x12\x37\n\x0fhistogram_names\x18\x19 \x03(\x0b\x32\x1e.perfetto.protos.HistogramName\x12\x32\n\tbuild_ids\x18\x10 \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12\x36\n\rmapping_paths\x18\x11 \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12\x35\n\x0csource_paths\x18\x12 \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12\x37\n\x0e\x66unction_names\x18\x05 \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12*\n\x08mappings\x18\x13 \x03(\x0b\x32\x18.perfetto.protos.Mapping\x12&\n\x06\x66rames\x18\x06 \x03(\x0b\x32\x16.perfetto.protos.Frame\x12.\n\ncallstacks\x18\x07 \x03(\x0b\x32\x1a.perfetto.protos.Callstack\x12;\n\x12vulkan_memory_keys\x18\x16 \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12\x43\n\x11graphics_contexts\x18\x17 \x03(\x0b\x32(.perfetto.protos.InternedGraphicsContext\x12P\n\x12gpu_specifications\x18\x18 \x03(\x0b\x32\x34.perfetto.protos.InternedGpuRenderStageSpecification\x12\x37\n\x0ekernel_symbols\x18\x1a \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12G\n\x1e\x64\x65\x62ug_annotation_string_values\x18\x1d \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12=\n\x0epacket_context\x18\x1e \x03(\x0b\x32%.perfetto.protos.NetworkPacketContext\x12>\n\x13v8_js_function_name\x18\x1f \x03(\x0b\x32!.perfetto.protos.InternedV8String\x12=\n\x0ev8_js_function\x18  \x03(\x0b\x32%.perfetto.protos.InternedV8JsFunction\x12\x39\n\x0cv8_js_script\x18! \x03(\x0b\x32#.perfetto.protos.InternedV8JsScript\x12=\n\x0ev8_wasm_script\x18\" \x03(\x0b\x32%.perfetto.protos.InternedV8WasmScript\x12\x36\n\nv8_isolate\x18# \x03(\x0b\x32\".perfetto.protos.InternedV8Isolate\x12=\n\x14protolog_string_args\x18$ \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12<\n\x13protolog_stacktrace\x18% \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12\x41\n\x18viewcapture_package_name\x18& \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12@\n\x17viewcapture_window_name\x18\' \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12<\n\x13viewcapture_view_id\x18( \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12?\n\x16viewcapture_class_name\x18) \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12;\n\x11\x61pp_wakelock_info\x18* \x03(\x0b\x32 .perfetto.protos.AppWakelockInfo\x12;\n\x12\x63orrelation_id_str\x18+ \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12\x39\n\x10\x61ndroid_job_name\x18, \x03(\x0b\x32\x1f.perfetto.protos.AndroidJobNameJ\x04\x08\x15\x10\x16\"+\n\x0e\x41ndroidJobName\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"\xf0\x07\n\x15MemoryTrackerSnapshot\x12\x16\n\x0eglobal_dump_id\x18\x01 \x01(\x04\x12M\n\x0flevel_of_detail\x18\x02 \x01(\x0e\x32\x34.perfetto.protos.MemoryTrackerSnapshot.LevelOfDetail\x12T\n\x14process_memory_dumps\x18\x03 \x03(\x0b\x32\x36.perfetto.protos.MemoryTrackerSnapshot.ProcessSnapshot\x1a\xce\x05\n\x0fProcessSnapshot\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12Z\n\x0f\x61llocator_dumps\x18\x02 \x03(\x0b\x32\x41.perfetto.protos.MemoryTrackerSnapshot.ProcessSnapshot.MemoryNode\x12W\n\x0cmemory_edges\x18\x03 \x03(\x0b\x32\x41.perfetto.protos.MemoryTrackerSnapshot.ProcessSnapshot.MemoryEdge\x1a\x9b\x03\n\nMemoryNode\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x15\n\rabsolute_name\x18\x02 \x01(\t\x12\x0c\n\x04weak\x18\x03 \x01(\x08\x12\x12\n\nsize_bytes\x18\x04 \x01(\x04\x12\x62\n\x07\x65ntries\x18\x05 \x03(\x0b\x32Q.perfetto.protos.MemoryTrackerSnapshot.ProcessSnapshot.MemoryNode.MemoryNodeEntry\x1a\xe3\x01\n\x0fMemoryNodeEntry\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x66\n\x05units\x18\x02 \x01(\x0e\x32W.perfetto.protos.MemoryTrackerSnapshot.ProcessSnapshot.MemoryNode.MemoryNodeEntry.Units\x12\x14\n\x0cvalue_uint64\x18\x03 \x01(\x04\x12\x14\n\x0cvalue_string\x18\x04 \x01(\t\".\n\x05Units\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\t\n\x05\x42YTES\x10\x01\x12\t\n\x05\x43OUNT\x10\x02\x1a[\n\nMemoryEdge\x12\x11\n\tsource_id\x18\x01 \x01(\x04\x12\x11\n\ttarget_id\x18\x02 \x01(\x04\x12\x12\n\nimportance\x18\x03 \x01(\r\x12\x13\n\x0boverridable\x18\x04 \x01(\x08\"I\n\rLevelOfDetail\x12\x0f\n\x0b\x44\x45TAIL_FULL\x10\x00\x12\x10\n\x0c\x44\x45TAIL_LIGHT\x10\x01\x12\x15\n\x11\x44\x45TAIL_BACKGROUND\x10\x02\"\xa1\x04\n\x11PerfettoMetatrace\x12\x12\n\x08\x65vent_id\x18\x01 \x01(\rH\x00\x12\x14\n\ncounter_id\x18\x02 \x01(\rH\x00\x12\x14\n\nevent_name\x18\x08 \x01(\tH\x00\x12\x18\n\x0e\x65vent_name_iid\x18\x0b \x01(\x04H\x00\x12\x16\n\x0c\x63ounter_name\x18\t \x01(\tH\x00\x12\x19\n\x11\x65vent_duration_ns\x18\x03 \x01(\x04\x12\x15\n\rcounter_value\x18\x04 \x01(\x05\x12\x11\n\tthread_id\x18\x05 \x01(\r\x12\x14\n\x0chas_overruns\x18\x06 \x01(\x08\x12\x34\n\x04\x61rgs\x18\x07 \x03(\x0b\x32&.perfetto.protos.PerfettoMetatrace.Arg\x12K\n\x10interned_strings\x18\n \x03(\x0b\x32\x31.perfetto.protos.PerfettoMetatrace.InternedString\x1a\x7f\n\x03\x41rg\x12\r\n\x03key\x18\x01 \x01(\tH\x00\x12\x11\n\x07key_iid\x18\x03 \x01(\x04H\x00\x12\x0f\n\x05value\x18\x02 \x01(\tH\x01\x12\x13\n\tvalue_iid\x18\x04 \x01(\x04H\x01\x42\x15\n\x13key_or_interned_keyB\x19\n\x17value_or_interned_value\x1a,\n\x0eInternedString\x12\x0b\n\x03iid\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\tB\r\n\x0brecord_type\"\x8a\x05\n\x13TracingServiceEvent\x12\x19\n\x0ftracing_started\x18\x02 \x01(\x08H\x00\x12\"\n\x18\x61ll_data_sources_started\x18\x01 \x01(\x08H\x00\x12\x17\n\rflush_started\x18\t \x01(\x08H\x00\x12\"\n\x18\x61ll_data_sources_flushed\x18\x03 \x01(\x08H\x00\x12(\n\x1eread_tracing_buffers_completed\x18\x04 \x01(\x08H\x00\x12\x1a\n\x10tracing_disabled\x18\x05 \x01(\x08H\x00\x12\x1e\n\x14seized_for_bugreport\x18\x06 \x01(\x08H\x00\x12V\n\x1aslow_starting_data_sources\x18\x07 \x01(\x0b\x32\x30.perfetto.protos.TracingServiceEvent.DataSourcesH\x00\x12X\n\x1clast_flush_slow_data_sources\x18\x08 \x01(\x0b\x32\x30.perfetto.protos.TracingServiceEvent.DataSourcesH\x00\x12\x17\n\rclone_started\x18\n \x01(\x08H\x00\x12\x17\n\rbuffer_cloned\x18\x0b \x01(\rH\x00\x1a\x9e\x01\n\x0b\x44\x61taSources\x12P\n\x0b\x64\x61ta_source\x18\x01 \x03(\x0b\x32;.perfetto.protos.TracingServiceEvent.DataSources.DataSource\x1a=\n\nDataSource\x12\x15\n\rproducer_name\x18\x01 \x01(\t\x12\x18\n\x10\x64\x61ta_source_name\x18\x02 \x01(\tB\x0c\n\nevent_type\"`\n\x15\x41ndroidEnergyConsumer\x12\x1a\n\x12\x65nergy_consumer_id\x18\x01 \x01(\x05\x12\x0f\n\x07ordinal\x18\x02 \x01(\x05\x12\x0c\n\x04type\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\"c\n\x1f\x41ndroidEnergyConsumerDescriptor\x12@\n\x10\x65nergy_consumers\x18\x01 \x03(\x0b\x32&.perfetto.protos.AndroidEnergyConsumer\"\xc0\x02\n AndroidEnergyEstimationBreakdown\x12T\n\x1a\x65nergy_consumer_descriptor\x18\x01 \x01(\x0b\x32\x30.perfetto.protos.AndroidEnergyConsumerDescriptor\x12\x1a\n\x12\x65nergy_consumer_id\x18\x02 \x01(\x05\x12\x12\n\nenergy_uws\x18\x03 \x01(\x03\x12_\n\x11per_uid_breakdown\x18\x04 \x03(\x0b\x32\x44.perfetto.protos.AndroidEnergyEstimationBreakdown.EnergyUidBreakdown\x1a\x35\n\x12\x45nergyUidBreakdown\x12\x0b\n\x03uid\x18\x01 \x01(\x05\x12\x12\n\nenergy_uws\x18\x02 \x01(\x03\"\xbb\x03\n\x14\x45ntityStateResidency\x12R\n\x12power_entity_state\x18\x01 \x03(\x0b\x32\x36.perfetto.protos.EntityStateResidency.PowerEntityState\x12G\n\tresidency\x18\x02 \x03(\x0b\x32\x34.perfetto.protos.EntityStateResidency.StateResidency\x1a\x66\n\x10PowerEntityState\x12\x14\n\x0c\x65ntity_index\x18\x01 \x01(\x05\x12\x13\n\x0bstate_index\x18\x02 \x01(\x05\x12\x13\n\x0b\x65ntity_name\x18\x03 \x01(\t\x12\x12\n\nstate_name\x18\x04 \x01(\t\x1a\x9d\x01\n\x0eStateResidency\x12\x14\n\x0c\x65ntity_index\x18\x01 \x01(\x05\x12\x13\n\x0bstate_index\x18\x02 \x01(\x05\x12\x1e\n\x16total_time_in_state_ms\x18\x03 \x01(\x04\x12\x1f\n\x17total_state_entry_count\x18\x04 \x01(\x04\x12\x1f\n\x17last_entry_timestamp_ms\x18\x05 \x01(\x04\"\xb1\x01\n\x0f\x42\x61tteryCounters\x12\x1a\n\x12\x63harge_counter_uah\x18\x01 \x01(\x03\x12\x18\n\x10\x63\x61pacity_percent\x18\x02 \x01(\x02\x12\x12\n\ncurrent_ua\x18\x03 \x01(\x03\x12\x16\n\x0e\x63urrent_avg_ua\x18\x04 \x01(\x03\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x1a\n\x12\x65nergy_counter_uwh\x18\x06 \x01(\x03\x12\x12\n\nvoltage_uv\x18\x07 \x01(\x03\"\xc7\x02\n\nPowerRails\x12\x43\n\x0frail_descriptor\x18\x01 \x03(\x0b\x32*.perfetto.protos.PowerRails.RailDescriptor\x12;\n\x0b\x65nergy_data\x18\x02 \x03(\x0b\x32&.perfetto.protos.PowerRails.EnergyData\x12\x14\n\x0csession_uuid\x18\x03 \x01(\x04\x1a^\n\x0eRailDescriptor\x12\r\n\x05index\x18\x01 \x01(\r\x12\x11\n\trail_name\x18\x02 \x01(\t\x12\x13\n\x0bsubsys_name\x18\x03 \x01(\t\x12\x15\n\rsampling_rate\x18\x04 \x01(\r\x1a\x41\n\nEnergyData\x12\r\n\x05index\x18\x01 \x01(\r\x12\x14\n\x0ctimestamp_ms\x18\x02 \x01(\x04\x12\x0e\n\x06\x65nergy\x18\x03 \x01(\x04\"F\n\x10ObfuscatedMember\x12\x17\n\x0fobfuscated_name\x18\x01 \x01(\t\x12\x19\n\x11\x64\x65obfuscated_name\x18\x02 \x01(\t\"\xc3\x01\n\x0fObfuscatedClass\x12\x17\n\x0fobfuscated_name\x18\x01 \x01(\t\x12\x19\n\x11\x64\x65obfuscated_name\x18\x02 \x01(\t\x12=\n\x12obfuscated_members\x18\x03 \x03(\x0b\x32!.perfetto.protos.ObfuscatedMember\x12=\n\x12obfuscated_methods\x18\x04 \x03(\x0b\x32!.perfetto.protos.ObfuscatedMember\"\x80\x01\n\x14\x44\x65obfuscationMapping\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x14\n\x0cversion_code\x18\x02 \x01(\x03\x12<\n\x12obfuscated_classes\x18\x03 \x03(\x0b\x32 .perfetto.protos.ObfuscatedClass\"\xb6\x03\n\rHeapGraphRoot\x12\x16\n\nobject_ids\x18\x01 \x03(\x04\x42\x02\x10\x01\x12\x36\n\troot_type\x18\x02 \x01(\x0e\x32#.perfetto.protos.HeapGraphRoot.Type\"\xd4\x02\n\x04Type\x12\x10\n\x0cROOT_UNKNOWN\x10\x00\x12\x13\n\x0fROOT_JNI_GLOBAL\x10\x01\x12\x12\n\x0eROOT_JNI_LOCAL\x10\x02\x12\x13\n\x0fROOT_JAVA_FRAME\x10\x03\x12\x15\n\x11ROOT_NATIVE_STACK\x10\x04\x12\x15\n\x11ROOT_STICKY_CLASS\x10\x05\x12\x15\n\x11ROOT_THREAD_BLOCK\x10\x06\x12\x15\n\x11ROOT_MONITOR_USED\x10\x07\x12\x16\n\x12ROOT_THREAD_OBJECT\x10\x08\x12\x18\n\x14ROOT_INTERNED_STRING\x10\t\x12\x13\n\x0fROOT_FINALIZING\x10\n\x12\x11\n\rROOT_DEBUGGER\x10\x0b\x12\x1a\n\x16ROOT_REFERENCE_CLEANUP\x10\x0c\x12\x14\n\x10ROOT_VM_INTERNAL\x10\r\x12\x14\n\x10ROOT_JNI_MONITOR\x10\x0e\"\xe4\x03\n\rHeapGraphType\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x13\n\x0blocation_id\x18\x02 \x01(\x04\x12\x12\n\nclass_name\x18\x03 \x01(\t\x12\x13\n\x0bobject_size\x18\x04 \x01(\x04\x12\x15\n\rsuperclass_id\x18\x05 \x01(\x04\x12\x1e\n\x12reference_field_id\x18\x06 \x03(\x04\x42\x02\x10\x01\x12\x31\n\x04kind\x18\x07 \x01(\x0e\x32#.perfetto.protos.HeapGraphType.Kind\x12\x16\n\x0e\x63lassloader_id\x18\x08 \x01(\x04\"\x86\x02\n\x04Kind\x12\x10\n\x0cKIND_UNKNOWN\x10\x00\x12\x0f\n\x0bKIND_NORMAL\x10\x01\x12\x15\n\x11KIND_NOREFERENCES\x10\x02\x12\x0f\n\x0bKIND_STRING\x10\x03\x12\x0e\n\nKIND_ARRAY\x10\x04\x12\x0e\n\nKIND_CLASS\x10\x05\x12\x14\n\x10KIND_CLASSLOADER\x10\x06\x12\x11\n\rKIND_DEXCACHE\x10\x07\x12\x17\n\x13KIND_SOFT_REFERENCE\x10\x08\x12\x17\n\x13KIND_WEAK_REFERENCE\x10\t\x12\x1c\n\x18KIND_FINALIZER_REFERENCE\x10\n\x12\x1a\n\x16KIND_PHANTOM_REFERENCE\x10\x0b\"\xc8\x03\n\x0fHeapGraphObject\x12\x0c\n\x02id\x18\x01 \x01(\x04H\x00\x12\x12\n\x08id_delta\x18\x07 \x01(\x04H\x00\x12\x0f\n\x07type_id\x18\x02 \x01(\x04\x12\x11\n\tself_size\x18\x03 \x01(\x04\x12\x1f\n\x17reference_field_id_base\x18\x06 \x01(\x04\x12\x1e\n\x12reference_field_id\x18\x04 \x03(\x04\x42\x02\x10\x01\x12\x1f\n\x13reference_object_id\x18\x05 \x03(\x04\x42\x02\x10\x01\x12-\n%native_allocation_registry_size_field\x18\x08 \x01(\x03\x12\x42\n\x0fheap_type_delta\x18\t \x01(\x0e\x32).perfetto.protos.HeapGraphObject.HeapType\x12&\n\x1aruntime_internal_object_id\x18\n \x03(\x04\x42\x02\x10\x01\"d\n\x08HeapType\x12\x15\n\x11HEAP_TYPE_UNKNOWN\x10\x00\x12\x11\n\rHEAP_TYPE_APP\x10\x01\x12\x14\n\x10HEAP_TYPE_ZYGOTE\x10\x02\x12\x18\n\x14HEAP_TYPE_BOOT_IMAGE\x10\x03\x42\x0c\n\nidentifier\"\xc0\x02\n\tHeapGraph\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x31\n\x07objects\x18\x02 \x03(\x0b\x32 .perfetto.protos.HeapGraphObject\x12-\n\x05roots\x18\x07 \x03(\x0b\x32\x1e.perfetto.protos.HeapGraphRoot\x12-\n\x05types\x18\t \x03(\x0b\x32\x1e.perfetto.protos.HeapGraphType\x12\x34\n\x0b\x66ield_names\x18\x04 \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12\x37\n\x0elocation_names\x18\x08 \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12\x11\n\tcontinued\x18\x05 \x01(\x08\x12\r\n\x05index\x18\x06 \x01(\x04J\x04\x08\x03\x10\x04\"\xbc\x0b\n\rProfilePacket\x12\x30\n\x07strings\x18\x01 \x03(\x0b\x32\x1f.perfetto.protos.InternedString\x12*\n\x08mappings\x18\x04 \x03(\x0b\x32\x18.perfetto.protos.Mapping\x12&\n\x06\x66rames\x18\x02 \x03(\x0b\x32\x16.perfetto.protos.Frame\x12.\n\ncallstacks\x18\x03 \x03(\x0b\x32\x1a.perfetto.protos.Callstack\x12H\n\rprocess_dumps\x18\x05 \x03(\x0b\x32\x31.perfetto.protos.ProfilePacket.ProcessHeapSamples\x12\x11\n\tcontinued\x18\x06 \x01(\x08\x12\r\n\x05index\x18\x07 \x01(\x04\x1a\xba\x01\n\nHeapSample\x12\x14\n\x0c\x63\x61llstack_id\x18\x01 \x01(\x04\x12\x16\n\x0eself_allocated\x18\x02 \x01(\x04\x12\x12\n\nself_freed\x18\x03 \x01(\x04\x12\x10\n\x08self_max\x18\x08 \x01(\x04\x12\x16\n\x0eself_max_count\x18\t \x01(\x04\x12\x11\n\ttimestamp\x18\x04 \x01(\x04\x12\x13\n\x0b\x61lloc_count\x18\x05 \x01(\x04\x12\x12\n\nfree_count\x18\x06 \x01(\x04J\x04\x08\x07\x10\x08\x1a\x8f\x01\n\tHistogram\x12@\n\x07\x62uckets\x18\x01 \x03(\x0b\x32/.perfetto.protos.ProfilePacket.Histogram.Bucket\x1a@\n\x06\x42ucket\x12\x13\n\x0bupper_limit\x18\x01 \x01(\x04\x12\x12\n\nmax_bucket\x18\x02 \x01(\x08\x12\r\n\x05\x63ount\x18\x03 \x01(\x04\x1a\xde\x01\n\x0cProcessStats\x12\x18\n\x10unwinding_errors\x18\x01 \x01(\x04\x12\x14\n\x0cheap_samples\x18\x02 \x01(\x04\x12\x14\n\x0cmap_reparses\x18\x03 \x01(\x04\x12\x43\n\x11unwinding_time_us\x18\x04 \x01(\x0b\x32(.perfetto.protos.ProfilePacket.Histogram\x12\x1f\n\x17total_unwinding_time_us\x18\x05 \x01(\x04\x12\"\n\x1a\x63lient_spinlock_blocked_us\x18\x06 \x01(\x04\x1a\xd8\x04\n\x12ProcessHeapSamples\x12\x0b\n\x03pid\x18\x01 \x01(\x04\x12\x14\n\x0c\x66rom_startup\x18\x03 \x01(\x08\x12\x1b\n\x13rejected_concurrent\x18\x04 \x01(\x08\x12\x14\n\x0c\x64isconnected\x18\x06 \x01(\x08\x12\x16\n\x0e\x62uffer_overran\x18\x07 \x01(\x08\x12S\n\x0c\x63lient_error\x18\x0e \x01(\x0e\x32=.perfetto.protos.ProfilePacket.ProcessHeapSamples.ClientError\x12\x18\n\x10\x62uffer_corrupted\x18\x08 \x01(\x08\x12\x15\n\rhit_guardrail\x18\n \x01(\x08\x12\x11\n\theap_name\x18\x0b \x01(\t\x12\x1f\n\x17sampling_interval_bytes\x18\x0c \x01(\x04\x12$\n\x1corig_sampling_interval_bytes\x18\r \x01(\x04\x12\x11\n\ttimestamp\x18\t \x01(\x04\x12:\n\x05stats\x18\x05 \x01(\x0b\x32+.perfetto.protos.ProfilePacket.ProcessStats\x12:\n\x07samples\x18\x02 \x03(\x0b\x32).perfetto.protos.ProfilePacket.HeapSample\"i\n\x0b\x43lientError\x12\x15\n\x11\x43LIENT_ERROR_NONE\x10\x00\x12\x1c\n\x18\x43LIENT_ERROR_HIT_TIMEOUT\x10\x01\x12%\n!CLIENT_ERROR_INVALID_STACK_BOUNDS\x10\x02\"\x9d\x01\n\x13StreamingAllocation\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x03(\x04\x12\x0c\n\x04size\x18\x02 \x03(\x04\x12\x13\n\x0bsample_size\x18\x03 \x03(\x04\x12(\n clock_monotonic_coarse_timestamp\x18\x04 \x03(\x04\x12\x0f\n\x07heap_id\x18\x05 \x03(\r\x12\x17\n\x0fsequence_number\x18\x06 \x03(\x04\"J\n\rStreamingFree\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x03(\x04\x12\x0f\n\x07heap_id\x18\x02 \x03(\r\x12\x17\n\x0fsequence_number\x18\x03 \x03(\x04\"e\n\x16StreamingProfilePacket\x12\x15\n\rcallstack_iid\x18\x01 \x03(\x04\x12\x1a\n\x12timestamp_delta_us\x18\x02 \x03(\x03\x12\x18\n\x10process_priority\x18\x03 \x01(\x05\"\x90\x05\n\tProfiling\"|\n\x07\x43puMode\x12\x10\n\x0cMODE_UNKNOWN\x10\x00\x12\x0f\n\x0bMODE_KERNEL\x10\x01\x12\r\n\tMODE_USER\x10\x02\x12\x13\n\x0fMODE_HYPERVISOR\x10\x03\x12\x15\n\x11MODE_GUEST_KERNEL\x10\x04\x12\x13\n\x0fMODE_GUEST_USER\x10\x05\"\x84\x04\n\x10StackUnwindError\x12\x18\n\x14UNWIND_ERROR_UNKNOWN\x10\x00\x12\x15\n\x11UNWIND_ERROR_NONE\x10\x01\x12\x1f\n\x1bUNWIND_ERROR_MEMORY_INVALID\x10\x02\x12\x1c\n\x18UNWIND_ERROR_UNWIND_INFO\x10\x03\x12\x1c\n\x18UNWIND_ERROR_UNSUPPORTED\x10\x04\x12\x1c\n\x18UNWIND_ERROR_INVALID_MAP\x10\x05\x12$\n UNWIND_ERROR_MAX_FRAMES_EXCEEDED\x10\x06\x12\x1f\n\x1bUNWIND_ERROR_REPEATED_FRAME\x10\x07\x12\x1c\n\x18UNWIND_ERROR_INVALID_ELF\x10\x08\x12\x1c\n\x18UNWIND_ERROR_SYSTEM_CALL\x10\t\x12\x1f\n\x1bUNWIND_ERROR_THREAD_TIMEOUT\x10\n\x12&\n\"UNWIND_ERROR_THREAD_DOES_NOT_EXIST\x10\x0b\x12\x19\n\x15UNWIND_ERROR_BAD_ARCH\x10\x0c\x12\x1b\n\x17UNWIND_ERROR_MAPS_PARSE\x10\r\x12\"\n\x1eUNWIND_ERROR_INVALID_PARAMETER\x10\x0e\x12\x1c\n\x18UNWIND_ERROR_PTRACE_CALL\x10\x0f\"\xef\x06\n\nPerfSample\x12\x0b\n\x03\x63pu\x18\x01 \x01(\r\x12\x0b\n\x03pid\x18\x02 \x01(\r\x12\x0b\n\x03tid\x18\x03 \x01(\r\x12\x34\n\x08\x63pu_mode\x18\x05 \x01(\x0e\x32\".perfetto.protos.Profiling.CpuMode\x12\x16\n\x0etimebase_count\x18\x06 \x01(\x04\x12\x17\n\x0f\x66ollower_counts\x18\x07 \x03(\x04\x12\x15\n\rcallstack_iid\x18\x04 \x01(\x04\x12\x43\n\x0cunwind_error\x18\x10 \x01(\x0e\x32+.perfetto.protos.Profiling.StackUnwindErrorH\x00\x12\x1b\n\x13kernel_records_lost\x18\x11 \x01(\x04\x12M\n\x15sample_skipped_reason\x18\x12 \x01(\x0e\x32,.perfetto.protos.PerfSample.SampleSkipReasonH\x01\x12\x41\n\x0eproducer_event\x18\x13 \x01(\x0b\x32).perfetto.protos.PerfSample.ProducerEvent\x1a\xdc\x01\n\rProducerEvent\x12\\\n\x12source_stop_reason\x18\x01 \x01(\x0e\x32>.perfetto.protos.PerfSample.ProducerEvent.DataSourceStopReasonH\x00\"N\n\x14\x44\x61taSourceStopReason\x12\x19\n\x15PROFILER_STOP_UNKNOWN\x10\x00\x12\x1b\n\x17PROFILER_STOP_GUARDRAIL\x10\x01\x42\x1d\n\x1boptional_source_stop_reason\"\xad\x01\n\x10SampleSkipReason\x12\x19\n\x15PROFILER_SKIP_UNKNOWN\x10\x00\x12\x1c\n\x18PROFILER_SKIP_READ_STAGE\x10\x01\x12\x1e\n\x1aPROFILER_SKIP_UNWIND_STAGE\x10\x02\x12 \n\x1cPROFILER_SKIP_UNWIND_ENQUEUE\x10\x03\x12\x1e\n\x1aPROFILER_SKIP_NOT_IN_SCOPE\x10\x04\x42\x17\n\x15optional_unwind_errorB \n\x1eoptional_sample_skipped_reason\"\xba\x01\n\x12PerfSampleDefaults\x12\x36\n\x08timebase\x18\x01 \x01(\x0b\x32$.perfetto.protos.PerfEvents.Timebase\x12\x31\n\tfollowers\x18\x04 \x03(\x0b\x32\x1e.perfetto.protos.FollowerEvent\x12\x1b\n\x13process_shard_count\x18\x02 \x01(\r\x12\x1c\n\x14\x63hosen_process_shard\x18\x03 \x01(\r\"\x83\x03\n\nSmapsEntry\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0f\n\x07size_kb\x18\x02 \x01(\x04\x12\x18\n\x10private_dirty_kb\x18\x03 \x01(\x04\x12\x0f\n\x07swap_kb\x18\x04 \x01(\x04\x12\x11\n\tfile_name\x18\x05 \x01(\t\x12\x15\n\rstart_address\x18\x06 \x01(\x04\x12\x18\n\x10module_timestamp\x18\x07 \x01(\x04\x12\x16\n\x0emodule_debugid\x18\x08 \x01(\t\x12\x19\n\x11module_debug_path\x18\t \x01(\t\x12\x18\n\x10protection_flags\x18\n \x01(\r\x12!\n\x19private_clean_resident_kb\x18\x0b \x01(\x04\x12 \n\x18shared_dirty_resident_kb\x18\x0c \x01(\x04\x12 \n\x18shared_clean_resident_kb\x18\r \x01(\x04\x12\x11\n\tlocked_kb\x18\x0e \x01(\x04\x12 \n\x18proportional_resident_kb\x18\x0f \x01(\x04\"H\n\x0bSmapsPacket\x12\x0b\n\x03pid\x18\x01 \x01(\r\x12,\n\x07\x65ntries\x18\x02 \x03(\x0b\x32\x1b.perfetto.protos.SmapsEntry\"\xbb\x06\n\x0cProcessStats\x12\x38\n\tprocesses\x18\x01 \x03(\x0b\x32%.perfetto.protos.ProcessStats.Process\x12 \n\x18\x63ollection_end_timestamp\x18\x02 \x01(\x04\x1a\'\n\x06Thread\x12\x0b\n\x03tid\x18\x01 \x01(\x05J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05\x1a\"\n\x06\x46\x44Info\x12\n\n\x02\x66\x64\x18\x01 \x01(\x04\x12\x0c\n\x04path\x18\x02 \x01(\t\x1a\x81\x05\n\x07Process\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x35\n\x07threads\x18\x0b \x03(\x0b\x32$.perfetto.protos.ProcessStats.Thread\x12\x12\n\nvm_size_kb\x18\x02 \x01(\x04\x12\x11\n\tvm_rss_kb\x18\x03 \x01(\x04\x12\x13\n\x0brss_anon_kb\x18\x04 \x01(\x04\x12\x13\n\x0brss_file_kb\x18\x05 \x01(\x04\x12\x14\n\x0crss_shmem_kb\x18\x06 \x01(\x04\x12\x12\n\nvm_swap_kb\x18\x07 \x01(\x04\x12\x14\n\x0cvm_locked_kb\x18\x08 \x01(\x04\x12\x11\n\tvm_hwm_kb\x18\t \x01(\x04\x12\x15\n\room_score_adj\x18\n \x01(\x03\x12\x1e\n\x16is_peak_rss_resettable\x18\x0c \x01(\x08\x12#\n\x1b\x63hrome_private_footprint_kb\x18\r \x01(\r\x12#\n\x1b\x63hrome_peak_resident_set_kb\x18\x0e \x01(\r\x12\x31\n\x03\x66\x64s\x18\x0f \x03(\x0b\x32$.perfetto.protos.ProcessStats.FDInfo\x12\x12\n\nsmr_rss_kb\x18\x10 \x01(\x04\x12\x12\n\nsmr_pss_kb\x18\x11 \x01(\x04\x12\x17\n\x0fsmr_pss_anon_kb\x18\x12 \x01(\x04\x12\x17\n\x0fsmr_pss_file_kb\x18\x13 \x01(\x04\x12\x18\n\x10smr_pss_shmem_kb\x18\x14 \x01(\x04\x12\x17\n\x0fsmr_swap_pss_kb\x18\x17 \x01(\x04\x12\x19\n\x11runtime_user_mode\x18\x15 \x01(\x04\x12\x1b\n\x13runtime_kernel_mode\x18\x16 \x01(\x04\x12\x15\n\rdmabuf_rss_kb\x18\x18 \x01(\x04\"\x88\x03\n\x0bProcessTree\x12\x37\n\tprocesses\x18\x01 \x03(\x0b\x32$.perfetto.protos.ProcessTree.Process\x12\x34\n\x07threads\x18\x02 \x03(\x0b\x32#.perfetto.protos.ProcessTree.Thread\x12 \n\x18\x63ollection_end_timestamp\x18\x03 \x01(\x04\x1a@\n\x06Thread\x12\x0b\n\x03tid\x18\x01 \x01(\x05\x12\x0c\n\x04tgid\x18\x03 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\r\n\x05nstid\x18\x04 \x03(\x05\x1a\xa5\x01\n\x07Process\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x0c\n\x04ppid\x18\x02 \x01(\x05\x12\x0f\n\x07\x63mdline\x18\x03 \x03(\t\x12\x17\n\x0f\x63mdline_is_comm\x18\t \x01(\x08\x12\x0b\n\x03uid\x18\x05 \x01(\x05\x12\r\n\x05nspid\x18\x06 \x03(\x05\x12\x1f\n\x17process_start_from_boot\x18\x07 \x01(\x04\x12\x12\n\nis_kthread\x18\x08 \x01(\x08J\x04\x08\x04\x10\x05\"\xd3\x01\n\x0fRemoteClockSync\x12\x44\n\rsynced_clocks\x18\x01 \x03(\x0b\x32-.perfetto.protos.RemoteClockSync.SyncedClocks\x1az\n\x0cSyncedClocks\x12\x35\n\rclient_clocks\x18\x02 \x01(\x0b\x32\x1e.perfetto.protos.ClockSnapshot\x12\x33\n\x0bhost_clocks\x18\x03 \x01(\x0b\x32\x1e.perfetto.protos.ClockSnapshot\"\x06\n\x04\x41tom\"J\n\nStatsdAtom\x12#\n\x04\x61tom\x18\x01 \x03(\x0b\x32\x15.perfetto.protos.Atom\x12\x17\n\x0ftimestamp_nanos\x18\x02 \x03(\x03\"\xe8\x0f\n\x08SysStats\x12\x37\n\x07meminfo\x18\x01 \x03(\x0b\x32&.perfetto.protos.SysStats.MeminfoValue\x12\x35\n\x06vmstat\x18\x02 \x03(\x0b\x32%.perfetto.protos.SysStats.VmstatValue\x12\x34\n\x08\x63pu_stat\x18\x03 \x03(\x0b\x32\".perfetto.protos.SysStats.CpuTimes\x12\x11\n\tnum_forks\x18\x04 \x01(\x04\x12\x15\n\rnum_irq_total\x18\x05 \x01(\x04\x12\x39\n\x07num_irq\x18\x06 \x03(\x0b\x32(.perfetto.protos.SysStats.InterruptCount\x12\x19\n\x11num_softirq_total\x18\x07 \x01(\x04\x12=\n\x0bnum_softirq\x18\x08 \x03(\x0b\x32(.perfetto.protos.SysStats.InterruptCount\x12 \n\x18\x63ollection_end_timestamp\x18\t \x01(\x04\x12\x37\n\x07\x64\x65vfreq\x18\n \x03(\x0b\x32&.perfetto.protos.SysStats.DevfreqValue\x12\x13\n\x0b\x63pufreq_khz\x18\x0b \x03(\r\x12\x37\n\nbuddy_info\x18\x0c \x03(\x0b\x32#.perfetto.protos.SysStats.BuddyInfo\x12\x35\n\tdisk_stat\x18\r \x03(\x0b\x32\".perfetto.protos.SysStats.DiskStat\x12\x30\n\x03psi\x18\x0e \x03(\x0b\x32#.perfetto.protos.SysStats.PsiSample\x12;\n\x0cthermal_zone\x18\x0f \x03(\x0b\x32%.perfetto.protos.SysStats.ThermalZone\x12=\n\rcpuidle_state\x18\x10 \x03(\x0b\x32&.perfetto.protos.SysStats.CpuIdleState\x12\x13\n\x0bgpufreq_mhz\x18\x11 \x03(\x04\x1aL\n\x0cMeminfoValue\x12-\n\x03key\x18\x01 \x01(\x0e\x32 .perfetto.protos.MeminfoCounters\x12\r\n\x05value\x18\x02 \x01(\x04\x1aJ\n\x0bVmstatValue\x12,\n\x03key\x18\x01 \x01(\x0e\x32\x1f.perfetto.protos.VmstatCounters\x12\r\n\x05value\x18\x02 \x01(\x04\x1a\xb4\x01\n\x08\x43puTimes\x12\x0e\n\x06\x63pu_id\x18\x01 \x01(\r\x12\x0f\n\x07user_ns\x18\x02 \x01(\x04\x12\x14\n\x0cuser_nice_ns\x18\x03 \x01(\x04\x12\x16\n\x0esystem_mode_ns\x18\x04 \x01(\x04\x12\x0f\n\x07idle_ns\x18\x05 \x01(\x04\x12\x12\n\nio_wait_ns\x18\x06 \x01(\x04\x12\x0e\n\x06irq_ns\x18\x07 \x01(\x04\x12\x12\n\nsoftirq_ns\x18\x08 \x01(\x04\x12\x10\n\x08steal_ns\x18\t \x01(\x04\x1a,\n\x0eInterruptCount\x12\x0b\n\x03irq\x18\x01 \x01(\x05\x12\r\n\x05\x63ount\x18\x02 \x01(\x04\x1a*\n\x0c\x44\x65vfreqValue\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x04\x1a<\n\tBuddyInfo\x12\x0c\n\x04node\x18\x01 \x01(\t\x12\x0c\n\x04zone\x18\x02 \x01(\t\x12\x13\n\x0border_pages\x18\x03 \x03(\r\x1a\xd7\x01\n\x08\x44iskStat\x12\x13\n\x0b\x64\x65vice_name\x18\x01 \x01(\t\x12\x14\n\x0cread_sectors\x18\x02 \x01(\x04\x12\x14\n\x0cread_time_ms\x18\x03 \x01(\x04\x12\x15\n\rwrite_sectors\x18\x04 \x01(\x04\x12\x15\n\rwrite_time_ms\x18\x05 \x01(\x04\x12\x17\n\x0f\x64iscard_sectors\x18\x06 \x01(\x04\x12\x17\n\x0f\x64iscard_time_ms\x18\x07 \x01(\x04\x12\x13\n\x0b\x66lush_count\x18\x08 \x01(\x04\x12\x15\n\rflush_time_ms\x18\t \x01(\x04\x1a\xb4\x02\n\tPsiSample\x12\x41\n\x08resource\x18\x01 \x01(\x0e\x32/.perfetto.protos.SysStats.PsiSample.PsiResource\x12\x10\n\x08total_ns\x18\x02 \x01(\x04\"\xd1\x01\n\x0bPsiResource\x12\x1c\n\x18PSI_RESOURCE_UNSPECIFIED\x10\x00\x12\x19\n\x15PSI_RESOURCE_CPU_SOME\x10\x01\x12\x19\n\x15PSI_RESOURCE_CPU_FULL\x10\x02\x12\x18\n\x14PSI_RESOURCE_IO_SOME\x10\x03\x12\x18\n\x14PSI_RESOURCE_IO_FULL\x10\x04\x12\x1c\n\x18PSI_RESOURCE_MEMORY_SOME\x10\x05\x12\x1c\n\x18PSI_RESOURCE_MEMORY_FULL\x10\x06\x1a\x37\n\x0bThermalZone\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04temp\x18\x02 \x01(\x04\x12\x0c\n\x04type\x18\x03 \x01(\t\x1a\x37\n\x11\x43puIdleStateEntry\x12\r\n\x05state\x18\x01 \x01(\t\x12\x13\n\x0b\x64uration_us\x18\x02 \x01(\x04\x1ah\n\x0c\x43puIdleState\x12\x0e\n\x06\x63pu_id\x18\x01 \x01(\r\x12H\n\x13\x63puidle_state_entry\x18\x02 \x03(\x0b\x32+.perfetto.protos.SysStats.CpuIdleStateEntry\"\xcc\x02\n\x07\x43puInfo\x12*\n\x04\x63pus\x18\x01 \x03(\x0b\x32\x1c.perfetto.protos.CpuInfo.Cpu\x1an\n\x10\x41rmCpuIdentifier\x12\x13\n\x0bimplementer\x18\x01 \x01(\r\x12\x14\n\x0c\x61rchitecture\x18\x02 \x01(\r\x12\x0f\n\x07variant\x18\x03 \x01(\r\x12\x0c\n\x04part\x18\x04 \x01(\r\x12\x10\n\x08revision\x18\x05 \x01(\r\x1a\xa4\x01\n\x03\x43pu\x12\x11\n\tprocessor\x18\x01 \x01(\t\x12\x13\n\x0b\x66requencies\x18\x02 \x03(\r\x12\x10\n\x08\x63\x61pacity\x18\x03 \x01(\r\x12\x43\n\x0e\x61rm_identifier\x18\x04 \x01(\x0b\x32).perfetto.protos.CpuInfo.ArmCpuIdentifierH\x00\x12\x10\n\x08\x66\x65\x61tures\x18\x05 \x01(\x04\x42\x0c\n\nidentifier\"\xfb\x02\n\tTestEvent\x12\x0b\n\x03str\x18\x01 \x01(\t\x12\x11\n\tseq_value\x18\x02 \x01(\r\x12\x0f\n\x07\x63ounter\x18\x03 \x01(\x04\x12\x0f\n\x07is_last\x18\x04 \x01(\x08\x12\x37\n\x07payload\x18\x05 \x01(\x0b\x32&.perfetto.protos.TestEvent.TestPayload\x1a\xf2\x01\n\x0bTestPayload\x12\x0b\n\x03str\x18\x01 \x03(\t\x12\x36\n\x06nested\x18\x02 \x03(\x0b\x32&.perfetto.protos.TestEvent.TestPayload\x12\x15\n\rsingle_string\x18\x04 \x01(\t\x12\x12\n\nsingle_int\x18\x05 \x01(\x05\x12\x15\n\rrepeated_ints\x18\x06 \x03(\x05\x12\x1f\n\x17remaining_nesting_depth\x18\x03 \x01(\r\x12;\n\x11\x64\x65\x62ug_annotations\x18\x07 \x03(\x0b\x32 .perfetto.protos.DebugAnnotation\"\xf2\x01\n\x13TracePacketDefaults\x12\x1a\n\x12timestamp_clock_id\x18: \x01(\r\x12\x41\n\x14track_event_defaults\x18\x0b \x01(\x0b\x32#.perfetto.protos.TrackEventDefaults\x12\x41\n\x14perf_sample_defaults\x18\x0c \x01(\x0b\x32#.perfetto.protos.PerfSampleDefaults\x12\x39\n\x10v8_code_defaults\x18\x63 \x01(\x0b\x32\x1f.perfetto.protos.V8CodeDefaults\"%\n\tTraceUuid\x12\x0b\n\x03msb\x18\x01 \x01(\x03\x12\x0b\n\x03lsb\x18\x02 \x01(\x03\"\xe7\x03\n\x11ProcessDescriptor\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x0f\n\x07\x63mdline\x18\x02 \x03(\t\x12\x14\n\x0cprocess_name\x18\x06 \x01(\t\x12\x18\n\x10process_priority\x18\x05 \x01(\x05\x12\x1a\n\x12start_timestamp_ns\x18\x07 \x01(\x03\x12Q\n\x13\x63hrome_process_type\x18\x04 \x01(\x0e\x32\x34.perfetto.protos.ProcessDescriptor.ChromeProcessType\x12\x19\n\x11legacy_sort_index\x18\x03 \x01(\x05\x12\x16\n\x0eprocess_labels\x18\x08 \x03(\t\"\xe1\x01\n\x11\x43hromeProcessType\x12\x17\n\x13PROCESS_UNSPECIFIED\x10\x00\x12\x13\n\x0fPROCESS_BROWSER\x10\x01\x12\x14\n\x10PROCESS_RENDERER\x10\x02\x12\x13\n\x0fPROCESS_UTILITY\x10\x03\x12\x12\n\x0ePROCESS_ZYGOTE\x10\x04\x12\x1a\n\x16PROCESS_SANDBOX_HELPER\x10\x05\x12\x0f\n\x0bPROCESS_GPU\x10\x06\x12\x18\n\x14PROCESS_PPAPI_PLUGIN\x10\x07\x12\x18\n\x14PROCESS_PPAPI_BROKER\x10\x08\"-\n\x19TrackEventRangeOfInterest\x12\x10\n\x08start_us\x18\x01 \x01(\x03\"\xf4\x05\n\x10ThreadDescriptor\x12\x0b\n\x03pid\x18\x01 \x01(\x05\x12\x0b\n\x03tid\x18\x02 \x01(\x05\x12\x13\n\x0bthread_name\x18\x05 \x01(\t\x12N\n\x12\x63hrome_thread_type\x18\x04 \x01(\x0e\x32\x32.perfetto.protos.ThreadDescriptor.ChromeThreadType\x12\x1e\n\x16reference_timestamp_us\x18\x06 \x01(\x03\x12 \n\x18reference_thread_time_us\x18\x07 \x01(\x03\x12*\n\"reference_thread_instruction_count\x18\x08 \x01(\x03\x12\x19\n\x11legacy_sort_index\x18\x03 \x01(\x05\"\xd7\x03\n\x10\x43hromeThreadType\x12\x1d\n\x19\x43HROME_THREAD_UNSPECIFIED\x10\x00\x12\x16\n\x12\x43HROME_THREAD_MAIN\x10\x01\x12\x14\n\x10\x43HROME_THREAD_IO\x10\x02\x12 \n\x1c\x43HROME_THREAD_POOL_BG_WORKER\x10\x03\x12 \n\x1c\x43HROME_THREAD_POOL_FG_WORKER\x10\x04\x12\"\n\x1e\x43HROME_THREAD_POOL_FB_BLOCKING\x10\x05\x12\"\n\x1e\x43HROME_THREAD_POOL_BG_BLOCKING\x10\x06\x12\x1e\n\x1a\x43HROME_THREAD_POOL_SERVICE\x10\x07\x12\x1c\n\x18\x43HROME_THREAD_COMPOSITOR\x10\x08\x12 \n\x1c\x43HROME_THREAD_VIZ_COMPOSITOR\x10\t\x12#\n\x1f\x43HROME_THREAD_COMPOSITOR_WORKER\x10\n\x12 \n\x1c\x43HROME_THREAD_SERVICE_WORKER\x10\x0b\x12\x1e\n\x1a\x43HROME_THREAD_MEMORY_INFRA\x10\x32\x12#\n\x1f\x43HROME_THREAD_SAMPLING_PROFILER\x10\x33\"\x9b\x01\n\x17\x43hromeProcessDescriptor\x12\x14\n\x0cprocess_type\x18\x01 \x01(\x05\x12\x18\n\x10process_priority\x18\x02 \x01(\x05\x12\x19\n\x11legacy_sort_index\x18\x03 \x01(\x05\x12\x1d\n\x15host_app_package_name\x18\x04 \x01(\t\x12\x16\n\x0e\x63rash_trace_id\x18\x05 \x01(\x04\"b\n\x16\x43hromeThreadDescriptor\x12\x13\n\x0bthread_type\x18\x01 \x01(\x05\x12\x19\n\x11legacy_sort_index\x18\x02 \x01(\x05\x12\x18\n\x10is_sandboxed_tid\x18\x03 \x01(\x08\"\xc7\x03\n\x11\x43ounterDescriptor\x12\x43\n\x04type\x18\x01 \x01(\x0e\x32\x35.perfetto.protos.CounterDescriptor.BuiltinCounterType\x12\x12\n\ncategories\x18\x02 \x03(\t\x12\x35\n\x04unit\x18\x03 \x01(\x0e\x32\'.perfetto.protos.CounterDescriptor.Unit\x12\x11\n\tunit_name\x18\x06 \x01(\t\x12\x17\n\x0funit_multiplier\x18\x04 \x01(\x03\x12\x16\n\x0eis_incremental\x18\x05 \x01(\x08\x12\x18\n\x10y_axis_share_key\x18\x07 \x01(\t\"o\n\x12\x42uiltinCounterType\x12\x17\n\x13\x43OUNTER_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x43OUNTER_THREAD_TIME_NS\x10\x01\x12$\n COUNTER_THREAD_INSTRUCTION_COUNT\x10\x02\"S\n\x04Unit\x12\x14\n\x10UNIT_UNSPECIFIED\x10\x00\x12\x10\n\x0cUNIT_TIME_NS\x10\x01\x12\x0e\n\nUNIT_COUNT\x10\x02\x12\x13\n\x0fUNIT_SIZE_BYTES\x10\x03\"\x9c\x08\n\x0fTrackDescriptor\x12\x0c\n\x04uuid\x18\x01 \x01(\x04\x12\x13\n\x0bparent_uuid\x18\x05 \x01(\x04\x12\x0e\n\x04name\x18\x02 \x01(\tH\x00\x12\x15\n\x0bstatic_name\x18\n \x01(\tH\x00\x12\x15\n\x0b\x61trace_name\x18\r \x01(\tH\x00\x12\x13\n\x0b\x64\x65scription\x18\x0e \x01(\t\x12\x33\n\x07process\x18\x03 \x01(\x0b\x32\".perfetto.protos.ProcessDescriptor\x12@\n\x0e\x63hrome_process\x18\x06 \x01(\x0b\x32(.perfetto.protos.ChromeProcessDescriptor\x12\x31\n\x06thread\x18\x04 \x01(\x0b\x32!.perfetto.protos.ThreadDescriptor\x12>\n\rchrome_thread\x18\x07 \x01(\x0b\x32\'.perfetto.protos.ChromeThreadDescriptor\x12\x33\n\x07\x63ounter\x18\x08 \x01(\x0b\x32\".perfetto.protos.CounterDescriptor\x12+\n#disallow_merging_with_system_tracks\x18\t \x01(\x08\x12L\n\x0e\x63hild_ordering\x18\x0b \x01(\x0e\x32\x34.perfetto.protos.TrackDescriptor.ChildTracksOrdering\x12\x1a\n\x12sibling_order_rank\x18\x0c \x01(\x05\x12U\n\x16sibling_merge_behavior\x18\x0f \x01(\x0e\x32\x35.perfetto.protos.TrackDescriptor.SiblingMergeBehavior\x12\x1b\n\x11sibling_merge_key\x18\x10 \x01(\tH\x01\x12\x1f\n\x15sibling_merge_key_int\x18\x11 \x01(\x04H\x01\"V\n\x13\x43hildTracksOrdering\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x11\n\rLEXICOGRAPHIC\x10\x01\x12\x11\n\rCHRONOLOGICAL\x10\x02\x12\x0c\n\x08\x45XPLICIT\x10\x03\"\xba\x01\n\x14SiblingMergeBehavior\x12&\n\"SIBLING_MERGE_BEHAVIOR_UNSPECIFIED\x10\x00\x12(\n$SIBLING_MERGE_BEHAVIOR_BY_TRACK_NAME\x10\x01\x12\x1f\n\x1bSIBLING_MERGE_BEHAVIOR_NONE\x10\x02\x12/\n+SIBLING_MERGE_BEHAVIOR_BY_SIBLING_MERGE_KEY\x10\x03\x42\x18\n\x16static_or_dynamic_nameB\x19\n\x17sibling_merge_key_field\"\xed\x03\n\x10TranslationTable\x12M\n\x10\x63hrome_histogram\x18\x01 \x01(\x0b\x32\x31.perfetto.protos.ChromeHistorgramTranslationTableH\x00\x12M\n\x11\x63hrome_user_event\x18\x02 \x01(\x0b\x32\x30.perfetto.protos.ChromeUserEventTranslationTableH\x00\x12Y\n\x17\x63hrome_performance_mark\x18\x03 \x01(\x0b\x32\x36.perfetto.protos.ChromePerformanceMarkTranslationTableH\x00\x12@\n\nslice_name\x18\x04 \x01(\x0b\x32*.perfetto.protos.SliceNameTranslationTableH\x00\x12O\n\x12process_track_name\x18\x05 \x01(\x0b\x32\x31.perfetto.protos.ProcessTrackNameTranslationTableH\x00\x12\x44\n\x0c\x63hrome_study\x18\x06 \x01(\x0b\x32,.perfetto.protos.ChromeStudyTranslationTableH\x00\x42\x07\n\x05table\"\xae\x01\n ChromeHistorgramTranslationTable\x12W\n\x0chash_to_name\x18\x01 \x03(\x0b\x32\x41.perfetto.protos.ChromeHistorgramTranslationTable.HashToNameEntry\x1a\x31\n\x0fHashToNameEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xbf\x01\n\x1f\x43hromeUserEventTranslationTable\x12\x63\n\x13\x61\x63tion_hash_to_name\x18\x01 \x03(\x0b\x32\x46.perfetto.protos.ChromeUserEventTranslationTable.ActionHashToNameEntry\x1a\x37\n\x15\x41\x63tionHashToNameEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xe3\x02\n%ChromePerformanceMarkTranslationTable\x12\x65\n\x11site_hash_to_name\x18\x01 \x03(\x0b\x32J.perfetto.protos.ChromePerformanceMarkTranslationTable.SiteHashToNameEntry\x12\x65\n\x11mark_hash_to_name\x18\x02 \x03(\x0b\x32J.perfetto.protos.ChromePerformanceMarkTranslationTable.MarkHashToNameEntry\x1a\x35\n\x13SiteHashToNameEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x35\n\x13MarkHashToNameEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xc2\x01\n\x19SliceNameTranslationTable\x12g\n\x18raw_to_deobfuscated_name\x18\x01 \x03(\x0b\x32\x45.perfetto.protos.SliceNameTranslationTable.RawToDeobfuscatedNameEntry\x1a<\n\x1aRawToDeobfuscatedNameEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xd0\x01\n ProcessTrackNameTranslationTable\x12n\n\x18raw_to_deobfuscated_name\x18\x01 \x03(\x0b\x32L.perfetto.protos.ProcessTrackNameTranslationTable.RawToDeobfuscatedNameEntry\x1a<\n\x1aRawToDeobfuscatedNameEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa4\x01\n\x1b\x43hromeStudyTranslationTable\x12R\n\x0chash_to_name\x18\x01 \x03(\x0b\x32<.perfetto.protos.ChromeStudyTranslationTable.HashToNameEntry\x1a\x31\n\x0fHashToNameEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"k\n\x07Trigger\x12\x14\n\x0ctrigger_name\x18\x01 \x01(\t\x12\x15\n\rproducer_name\x18\x02 \x01(\t\x12\x1c\n\x14trusted_producer_uid\x18\x03 \x01(\x05\x12\x15\n\rstop_delay_ms\x18\x04 \x01(\x04\"\xc5\x01\n\x07UiState\x12\x19\n\x11timeline_start_ts\x18\x01 \x01(\x03\x12\x17\n\x0ftimeline_end_ts\x18\x02 \x01(\x03\x12\x44\n\x11highlight_process\x18\x03 \x01(\x0b\x32).perfetto.protos.UiState.HighlightProcess\x1a@\n\x10HighlightProcess\x12\r\n\x03pid\x18\x01 \x01(\rH\x00\x12\x11\n\x07\x63mdline\x18\x02 \x01(\tH\x00\x42\n\n\x08selector\"\xdf\x30\n\x0bTracePacket\x12\x11\n\ttimestamp\x18\x08 \x01(\x04\x12\x1a\n\x12timestamp_clock_id\x18: \x01(\r\x12\x34\n\x0cprocess_tree\x18\x02 \x01(\x0b\x32\x1c.perfetto.protos.ProcessTreeH\x00\x12\x36\n\rprocess_stats\x18\t \x01(\x0b\x32\x1d.perfetto.protos.ProcessStatsH\x00\x12\x37\n\x0einode_file_map\x18\x04 \x01(\x0b\x32\x1d.perfetto.protos.InodeFileMapH\x00\x12;\n\rchrome_events\x18\x05 \x01(\x0b\x32\".perfetto.protos.ChromeEventBundleH\x00\x12\x38\n\x0e\x63lock_snapshot\x18\x06 \x01(\x0b\x32\x1e.perfetto.protos.ClockSnapshotH\x00\x12.\n\tsys_stats\x18\x07 \x01(\x0b\x32\x19.perfetto.protos.SysStatsH\x00\x12\x32\n\x0btrack_event\x18\x0b \x01(\x0b\x32\x1b.perfetto.protos.TrackEventH\x00\x12\x30\n\ntrace_uuid\x18Y \x01(\x0b\x32\x1a.perfetto.protos.TraceUuidH\x00\x12\x34\n\x0ctrace_config\x18! \x01(\x0b\x32\x1c.perfetto.protos.TraceConfigH\x00\x12\x34\n\x0c\x66trace_stats\x18\" \x01(\x0b\x32\x1c.perfetto.protos.FtraceStatsH\x00\x12\x32\n\x0btrace_stats\x18# \x01(\x0b\x32\x1b.perfetto.protos.TraceStatsH\x00\x12\x38\n\x0eprofile_packet\x18% \x01(\x0b\x32\x1e.perfetto.protos.ProfilePacketH\x00\x12\x44\n\x14streaming_allocation\x18J \x01(\x0b\x32$.perfetto.protos.StreamingAllocationH\x00\x12\x38\n\x0estreaming_free\x18K \x01(\x0b\x32\x1e.perfetto.protos.StreamingFreeH\x00\x12\x33\n\x07\x62\x61ttery\x18& \x01(\x0b\x32 .perfetto.protos.BatteryCountersH\x00\x12\x32\n\x0bpower_rails\x18( \x01(\x0b\x32\x1b.perfetto.protos.PowerRailsH\x00\x12\x38\n\x0b\x61ndroid_log\x18\' \x01(\x0b\x32!.perfetto.protos.AndroidLogPacketH\x00\x12\x32\n\x0bsystem_info\x18- \x01(\x0b\x32\x1b.perfetto.protos.SystemInfoH\x00\x12+\n\x07trigger\x18. \x01(\x0b\x32\x18.perfetto.protos.TriggerH\x00\x12\x38\n\x0e\x63hrome_trigger\x18m \x01(\x0b\x32\x1e.perfetto.protos.ChromeTriggerH\x00\x12\x36\n\rpackages_list\x18/ \x01(\x0b\x32\x1d.perfetto.protos.PackagesListH\x00\x12M\n\x19\x63hrome_benchmark_metadata\x18\x30 \x01(\x0b\x32(.perfetto.protos.ChromeBenchmarkMetadataH\x00\x12@\n\x12perfetto_metatrace\x18\x31 \x01(\x0b\x32\".perfetto.protos.PerfettoMetatraceH\x00\x12@\n\x0f\x63hrome_metadata\x18\x33 \x01(\x0b\x32%.perfetto.protos.ChromeMetadataPacketH\x00\x12=\n\x11gpu_counter_event\x18\x34 \x01(\x0b\x32 .perfetto.protos.GpuCounterEventH\x00\x12\x46\n\x16gpu_render_stage_event\x18\x35 \x01(\x0b\x32$.perfetto.protos.GpuRenderStageEventH\x00\x12K\n\x18streaming_profile_packet\x18\x36 \x01(\x0b\x32\'.perfetto.protos.StreamingProfilePacketH\x00\x12\x30\n\nheap_graph\x18\x38 \x01(\x0b\x32\x1a.perfetto.protos.HeapGraphH\x00\x12\x43\n\x14graphics_frame_event\x18\x39 \x01(\x0b\x32#.perfetto.protos.GraphicsFrameEventH\x00\x12\x41\n\x13vulkan_memory_event\x18> \x01(\x0b\x32\".perfetto.protos.VulkanMemoryEventH\x00\x12*\n\x07gpu_log\x18? \x01(\x0b\x32\x17.perfetto.protos.GpuLogH\x00\x12;\n\x10vulkan_api_event\x18\x41 \x01(\x0b\x32\x1f.perfetto.protos.VulkanApiEventH\x00\x12\x32\n\x0bperf_sample\x18\x42 \x01(\x0b\x32\x1b.perfetto.protos.PerfSampleH\x00\x12,\n\x08\x63pu_info\x18\x43 \x01(\x0b\x32\x18.perfetto.protos.CpuInfoH\x00\x12\x34\n\x0csmaps_packet\x18\x44 \x01(\x0b\x32\x1c.perfetto.protos.SmapsPacketH\x00\x12=\n\rservice_event\x18\x45 \x01(\x0b\x32$.perfetto.protos.TracingServiceEventH\x00\x12\x45\n\x15initial_display_state\x18\x46 \x01(\x0b\x32$.perfetto.protos.InitialDisplayStateH\x00\x12@\n\x13gpu_mem_total_event\x18G \x01(\x0b\x32!.perfetto.protos.GpuMemTotalEventH\x00\x12I\n\x17memory_tracker_snapshot\x18I \x01(\x0b\x32&.perfetto.protos.MemoryTrackerSnapshotH\x00\x12\x43\n\x14\x66rame_timeline_event\x18L \x01(\x0b\x32#.perfetto.protos.FrameTimelineEventH\x00\x12`\n#android_energy_estimation_breakdown\x18M \x01(\x0b\x32\x31.perfetto.protos.AndroidEnergyEstimationBreakdownH\x00\x12,\n\x08ui_state\x18N \x01(\x0b\x32\x18.perfetto.protos.UiStateH\x00\x12N\n\x1a\x61ndroid_camera_frame_event\x18P \x01(\x0b\x32(.perfetto.protos.AndroidCameraFrameEventH\x00\x12R\n\x1c\x61ndroid_camera_session_stats\x18Q \x01(\x0b\x32*.perfetto.protos.AndroidCameraSessionStatsH\x00\x12>\n\x11translation_table\x18R \x01(\x0b\x32!.perfetto.protos.TranslationTableH\x00\x12V\n\x1e\x61ndroid_game_intervention_list\x18S \x01(\x0b\x32,.perfetto.protos.AndroidGameInterventionListH\x00\x12\x32\n\x0bstatsd_atom\x18T \x01(\x0b\x32\x1b.perfetto.protos.StatsdAtomH\x00\x12I\n\x17\x61ndroid_system_property\x18V \x01(\x0b\x32&.perfetto.protos.AndroidSystemPropertyH\x00\x12G\n\x16\x65ntity_state_residency\x18[ \x01(\x0b\x32%.perfetto.protos.EntityStateResidencyH\x00\x12\x38\n\x0emodule_symbols\x18= \x01(\x0b\x32\x1e.perfetto.protos.ModuleSymbolsH\x00\x12\x46\n\x15\x64\x65obfuscation_mapping\x18@ \x01(\x0b\x32%.perfetto.protos.DeobfuscationMappingH\x00\x12<\n\x10track_descriptor\x18< \x01(\x0b\x32 .perfetto.protos.TrackDescriptorH\x00\x12@\n\x12process_descriptor\x18+ \x01(\x0b\x32\".perfetto.protos.ProcessDescriptorH\x00\x12>\n\x11thread_descriptor\x18, \x01(\x0b\x32!.perfetto.protos.ThreadDescriptorH\x00\x12;\n\rftrace_events\x18\x01 \x01(\x0b\x32\".perfetto.protos.FtraceEventBundleH\x00\x12 \n\x16synchronization_marker\x18$ \x01(\x0cH\x00\x12\x1c\n\x12\x63ompressed_packets\x18\x32 \x01(\x0cH\x00\x12\x44\n\x14\x65xtension_descriptor\x18H \x01(\x0b\x32$.perfetto.protos.ExtensionDescriptorH\x00\x12=\n\x0enetwork_packet\x18X \x01(\x0b\x32#.perfetto.protos.NetworkPacketEventH\x00\x12\x45\n\x15network_packet_bundle\x18\\ \x01(\x0b\x32$.perfetto.protos.NetworkPacketBundleH\x00\x12S\n\x1dtrack_event_range_of_interest\x18Z \x01(\x0b\x32*.perfetto.protos.TrackEventRangeOfInterestH\x00\x12N\n\x1esurfaceflinger_layers_snapshot\x18] \x01(\x0b\x32$.perfetto.protos.LayersSnapshotProtoH\x00\x12M\n\x1bsurfaceflinger_transactions\x18^ \x01(\x0b\x32&.perfetto.protos.TransactionTraceEntryH\x00\x12<\n\x10shell_transition\x18` \x01(\x0b\x32 .perfetto.protos.ShellTransitionH\x00\x12G\n\x16shell_handler_mappings\x18\x61 \x01(\x0b\x32%.perfetto.protos.ShellHandlerMappingsH\x00\x12<\n\x10protolog_message\x18h \x01(\x0b\x32 .perfetto.protos.ProtoLogMessageH\x00\x12G\n\x16protolog_viewer_config\x18i \x01(\x0b\x32%.perfetto.protos.ProtoLogViewerConfigH\x00\x12\x42\n\x13winscope_extensions\x18p \x01(\x0b\x32#.perfetto.protos.WinscopeExtensionsH\x00\x12:\n\netw_events\x18_ \x01(\x0b\x32$.perfetto.protos.EtwTraceEventBundleH\x00\x12/\n\nv8_js_code\x18\x63 \x01(\x0b\x32\x19.perfetto.protos.V8JsCodeH\x00\x12;\n\x10v8_internal_code\x18\x64 \x01(\x0b\x32\x1f.perfetto.protos.V8InternalCodeH\x00\x12\x33\n\x0cv8_wasm_code\x18\x65 \x01(\x0b\x32\x1b.perfetto.protos.V8WasmCodeH\x00\x12\x38\n\x0fv8_reg_exp_code\x18\x66 \x01(\x0b\x32\x1d.perfetto.protos.V8RegExpCodeH\x00\x12\x33\n\x0cv8_code_move\x18g \x01(\x0b\x32\x1b.perfetto.protos.V8CodeMoveH\x00\x12=\n\x11remote_clock_sync\x18k \x01(\x0b\x32 .perfetto.protos.RemoteClockSyncH\x00\x12?\n\x12pixel_modem_events\x18n \x01(\x0b\x32!.perfetto.protos.PixelModemEventsH\x00\x12N\n\x1apixel_modem_token_database\x18o \x01(\x0b\x32(.perfetto.protos.PixelModemTokenDatabaseH\x00\x12:\n\x16\x63lone_snapshot_trigger\x18q \x01(\x0b\x32\x18.perfetto.protos.TriggerH\x00\x12\x45\n\x15\x62luetooth_trace_event\x18r \x01(\x0b\x32$.perfetto.protos.BluetoothTraceEventH\x00\x12\x43\n\x14kernel_wakelock_data\x18s \x01(\x0b\x32#.perfetto.protos.KernelWakelockDataH\x00\x12\x41\n\x13\x61pp_wakelock_bundle\x18t \x01(\x0b\x32\".perfetto.protos.AppWakelockBundleH\x00\x12W\n\x1fgeneric_kernel_task_state_event\x18u \x01(\x0b\x32,.perfetto.protos.GenericKernelTaskStateEventH\x00\x12X\n\x1dgeneric_kernel_cpu_freq_event\x18v \x01(\x0b\x32/.perfetto.protos.GenericKernelCpuFrequencyEventH\x00\x12Y\n generic_kernel_task_rename_event\x18x \x01(\x0b\x32-.perfetto.protos.GenericKernelTaskRenameEventH\x00\x12P\n\x1bgeneric_kernel_process_tree\x18z \x01(\x0b\x32).perfetto.protos.GenericKernelProcessTreeH\x00\x12:\n\x10\x63pu_per_uid_data\x18w \x01(\x0b\x32\x1e.perfetto.protos.CpuPerUidDataH\x00\x12\x32\n\x0b\x65vdev_event\x18y \x01(\x0b\x32\x1b.perfetto.protos.EvdevEventH\x00\x12\x35\n\tuser_list\x18{ \x01(\x0b\x32 .perfetto.protos.AndroidUserListH\x00\x12\x32\n\x0b\x66or_testing\x18\x84\x07 \x01(\x0b\x32\x1a.perfetto.protos.TestEventH\x00\x12\x15\n\x0btrusted_uid\x18\x03 \x01(\x05H\x01\x12$\n\x1atrusted_packet_sequence_id\x18\n \x01(\rH\x02\x12\x13\n\x0btrusted_pid\x18O \x01(\x05\x12\x34\n\rinterned_data\x18\x0c \x01(\x0b\x32\x1d.perfetto.protos.InternedData\x12\x16\n\x0esequence_flags\x18\r \x01(\r\x12!\n\x19incremental_state_cleared\x18) \x01(\x08\x12\x43\n\x15trace_packet_defaults\x18; \x01(\x0b\x32$.perfetto.protos.TracePacketDefaults\x12\x1f\n\x17previous_packet_dropped\x18* \x01(\x08\x12 \n\x18\x66irst_packet_on_sequence\x18W \x01(\x08\x12\x12\n\nmachine_id\x18\x62 \x01(\r\"h\n\rSequenceFlags\x12\x13\n\x0fSEQ_UNSPECIFIED\x10\x00\x12!\n\x1dSEQ_INCREMENTAL_STATE_CLEARED\x10\x01\x12\x1f\n\x1bSEQ_NEEDS_INCREMENTAL_STATE\x10\x02\x42\x06\n\x04\x64\x61taB\x16\n\x14optional_trusted_uidB%\n#optional_trusted_packet_sequence_idJ\x04\x08j\x10kJ\x04\x08\x37\x10\x38\"5\n\x05Trace\x12,\n\x06packet\x18\x01 \x03(\x0b\x32\x1c.perfetto.protos.TracePacket*\xbb\x02\n\x0c\x42uiltinClock\x12\x19\n\x15\x42UILTIN_CLOCK_UNKNOWN\x10\x00\x12\x1a\n\x16\x42UILTIN_CLOCK_REALTIME\x10\x01\x12!\n\x1d\x42UILTIN_CLOCK_REALTIME_COARSE\x10\x02\x12\x1b\n\x17\x42UILTIN_CLOCK_MONOTONIC\x10\x03\x12\"\n\x1e\x42UILTIN_CLOCK_MONOTONIC_COARSE\x10\x04\x12\x1f\n\x1b\x42UILTIN_CLOCK_MONOTONIC_RAW\x10\x05\x12\x1a\n\x16\x42UILTIN_CLOCK_BOOTTIME\x10\x06\x12\x15\n\x11\x42UILTIN_CLOCK_TSC\x10\t\x12\x16\n\x12\x42UILTIN_CLOCK_PERF\x10\n\x12\x18\n\x14\x42UILTIN_CLOCK_MAX_ID\x10?\"\x04\x08\x07\x10\x07\"\x04\x08\x08\x10\x08*\x8e\x01\n\x0c\x41ndroidLogId\x12\x0f\n\x0bLID_DEFAULT\x10\x00\x12\r\n\tLID_RADIO\x10\x01\x12\x0e\n\nLID_EVENTS\x10\x02\x12\x0e\n\nLID_SYSTEM\x10\x03\x12\r\n\tLID_CRASH\x10\x04\x12\r\n\tLID_STATS\x10\x05\x12\x10\n\x0cLID_SECURITY\x10\x06\x12\x0e\n\nLID_KERNEL\x10\x07*\x9b\x01\n\x12\x41ndroidLogPriority\x12\x14\n\x10PRIO_UNSPECIFIED\x10\x00\x12\x0f\n\x0bPRIO_UNUSED\x10\x01\x12\x10\n\x0cPRIO_VERBOSE\x10\x02\x12\x0e\n\nPRIO_DEBUG\x10\x03\x12\r\n\tPRIO_INFO\x10\x04\x12\r\n\tPRIO_WARN\x10\x05\x12\x0e\n\nPRIO_ERROR\x10\x06\x12\x0e\n\nPRIO_FATAL\x10\x07*\xc7\x01\n\rProtoLogLevel\x12\x1c\n\x18PROTOLOG_LEVEL_UNDEFINED\x10\x00\x12\x18\n\x14PROTOLOG_LEVEL_DEBUG\x10\x01\x12\x1a\n\x16PROTOLOG_LEVEL_VERBOSE\x10\x02\x12\x17\n\x13PROTOLOG_LEVEL_INFO\x10\x03\x12\x17\n\x13PROTOLOG_LEVEL_WARN\x10\x04\x12\x18\n\x14PROTOLOG_LEVEL_ERROR\x10\x05\x12\x16\n\x12PROTOLOG_LEVEL_WTF\x10\x06*\xd7\xe8\x02\n\x06\x41tomId\x12\x14\n\x10\x41TOM_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x41TOM_BLE_SCAN_STATE_CHANGED\x10\x02\x12\x1e\n\x1a\x41TOM_PROCESS_STATE_CHANGED\x10\x03\x12!\n\x1d\x41TOM_BLE_SCAN_RESULT_RECEIVED\x10\x04\x12\x1d\n\x19\x41TOM_SENSOR_STATE_CHANGED\x10\x05\x12\x1f\n\x1b\x41TOM_GPS_SCAN_STATE_CHANGED\x10\x06\x12\x1b\n\x17\x41TOM_SYNC_STATE_CHANGED\x10\x07\x12$\n ATOM_SCHEDULED_JOB_STATE_CHANGED\x10\x08\x12\"\n\x1e\x41TOM_SCREEN_BRIGHTNESS_CHANGED\x10\t\x12\x1f\n\x1b\x41TOM_WAKELOCK_STATE_CHANGED\x10\n\x12,\n(ATOM_LONG_PARTIAL_WAKELOCK_STATE_CHANGED\x10\x0b\x12)\n%ATOM_MOBILE_RADIO_POWER_STATE_CHANGED\x10\x0c\x12\'\n#ATOM_WIFI_RADIO_POWER_STATE_CHANGED\x10\r\x12-\n)ATOM_ACTIVITY_MANAGER_SLEEP_STATE_CHANGED\x10\x0e\x12$\n ATOM_MEMORY_FACTOR_STATE_CHANGED\x10\x0f\x12%\n!ATOM_EXCESSIVE_CPU_USAGE_REPORTED\x10\x10\x12\x1d\n\x19\x41TOM_CACHED_KILL_REPORTED\x10\x11\x12%\n!ATOM_PROCESS_MEMORY_STAT_REPORTED\x10\x12\x12\x17\n\x13\x41TOM_LAUNCHER_EVENT\x10\x13\x12)\n%ATOM_BATTERY_SAVER_MODE_STATE_CHANGED\x10\x14\x12\'\n#ATOM_DEVICE_IDLE_MODE_STATE_CHANGED\x10\x15\x12)\n%ATOM_DEVICE_IDLING_MODE_STATE_CHANGED\x10\x16\x12\x1c\n\x18\x41TOM_AUDIO_STATE_CHANGED\x10\x17\x12\"\n\x1e\x41TOM_MEDIA_CODEC_STATE_CHANGED\x10\x18\x12\x1d\n\x19\x41TOM_CAMERA_STATE_CHANGED\x10\x19\x12!\n\x1d\x41TOM_FLASHLIGHT_STATE_CHANGED\x10\x1a\x12\"\n\x1e\x41TOM_UID_PROCESS_STATE_CHANGED\x10\x1b\x12)\n%ATOM_PROCESS_LIFE_CYCLE_STATE_CHANGED\x10\x1c\x12\x1d\n\x19\x41TOM_SCREEN_STATE_CHANGED\x10\x1d\x12\x1e\n\x1a\x41TOM_BATTERY_LEVEL_CHANGED\x10\x1e\x12\x1f\n\x1b\x41TOM_CHARGING_STATE_CHANGED\x10\x1f\x12\x1e\n\x1a\x41TOM_PLUGGED_STATE_CHANGED\x10 \x12\"\n\x1e\x41TOM_INTERACTIVE_STATE_CHANGED\x10!\x12\x1d\n\x19\x41TOM_TOUCH_EVENT_REPORTED\x10\"\x12\x1e\n\x1a\x41TOM_WAKEUP_ALARM_OCCURRED\x10#\x12\x1f\n\x1b\x41TOM_KERNEL_WAKEUP_REPORTED\x10$\x12 \n\x1c\x41TOM_WIFI_LOCK_STATE_CHANGED\x10%\x12%\n!ATOM_WIFI_SIGNAL_STRENGTH_CHANGED\x10&\x12 \n\x1c\x41TOM_WIFI_SCAN_STATE_CHANGED\x10\'\x12&\n\"ATOM_PHONE_SIGNAL_STRENGTH_CHANGED\x10(\x12\x18\n\x14\x41TOM_SETTING_CHANGED\x10)\x12*\n&ATOM_ACTIVITY_FOREGROUND_STATE_CHANGED\x10*\x12\x1d\n\x19\x41TOM_ISOLATED_UID_CHANGED\x10+\x12\x1f\n\x1b\x41TOM_PACKET_WAKEUP_OCCURRED\x10,\x12 \n\x1c\x41TOM_WALL_CLOCK_TIME_SHIFTED\x10-\x12\x19\n\x15\x41TOM_ANOMALY_DETECTED\x10.\x12 \n\x1c\x41TOM_APP_BREADCRUMB_REPORTED\x10/\x12\x1b\n\x17\x41TOM_APP_START_OCCURRED\x10\x30\x12\x1b\n\x17\x41TOM_APP_START_CANCELED\x10\x31\x12\x1e\n\x1a\x41TOM_APP_START_FULLY_DRAWN\x10\x32\x12\x1a\n\x16\x41TOM_LMK_KILL_OCCURRED\x10\x33\x12)\n%ATOM_PICTURE_IN_PICTURE_STATE_CHANGED\x10\x34\x12*\n&ATOM_WIFI_MULTICAST_LOCK_STATE_CHANGED\x10\x35\x12(\n$ATOM_APP_START_MEMORY_STATE_CAPTURED\x10\x37\x12#\n\x1f\x41TOM_SHUTDOWN_SEQUENCE_REPORTED\x10\x38\x12\x1f\n\x1b\x41TOM_BOOT_SEQUENCE_REPORTED\x10\x39\x12\x1e\n\x1a\x41TOM_OVERLAY_STATE_CHANGED\x10;\x12)\n%ATOM_FOREGROUND_SERVICE_STATE_CHANGED\x10<\x12\x1b\n\x17\x41TOM_CALL_STATE_CHANGED\x10=\x12\x1f\n\x1b\x41TOM_KEYGUARD_STATE_CHANGED\x10>\x12\'\n#ATOM_KEYGUARD_BOUNCER_STATE_CHANGED\x10?\x12*\n&ATOM_KEYGUARD_BOUNCER_PASSWORD_ENTERED\x10@\x12\x11\n\rATOM_APP_DIED\x10\x41\x12\'\n#ATOM_RESOURCE_CONFIGURATION_CHANGED\x10\x42\x12(\n$ATOM_BLUETOOTH_ENABLED_STATE_CHANGED\x10\x43\x12+\n\'ATOM_BLUETOOTH_CONNECTION_STATE_CHANGED\x10\x44\x12#\n\x1f\x41TOM_GPS_SIGNAL_QUALITY_CHANGED\x10\x45\x12$\n ATOM_USB_CONNECTOR_STATE_CHANGED\x10\x46\x12#\n\x1f\x41TOM_SPEAKER_IMPEDANCE_REPORTED\x10G\x12\x18\n\x14\x41TOM_HARDWARE_FAILED\x10H\x12\x1f\n\x1b\x41TOM_PHYSICAL_DROP_DETECTED\x10I\x12\x1f\n\x1b\x41TOM_CHARGE_CYCLES_REPORTED\x10J\x12(\n$ATOM_MOBILE_CONNECTION_STATE_CHANGED\x10K\x12(\n$ATOM_MOBILE_RADIO_TECHNOLOGY_CHANGED\x10L\x12\x1c\n\x18\x41TOM_USB_DEVICE_ATTACHED\x10M\x12\x1b\n\x17\x41TOM_APP_CRASH_OCCURRED\x10N\x12\x15\n\x11\x41TOM_ANR_OCCURRED\x10O\x12\x15\n\x11\x41TOM_WTF_OCCURRED\x10P\x12\x19\n\x15\x41TOM_LOW_MEM_REPORTED\x10Q\x12\x15\n\x11\x41TOM_GENERIC_ATOM\x10R\x12\x1f\n\x1b\x41TOM_VIBRATOR_STATE_CHANGED\x10T\x12$\n ATOM_DEFERRED_JOB_STATS_REPORTED\x10U\x12\x1b\n\x17\x41TOM_THERMAL_THROTTLING\x10V\x12\x1b\n\x17\x41TOM_BIOMETRIC_ACQUIRED\x10W\x12 \n\x1c\x41TOM_BIOMETRIC_AUTHENTICATED\x10X\x12!\n\x1d\x41TOM_BIOMETRIC_ERROR_OCCURRED\x10Y\x12\x1a\n\x16\x41TOM_UI_EVENT_REPORTED\x10Z\x12 \n\x1c\x41TOM_BATTERY_HEALTH_SNAPSHOT\x10[\x12\x10\n\x0c\x41TOM_SLOW_IO\x10\\\x12 \n\x1c\x41TOM_BATTERY_CAUSED_SHUTDOWN\x10]\x12$\n ATOM_PHONE_SERVICE_STATE_CHANGED\x10^\x12\x1c\n\x18\x41TOM_PHONE_STATE_CHANGED\x10_\x12!\n\x1d\x41TOM_USER_RESTRICTION_CHANGED\x10`\x12\x1c\n\x18\x41TOM_SETTINGS_UI_CHANGED\x10\x61\x12#\n\x1f\x41TOM_CONNECTIVITY_STATE_CHANGED\x10\x62\x12\x1e\n\x1a\x41TOM_SERVICE_STATE_CHANGED\x10\x63\x12 \n\x1c\x41TOM_SERVICE_LAUNCH_REPORTED\x10\x64\x12\"\n\x1e\x41TOM_FLAG_FLIP_UPDATE_OCCURRED\x10\x65\x12\"\n\x1e\x41TOM_BINARY_PUSH_STATE_CHANGED\x10\x66\x12\x1c\n\x18\x41TOM_DEVICE_POLICY_EVENT\x10g\x12!\n\x1d\x41TOM_DOCS_UI_FILE_OP_CANCELED\x10h\x12\x30\n,ATOM_DOCS_UI_FILE_OP_COPY_MOVE_MODE_REPORTED\x10i\x12 \n\x1c\x41TOM_DOCS_UI_FILE_OP_FAILURE\x10j\x12!\n\x1d\x41TOM_DOCS_UI_PROVIDER_FILE_OP\x10k\x12.\n*ATOM_DOCS_UI_INVALID_SCOPED_ACCESS_REQUEST\x10l\x12 \n\x1c\x41TOM_DOCS_UI_LAUNCH_REPORTED\x10m\x12\x1d\n\x19\x41TOM_DOCS_UI_ROOT_VISITED\x10n\x12\x1b\n\x17\x41TOM_DOCS_UI_STARTUP_MS\x10o\x12%\n!ATOM_DOCS_UI_USER_ACTION_REPORTED\x10p\x12#\n\x1f\x41TOM_WIFI_ENABLED_STATE_CHANGED\x10q\x12#\n\x1f\x41TOM_WIFI_RUNNING_STATE_CHANGED\x10r\x12\x16\n\x12\x41TOM_APP_COMPACTED\x10s\x12#\n\x1f\x41TOM_NETWORK_DNS_EVENT_REPORTED\x10t\x12.\n*ATOM_DOCS_UI_PICKER_LAUNCHED_FROM_REPORTED\x10u\x12%\n!ATOM_DOCS_UI_PICK_RESULT_REPORTED\x10v\x12%\n!ATOM_DOCS_UI_SEARCH_MODE_REPORTED\x10w\x12%\n!ATOM_DOCS_UI_SEARCH_TYPE_REPORTED\x10x\x12\x19\n\x15\x41TOM_DATA_STALL_EVENT\x10y\x12$\n ATOM_RESCUE_PARTY_RESET_REPORTED\x10z\x12\x1f\n\x1b\x41TOM_SIGNED_CONFIG_REPORTED\x10{\x12\x1f\n\x1b\x41TOM_GNSS_NI_EVENT_REPORTED\x10|\x12.\n*ATOM_BLUETOOTH_LINK_LAYER_CONNECTION_EVENT\x10}\x12/\n+ATOM_BLUETOOTH_ACL_CONNECTION_STATE_CHANGED\x10~\x12/\n+ATOM_BLUETOOTH_SCO_CONNECTION_STATE_CHANGED\x10\x7f\x12\x18\n\x13\x41TOM_APP_DOWNGRADED\x10\x80\x01\x12(\n#ATOM_APP_OPTIMIZED_AFTER_DOWNGRADED\x10\x81\x01\x12#\n\x1e\x41TOM_LOW_STORAGE_STATE_CHANGED\x10\x82\x01\x12(\n#ATOM_GNSS_NFW_NOTIFICATION_REPORTED\x10\x83\x01\x12%\n ATOM_GNSS_CONFIGURATION_REPORTED\x10\x84\x01\x12*\n%ATOM_USB_PORT_OVERHEAT_EVENT_REPORTED\x10\x85\x01\x12\x1c\n\x17\x41TOM_NFC_ERROR_OCCURRED\x10\x86\x01\x12\x1b\n\x16\x41TOM_NFC_STATE_CHANGED\x10\x87\x01\x12\x1b\n\x16\x41TOM_NFC_BEAM_OCCURRED\x10\x88\x01\x12$\n\x1f\x41TOM_NFC_CARDEMULATION_OCCURRED\x10\x89\x01\x12\x1a\n\x15\x41TOM_NFC_TAG_OCCURRED\x10\x8a\x01\x12&\n!ATOM_NFC_HCE_TRANSACTION_OCCURRED\x10\x8b\x01\x12\x1a\n\x15\x41TOM_SE_STATE_CHANGED\x10\x8c\x01\x12\x1b\n\x16\x41TOM_SE_OMAPI_REPORTED\x10\x8d\x01\x12-\n(ATOM_BROADCAST_DISPATCH_LATENCY_REPORTED\x10\x8e\x01\x12\x33\n.ATOM_ATTENTION_MANAGER_SERVICE_RESULT_REPORTED\x10\x8f\x01\x12 \n\x1b\x41TOM_ADB_CONNECTION_CHANGED\x10\x90\x01\x12\"\n\x1d\x41TOM_SPEECH_DSP_STAT_REPORTED\x10\x91\x01\x12\"\n\x1d\x41TOM_USB_CONTAMINANT_REPORTED\x10\x92\x01\x12$\n\x1f\x41TOM_WATCHDOG_ROLLBACK_OCCURRED\x10\x93\x01\x12\x30\n+ATOM_BIOMETRIC_SYSTEM_HEALTH_ISSUE_DETECTED\x10\x94\x01\x12\x1b\n\x16\x41TOM_BUBBLE_UI_CHANGED\x10\x95\x01\x12*\n%ATOM_SCHEDULED_JOB_CONSTRAINT_CHANGED\x10\x96\x01\x12)\n$ATOM_BLUETOOTH_ACTIVE_DEVICE_CHANGED\x10\x97\x01\x12/\n*ATOM_BLUETOOTH_A2DP_PLAYBACK_STATE_CHANGED\x10\x98\x01\x12-\n(ATOM_BLUETOOTH_A2DP_CODEC_CONFIG_CHANGED\x10\x99\x01\x12\x31\n,ATOM_BLUETOOTH_A2DP_CODEC_CAPABILITY_CHANGED\x10\x9a\x01\x12\x30\n+ATOM_BLUETOOTH_A2DP_AUDIO_UNDERRUN_REPORTED\x10\x9b\x01\x12/\n*ATOM_BLUETOOTH_A2DP_AUDIO_OVERRUN_REPORTED\x10\x9c\x01\x12(\n#ATOM_BLUETOOTH_DEVICE_RSSI_REPORTED\x10\x9d\x01\x12:\n5ATOM_BLUETOOTH_DEVICE_FAILED_CONTACT_COUNTER_REPORTED\x10\x9e\x01\x12\x32\n-ATOM_BLUETOOTH_DEVICE_TX_POWER_LEVEL_REPORTED\x10\x9f\x01\x12(\n#ATOM_BLUETOOTH_HCI_TIMEOUT_REPORTED\x10\xa0\x01\x12+\n&ATOM_BLUETOOTH_QUALITY_REPORT_REPORTED\x10\xa1\x01\x12(\n#ATOM_BLUETOOTH_DEVICE_INFO_REPORTED\x10\xa2\x01\x12\x30\n+ATOM_BLUETOOTH_REMOTE_VERSION_INFO_REPORTED\x10\xa3\x01\x12*\n%ATOM_BLUETOOTH_SDP_ATTRIBUTE_REPORTED\x10\xa4\x01\x12&\n!ATOM_BLUETOOTH_BOND_STATE_CHANGED\x10\xa5\x01\x12\x32\n-ATOM_BLUETOOTH_CLASSIC_PAIRING_EVENT_REPORTED\x10\xa6\x01\x12.\n)ATOM_BLUETOOTH_SMP_PAIRING_EVENT_REPORTED\x10\xa7\x01\x12+\n&ATOM_SCREEN_TIMEOUT_EXTENSION_REPORTED\x10\xa8\x01\x12\x1c\n\x17\x41TOM_PROCESS_START_TIME\x10\xa9\x01\x12\x32\n-ATOM_PERMISSION_GRANT_REQUEST_RESULT_REPORTED\x10\xaa\x01\x12\x33\n.ATOM_BLUETOOTH_SOCKET_CONNECTION_STATE_CHANGED\x10\xab\x01\x12)\n$ATOM_DEVICE_IDENTIFIER_ACCESS_DENIED\x10\xac\x01\x12)\n$ATOM_BUBBLE_DEVELOPER_ERROR_REPORTED\x10\xad\x01\x12\'\n\"ATOM_ASSIST_GESTURE_STAGE_REPORTED\x10\xae\x01\x12*\n%ATOM_ASSIST_GESTURE_FEEDBACK_REPORTED\x10\xaf\x01\x12*\n%ATOM_ASSIST_GESTURE_PROGRESS_REPORTED\x10\xb0\x01\x12\"\n\x1d\x41TOM_TOUCH_GESTURE_CLASSIFIED\x10\xb1\x01\x12\x19\n\x14\x41TOM_HIDDEN_API_USED\x10\xb2\x01\x12\x1a\n\x15\x41TOM_STYLE_UI_CHANGED\x10\xb3\x01\x12\'\n\"ATOM_PRIVACY_INDICATORS_INTERACTED\x10\xb4\x01\x12\x32\n-ATOM_APP_INSTALL_ON_EXTERNAL_STORAGE_REPORTED\x10\xb5\x01\x12 \n\x1b\x41TOM_NETWORK_STACK_REPORTED\x10\xb6\x01\x12$\n\x1f\x41TOM_APP_MOVED_STORAGE_REPORTED\x10\xb7\x01\x12\x1c\n\x17\x41TOM_BIOMETRIC_ENROLLED\x10\xb8\x01\x12)\n$ATOM_SYSTEM_SERVER_WATCHDOG_OCCURRED\x10\xb9\x01\x12\x1d\n\x18\x41TOM_TOMB_STONE_OCCURRED\x10\xba\x01\x12,\n\'ATOM_BLUETOOTH_CLASS_OF_DEVICE_REPORTED\x10\xbb\x01\x12%\n ATOM_INTELLIGENCE_EVENT_REPORTED\x10\xbc\x01\x12\x33\n.ATOM_THERMAL_THROTTLING_SEVERITY_STATE_CHANGED\x10\xbd\x01\x12&\n!ATOM_ROLE_REQUEST_RESULT_REPORTED\x10\xbe\x01\x12+\n&ATOM_MEDIAMETRICS_AUDIOPOLICY_REPORTED\x10\xbf\x01\x12+\n&ATOM_MEDIAMETRICS_AUDIORECORD_REPORTED\x10\xc0\x01\x12+\n&ATOM_MEDIAMETRICS_AUDIOTHREAD_REPORTED\x10\xc1\x01\x12*\n%ATOM_MEDIAMETRICS_AUDIOTRACK_REPORTED\x10\xc2\x01\x12%\n ATOM_MEDIAMETRICS_CODEC_REPORTED\x10\xc3\x01\x12,\n\'ATOM_MEDIAMETRICS_DRM_WIDEVINE_REPORTED\x10\xc4\x01\x12)\n$ATOM_MEDIAMETRICS_EXTRACTOR_REPORTED\x10\xc5\x01\x12(\n#ATOM_MEDIAMETRICS_MEDIADRM_REPORTED\x10\xc6\x01\x12(\n#ATOM_MEDIAMETRICS_NUPLAYER_REPORTED\x10\xc7\x01\x12(\n#ATOM_MEDIAMETRICS_RECORDER_REPORTED\x10\xc8\x01\x12*\n%ATOM_MEDIAMETRICS_DRMMANAGER_REPORTED\x10\xc9\x01\x12!\n\x1c\x41TOM_CAR_POWER_STATE_CHANGED\x10\xcb\x01\x12\x1a\n\x15\x41TOM_GARAGE_MODE_INFO\x10\xcc\x01\x12\x1c\n\x17\x41TOM_TEST_ATOM_REPORTED\x10\xcd\x01\x12\x32\n-ATOM_CONTENT_CAPTURE_CALLER_MISMATCH_REPORTED\x10\xce\x01\x12(\n#ATOM_CONTENT_CAPTURE_SERVICE_EVENTS\x10\xcf\x01\x12(\n#ATOM_CONTENT_CAPTURE_SESSION_EVENTS\x10\xd0\x01\x12!\n\x1c\x41TOM_CONTENT_CAPTURE_FLUSHED\x10\xd1\x01\x12-\n(ATOM_LOCATION_MANAGER_API_USAGE_REPORTED\x10\xd2\x01\x12\x35\n0ATOM_REVIEW_PERMISSIONS_FRAGMENT_RESULT_REPORTED\x10\xd3\x01\x12,\n\'ATOM_RUNTIME_PERMISSIONS_UPGRADE_RESULT\x10\xd4\x01\x12\x33\n.ATOM_GRANT_PERMISSIONS_ACTIVITY_BUTTON_ACTIONS\x10\xd5\x01\x12\x33\n.ATOM_LOCATION_ACCESS_CHECK_NOTIFICATION_ACTION\x10\xd6\x01\x12\x31\n,ATOM_APP_PERMISSION_FRAGMENT_ACTION_REPORTED\x10\xd7\x01\x12(\n#ATOM_APP_PERMISSION_FRAGMENT_VIEWED\x10\xd8\x01\x12)\n$ATOM_APP_PERMISSIONS_FRAGMENT_VIEWED\x10\xd9\x01\x12)\n$ATOM_PERMISSION_APPS_FRAGMENT_VIEWED\x10\xda\x01\x12\x1e\n\x19\x41TOM_TEXT_SELECTION_EVENT\x10\xdb\x01\x12\x1c\n\x17\x41TOM_TEXT_LINKIFY_EVENT\x10\xdc\x01\x12$\n\x1f\x41TOM_CONVERSATION_ACTIONS_EVENT\x10\xdd\x01\x12\"\n\x1d\x41TOM_LANGUAGE_DETECTION_EVENT\x10\xde\x01\x12&\n!ATOM_EXCLUSION_RECT_STATE_CHANGED\x10\xdf\x01\x12(\n#ATOM_BACK_GESTURE_REPORTED_REPORTED\x10\xe0\x01\x12/\n*ATOM_UPDATE_ENGINE_UPDATE_ATTEMPT_REPORTED\x10\xe1\x01\x12\x32\n-ATOM_UPDATE_ENGINE_SUCCESSFUL_UPDATE_REPORTED\x10\xe2\x01\x12\x1d\n\x18\x41TOM_CAMERA_ACTION_EVENT\x10\xe3\x01\x12+\n&ATOM_APP_COMPATIBILITY_CHANGE_REPORTED\x10\xe4\x01\x12\x1b\n\x16\x41TOM_PERFETTO_UPLOADED\x10\xe5\x01\x12-\n(ATOM_VMS_CLIENT_CONNECTION_STATE_CHANGED\x10\xe6\x01\x12&\n!ATOM_MEDIA_PROVIDER_SCAN_OCCURRED\x10\xe9\x01\x12\x1f\n\x1a\x41TOM_MEDIA_CONTENT_DELETED\x10\xea\x01\x12-\n(ATOM_MEDIA_PROVIDER_PERMISSION_REQUESTED\x10\xeb\x01\x12\'\n\"ATOM_MEDIA_PROVIDER_SCHEMA_CHANGED\x10\xec\x01\x12\x32\n-ATOM_MEDIA_PROVIDER_IDLE_MAINTENANCE_FINISHED\x10\xed\x01\x12)\n$ATOM_REBOOT_ESCROW_RECOVERY_REPORTED\x10\xee\x01\x12+\n&ATOM_BOOT_TIME_EVENT_DURATION_REPORTED\x10\xef\x01\x12/\n*ATOM_BOOT_TIME_EVENT_ELAPSED_TIME_REPORTED\x10\xf0\x01\x12+\n&ATOM_BOOT_TIME_EVENT_UTC_TIME_REPORTED\x10\xf1\x01\x12-\n(ATOM_BOOT_TIME_EVENT_ERROR_CODE_REPORTED\x10\xf2\x01\x12#\n\x1e\x41TOM_USERSPACE_REBOOT_REPORTED\x10\xf3\x01\x12\x1f\n\x1a\x41TOM_NOTIFICATION_REPORTED\x10\xf4\x01\x12%\n ATOM_NOTIFICATION_PANEL_REPORTED\x10\xf5\x01\x12\'\n\"ATOM_NOTIFICATION_CHANNEL_MODIFIED\x10\xf6\x01\x12)\n$ATOM_INTEGRITY_CHECK_RESULT_REPORTED\x10\xf7\x01\x12 \n\x1b\x41TOM_INTEGRITY_RULES_PUSHED\x10\xf8\x01\x12\x1d\n\x18\x41TOM_CB_MESSAGE_REPORTED\x10\xf9\x01\x12\x1a\n\x15\x41TOM_CB_MESSAGE_ERROR\x10\xfa\x01\x12#\n\x1e\x41TOM_WIFI_HEALTH_STAT_REPORTED\x10\xfb\x01\x12$\n\x1f\x41TOM_WIFI_FAILURE_STAT_REPORTED\x10\xfc\x01\x12)\n$ATOM_WIFI_CONNECTION_RESULT_REPORTED\x10\xfd\x01\x12\x1c\n\x17\x41TOM_APP_FREEZE_CHANGED\x10\xfe\x01\x12!\n\x1c\x41TOM_SNAPSHOT_MERGE_REPORTED\x10\xff\x01\x12\x31\n,ATOM_FOREGROUND_SERVICE_APP_OP_SESSION_ENDED\x10\x80\x02\x12\x1f\n\x1a\x41TOM_DISPLAY_JANK_REPORTED\x10\x81\x02\x12$\n\x1f\x41TOM_APP_STANDBY_BUCKET_CHANGED\x10\x82\x02\x12\x1c\n\x17\x41TOM_SHARESHEET_STARTED\x10\x83\x02\x12\x1a\n\x15\x41TOM_RANKING_SELECTED\x10\x84\x02\x12\"\n\x1d\x41TOM_TVSETTINGS_UI_INTERACTED\x10\x85\x02\x12\x1b\n\x16\x41TOM_LAUNCHER_SNAPSHOT\x10\x86\x02\x12\'\n\"ATOM_PACKAGE_INSTALLER_V2_REPORTED\x10\x87\x02\x12)\n$ATOM_USER_LIFECYCLE_JOURNEY_REPORTED\x10\x88\x02\x12\'\n\"ATOM_USER_LIFECYCLE_EVENT_OCCURRED\x10\x89\x02\x12)\n$ATOM_ACCESSIBILITY_SHORTCUT_REPORTED\x10\x8a\x02\x12(\n#ATOM_ACCESSIBILITY_SERVICE_REPORTED\x10\x8b\x02\x12(\n#ATOM_DOCS_UI_DRAG_AND_DROP_REPORTED\x10\x8c\x02\x12\"\n\x1d\x41TOM_APP_USAGE_EVENT_OCCURRED\x10\x8d\x02\x12*\n%ATOM_AUTO_REVOKE_NOTIFICATION_CLICKED\x10\x8e\x02\x12)\n$ATOM_AUTO_REVOKE_FRAGMENT_APP_VIEWED\x10\x8f\x02\x12&\n!ATOM_AUTO_REVOKED_APP_INTERACTION\x10\x90\x02\x12;\n6ATOM_APP_PERMISSION_GROUPS_FRAGMENT_AUTO_REVOKE_ACTION\x10\x91\x02\x12\"\n\x1d\x41TOM_EVS_USAGE_STATS_REPORTED\x10\x92\x02\x12)\n$ATOM_AUDIO_POWER_USAGE_DATA_REPORTED\x10\x93\x02\x12 \n\x1b\x41TOM_TV_TUNER_STATE_CHANGED\x10\x94\x02\x12(\n#ATOM_MEDIAOUTPUT_OP_SWITCH_REPORTED\x10\x95\x02\x12\x1d\n\x18\x41TOM_CB_MESSAGE_FILTERED\x10\x96\x02\x12\x1d\n\x18\x41TOM_TV_TUNER_DVR_STATUS\x10\x97\x02\x12$\n\x1f\x41TOM_TV_CAS_SESSION_OPEN_STATUS\x10\x98\x02\x12\'\n\"ATOM_ASSISTANT_INVOCATION_REPORTED\x10\x99\x02\x12\x1f\n\x1a\x41TOM_DISPLAY_WAKE_REPORTED\x10\x9a\x02\x12\x33\n.ATOM_CAR_USER_HAL_MODIFY_USER_REQUEST_REPORTED\x10\x9b\x02\x12\x34\n/ATOM_CAR_USER_HAL_MODIFY_USER_RESPONSE_REPORTED\x10\x9c\x02\x12\x34\n/ATOM_CAR_USER_HAL_POST_SWITCH_RESPONSE_REPORTED\x10\x9d\x02\x12\x39\n4ATOM_CAR_USER_HAL_INITIAL_USER_INFO_REQUEST_REPORTED\x10\x9e\x02\x12:\n5ATOM_CAR_USER_HAL_INITIAL_USER_INFO_RESPONSE_REPORTED\x10\x9f\x02\x12\x38\n3ATOM_CAR_USER_HAL_USER_ASSOCIATION_REQUEST_REPORTED\x10\xa0\x02\x12=\n8ATOM_CAR_USER_HAL_SET_USER_ASSOCIATION_RESPONSE_REPORTED\x10\xa1\x02\x12*\n%ATOM_NETWORK_IP_PROVISIONING_REPORTED\x10\xa2\x02\x12%\n ATOM_NETWORK_DHCP_RENEW_REPORTED\x10\xa3\x02\x12%\n ATOM_NETWORK_VALIDATION_REPORTED\x10\xa4\x02\x12&\n!ATOM_NETWORK_STACK_QUIRK_REPORTED\x10\xa5\x02\x12\x36\n1ATOM_MEDIAMETRICS_AUDIORECORDDEVICEUSAGE_REPORTED\x10\xa6\x02\x12\x36\n1ATOM_MEDIAMETRICS_AUDIOTHREADDEVICEUSAGE_REPORTED\x10\xa7\x02\x12\x35\n0ATOM_MEDIAMETRICS_AUDIOTRACKDEVICEUSAGE_REPORTED\x10\xa8\x02\x12\x35\n0ATOM_MEDIAMETRICS_AUDIODEVICECONNECTION_REPORTED\x10\xa9\x02\x12\x18\n\x13\x41TOM_BLOB_COMMITTED\x10\xaa\x02\x12\x15\n\x10\x41TOM_BLOB_LEASED\x10\xab\x02\x12\x15\n\x10\x41TOM_BLOB_OPENED\x10\xac\x02\x12+\n&ATOM_CONTACTS_PROVIDER_STATUS_REPORTED\x10\xad\x02\x12%\n ATOM_KEYSTORE_KEY_EVENT_REPORTED\x10\xae\x02\x12$\n\x1f\x41TOM_NETWORK_TETHERING_REPORTED\x10\xaf\x02\x12\x1c\n\x17\x41TOM_IME_TOUCH_REPORTED\x10\xb0\x02\x12,\n\'ATOM_UI_INTERACTION_FRAME_INFO_REPORTED\x10\xb1\x02\x12$\n\x1f\x41TOM_UI_ACTION_LATENCY_REPORTED\x10\xb2\x02\x12\"\n\x1d\x41TOM_WIFI_DISCONNECT_REPORTED\x10\xb3\x02\x12\'\n\"ATOM_WIFI_CONNECTION_STATE_CHANGED\x10\xb4\x02\x12(\n#ATOM_HDMI_CEC_ACTIVE_SOURCE_CHANGED\x10\xb5\x02\x12#\n\x1e\x41TOM_HDMI_CEC_MESSAGE_REPORTED\x10\xb6\x02\x12\x17\n\x12\x41TOM_AIRPLANE_MODE\x10\xb7\x02\x12\x17\n\x12\x41TOM_MODEM_RESTART\x10\xb8\x02\x12&\n!ATOM_CARRIER_ID_MISMATCH_REPORTED\x10\xb9\x02\x12\"\n\x1d\x41TOM_CARRIER_ID_TABLE_UPDATED\x10\xba\x02\x12&\n!ATOM_DATA_STALL_RECOVERY_REPORTED\x10\xbb\x02\x12+\n&ATOM_MEDIAMETRICS_MEDIAPARSER_REPORTED\x10\xbc\x02\x12 \n\x1b\x41TOM_TLS_HANDSHAKE_REPORTED\x10\xbd\x02\x12,\n\'ATOM_TEXT_CLASSIFIER_API_USAGE_REPORTED\x10\xbe\x02\x12*\n%ATOM_CAR_WATCHDOG_KILL_STATS_REPORTED\x10\xbf\x02\x12(\n#ATOM_MEDIAMETRICS_PLAYBACK_REPORTED\x10\xc0\x02\x12$\n\x1f\x41TOM_MEDIA_NETWORK_INFO_CHANGED\x10\xc1\x02\x12&\n!ATOM_MEDIA_PLAYBACK_STATE_CHANGED\x10\xc2\x02\x12\'\n\"ATOM_MEDIA_PLAYBACK_ERROR_REPORTED\x10\xc3\x02\x12&\n!ATOM_MEDIA_PLAYBACK_TRACK_CHANGED\x10\xc4\x02\x12\x1c\n\x17\x41TOM_WIFI_SCAN_REPORTED\x10\xc5\x02\x12 \n\x1b\x41TOM_WIFI_PNO_SCAN_REPORTED\x10\xc6\x02\x12\x1a\n\x15\x41TOM_TIF_TUNE_CHANGED\x10\xc7\x02\x12\x1e\n\x19\x41TOM_AUTO_ROTATE_REPORTED\x10\xc8\x02\x12\x1a\n\x15\x41TOM_PERFETTO_TRIGGER\x10\xc9\x02\x12\x1a\n\x15\x41TOM_TRANSCODING_DATA\x10\xca\x02\x12)\n$ATOM_IMS_SERVICE_ENTITLEMENT_UPDATED\x10\xcb\x02\x12\x18\n\x13\x41TOM_DEVICE_ROTATED\x10\xcd\x02\x12(\n#ATOM_SIM_SPECIFIC_SETTINGS_RESTORED\x10\xce\x02\x12+\n&ATOM_TEXT_CLASSIFIER_DOWNLOAD_REPORTED\x10\xcf\x02\x12\x1b\n\x16\x41TOM_PIN_STORAGE_EVENT\x10\xd0\x02\x12\x1c\n\x17\x41TOM_FACE_DOWN_REPORTED\x10\xd1\x02\x12-\n(ATOM_BLUETOOTH_HAL_CRASH_REASON_REPORTED\x10\xd2\x02\x12,\n\'ATOM_REBOOT_ESCROW_PREPARATION_REPORTED\x10\xd3\x02\x12-\n(ATOM_REBOOT_ESCROW_LSKF_CAPTURE_REPORTED\x10\xd4\x02\x12\'\n\"ATOM_REBOOT_ESCROW_REBOOT_REPORTED\x10\xd5\x02\x12!\n\x1c\x41TOM_BINDER_LATENCY_REPORTED\x10\xd6\x02\x12,\n\'ATOM_MEDIAMETRICS_AAUDIOSTREAM_REPORTED\x10\xd7\x02\x12)\n$ATOM_MEDIA_TRANSCODING_SESSION_ENDED\x10\xd8\x02\x12&\n!ATOM_MAGNIFICATION_USAGE_REPORTED\x10\xd9\x02\x12\x31\n,ATOM_MAGNIFICATION_MODE_WITH_IME_ON_REPORTED\x10\xda\x02\x12(\n#ATOM_APP_SEARCH_CALL_STATS_REPORTED\x10\xdb\x02\x12\x30\n+ATOM_APP_SEARCH_PUT_DOCUMENT_STATS_REPORTED\x10\xdc\x02\x12 \n\x1b\x41TOM_DEVICE_CONTROL_CHANGED\x10\xdd\x02\x12\x1e\n\x19\x41TOM_DEVICE_STATE_CHANGED\x10\xde\x02\x12 \n\x1b\x41TOM_INPUTDEVICE_REGISTERED\x10\xdf\x02\x12\"\n\x1d\x41TOM_SMARTSPACE_CARD_REPORTED\x10\xe0\x02\x12*\n%ATOM_AUTH_PROMPT_AUTHENTICATE_INVOKED\x10\xe1\x02\x12/\n*ATOM_AUTH_MANAGER_CAN_AUTHENTICATE_INVOKED\x10\xe2\x02\x12$\n\x1f\x41TOM_AUTH_ENROLL_ACTION_INVOKED\x10\xe3\x02\x12\"\n\x1d\x41TOM_AUTH_DEPRECATED_API_USED\x10\xe4\x02\x12$\n\x1f\x41TOM_UNATTENDED_REBOOT_OCCURRED\x10\xe5\x02\x12\'\n\"ATOM_LONG_REBOOT_BLOCKING_REPORTED\x10\xe6\x02\x12\x33\n.ATOM_LOCATION_TIME_ZONE_PROVIDER_STATE_CHANGED\x10\xe7\x02\x12 \n\x1b\x41TOM_FDTRACK_EVENT_OCCURRED\x10\xec\x02\x12(\n#ATOM_TIMEOUT_AUTO_EXTENDED_REPORTED\x10\xed\x02\x12\x1f\n\x1a\x41TOM_ALARM_BATCH_DELIVERED\x10\xef\x02\x12\x19\n\x14\x41TOM_ALARM_SCHEDULED\x10\xf0\x02\x12\x30\n+ATOM_CAR_WATCHDOG_IO_OVERUSE_STATS_REPORTED\x10\xf1\x02\x12.\n)ATOM_USER_LEVEL_HIBERNATION_STATE_CHANGED\x10\xf2\x02\x12.\n)ATOM_APP_SEARCH_INITIALIZE_STATS_REPORTED\x10\xf3\x02\x12)\n$ATOM_APP_SEARCH_QUERY_STATS_REPORTED\x10\xf4\x02\x12\x1a\n\x15\x41TOM_APP_PROCESS_DIED\x10\xf5\x02\x12\x32\n-ATOM_NETWORK_IP_REACHABILITY_MONITOR_REPORTED\x10\xf6\x02\x12#\n\x1e\x41TOM_SLOW_INPUT_EVENT_REPORTED\x10\xf7\x02\x12)\n$ATOM_ANR_OCCURRED_PROCESSING_STARTED\x10\xf8\x02\x12*\n%ATOM_APP_SEARCH_REMOVE_STATS_REPORTED\x10\xf9\x02\x12\x1e\n\x19\x41TOM_MEDIA_CODEC_REPORTED\x10\xfa\x02\x12/\n*ATOM_PERMISSION_USAGE_FRAGMENT_INTERACTION\x10\xfb\x02\x12(\n#ATOM_PERMISSION_DETAILS_INTERACTION\x10\xfc\x02\x12+\n&ATOM_PRIVACY_SENSOR_TOGGLE_INTERACTION\x10\xfd\x02\x12+\n&ATOM_PRIVACY_TOGGLE_DIALOG_INTERACTION\x10\xfe\x02\x12,\n\'ATOM_APP_SEARCH_OPTIMIZE_STATS_REPORTED\x10\xff\x02\x12.\n)ATOM_NON_A11Y_TOOL_SERVICE_WARNING_REPORT\x10\x80\x03\x12\"\n\x1d\x41TOM_APP_COMPAT_STATE_CHANGED\x10\x82\x03\x12\x33\n.ATOM_SIZE_COMPAT_RESTART_BUTTON_EVENT_REPORTED\x10\x83\x03\x12 \n\x1b\x41TOM_SPLITSCREEN_UI_CHANGED\x10\x84\x03\x12(\n#ATOM_NETWORK_DNS_HANDSHAKE_REPORTED\x10\x85\x03\x12%\n ATOM_BLUETOOTH_CODE_PATH_COUNTER\x10\x86\x03\x12.\n)ATOM_BLUETOOTH_LE_BATCH_SCAN_REPORT_DELAY\x10\x88\x03\x12\x30\n+ATOM_ACCESSIBILITY_FLOATING_MENU_UI_CHANGED\x10\x89\x03\x12.\n)ATOM_NEURALNETWORKS_COMPILATION_COMPLETED\x10\x8a\x03\x12,\n\'ATOM_NEURALNETWORKS_EXECUTION_COMPLETED\x10\x8b\x03\x12+\n&ATOM_NEURALNETWORKS_COMPILATION_FAILED\x10\x8c\x03\x12)\n$ATOM_NEURALNETWORKS_EXECUTION_FAILED\x10\x8d\x03\x12\x1c\n\x17\x41TOM_CONTEXT_HUB_BOOTED\x10\x8e\x03\x12\x1f\n\x1a\x41TOM_CONTEXT_HUB_RESTARTED\x10\x8f\x03\x12\x36\n1ATOM_CONTEXT_HUB_LOADED_NANOAPP_SNAPSHOT_REPORTED\x10\x90\x03\x12\'\n\"ATOM_CHRE_CODE_DOWNLOAD_TRANSACTED\x10\x91\x03\x12\x1c\n\x17\x41TOM_UWB_SESSION_INITED\x10\x92\x03\x12\x1c\n\x17\x41TOM_UWB_SESSION_CLOSED\x10\x93\x03\x12$\n\x1f\x41TOM_UWB_FIRST_RANGING_RECEIVED\x10\x94\x03\x12*\n%ATOM_UWB_RANGING_MEASUREMENT_RECEIVED\x10\x95\x03\x12\x31\n,ATOM_TEXT_CLASSIFIER_DOWNLOAD_WORK_SCHEDULED\x10\x96\x03\x12\x31\n,ATOM_TEXT_CLASSIFIER_DOWNLOAD_WORK_COMPLETED\x10\x97\x03\x12\x1b\n\x16\x41TOM_CLIPBOARD_CLEARED\x10\x98\x03\x12\x1f\n\x1a\x41TOM_VM_CREATION_REQUESTED\x10\x99\x03\x12*\n%ATOM_NEARBY_DEVICE_SCAN_STATE_CHANGED\x10\x9a\x03\x12%\n ATOM_APPLICATION_LOCALES_CHANGED\x10\x9c\x03\x12\x30\n+ATOM_MEDIAMETRICS_AUDIOTRACKSTATUS_REPORTED\x10\x9d\x03\x12&\n!ATOM_FOLD_STATE_DURATION_REPORTED\x10\x9e\x03\x12>\n9ATOM_LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED\x10\x9f\x03\x12#\n\x1e\x41TOM_DISPLAY_HBM_STATE_CHANGED\x10\xa0\x03\x12(\n#ATOM_DISPLAY_HBM_BRIGHTNESS_CHANGED\x10\xa1\x03\x12,\n\'ATOM_PERSISTENT_URI_PERMISSIONS_FLUSHED\x10\xa2\x03\x12\x35\n0ATOM_EARLY_BOOT_COMP_OS_ARTIFACTS_CHECK_REPORTED\x10\xa3\x03\x12 \n\x1b\x41TOM_VBMETA_DIGEST_REPORTED\x10\xa4\x03\x12\x1c\n\x17\x41TOM_APEX_INFO_GATHERED\x10\xa5\x03\x12\x1b\n\x16\x41TOM_PVM_INFO_GATHERED\x10\xa6\x03\x12%\n ATOM_WEAR_SETTINGS_UI_INTERACTED\x10\xa7\x03\x12&\n!ATOM_TRACING_SERVICE_REPORT_EVENT\x10\xa8\x03\x12\x31\n,ATOM_MEDIAMETRICS_AUDIORECORDSTATUS_REPORTED\x10\xa9\x03\x12\x1a\n\x15\x41TOM_LAUNCHER_LATENCY\x10\xaa\x03\x12\x1f\n\x1a\x41TOM_DROPBOX_ENTRY_DROPPED\x10\xab\x03\x12&\n!ATOM_WIFI_P2P_CONNECTION_REPORTED\x10\xac\x03\x12\x1c\n\x17\x41TOM_GAME_STATE_CHANGED\x10\xad\x03\x12+\n&ATOM_HOTWORD_DETECTOR_CREATE_REQUESTED\x10\xae\x03\x12\x38\n3ATOM_HOTWORD_DETECTION_SERVICE_INIT_RESULT_REPORTED\x10\xaf\x03\x12-\n(ATOM_HOTWORD_DETECTION_SERVICE_RESTARTED\x10\xb0\x03\x12.\n)ATOM_HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED\x10\xb1\x03\x12!\n\x1c\x41TOM_HOTWORD_DETECTOR_EVENTS\x10\xb2\x03\x12>\n9ATOM_BOOT_COMPLETED_BROADCAST_COMPLETION_LATENCY_REPORTED\x10\xb5\x03\x12\x30\n+ATOM_CONTACTS_INDEXER_UPDATE_STATS_REPORTED\x10\xb8\x03\x12*\n%ATOM_APP_BACKGROUND_RESTRICTIONS_INFO\x10\xb9\x03\x12/\n*ATOM_MMS_SMS_PROVIDER_GET_THREAD_ID_FAILED\x10\xba\x03\x12\x33\n.ATOM_MMS_SMS_DATABASE_HELPER_ON_UPGRADE_FAILED\x10\xbb\x03\x12\x35\n0ATOM_PERMISSION_REMINDER_NOTIFICATION_INTERACTED\x10\xbc\x03\x12\x30\n+ATOM_RECENT_PERMISSION_DECISIONS_INTERACTED\x10\xbd\x03\x12%\n ATOM_GNSS_PSDS_DOWNLOAD_REPORTED\x10\xbe\x03\x12.\n)ATOM_LE_AUDIO_CONNECTION_SESSION_REPORTED\x10\xbf\x03\x12-\n(ATOM_LE_AUDIO_BROADCAST_SESSION_REPORTED\x10\xc0\x03\x12!\n\x1c\x41TOM_DREAM_UI_EVENT_REPORTED\x10\xc1\x03\x12%\n ATOM_TASK_MANAGER_EVENT_REPORTED\x10\xc2\x03\x12 \n\x1b\x41TOM_CDM_ASSOCIATION_ACTION\x10\xc3\x03\x12\x46\nAATOM_MAGNIFICATION_TRIPLE_TAP_AND_HOLD_ACTIVATED_SESSION_REPORTED\x10\xc4\x03\x12\x46\nAATOM_MAGNIFICATION_FOLLOW_TYPING_FOCUS_ACTIVATED_SESSION_REPORTED\x10\xc5\x03\x12\x34\n/ATOM_ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED\x10\xc6\x03\x12+\n&ATOM_WIFI_SETUP_FAILURE_CRASH_REPORTED\x10\xc7\x03\x12#\n\x1e\x41TOM_UWB_DEVICE_ERROR_REPORTED\x10\xc8\x03\x12(\n#ATOM_ISOLATED_COMPILATION_SCHEDULED\x10\xc9\x03\x12$\n\x1f\x41TOM_ISOLATED_COMPILATION_ENDED\x10\xca\x03\x12\x36\n1ATOM_ONS_OPPORTUNISTIC_ESIM_PROVISIONING_COMPLETE\x10\xcb\x03\x12-\n(ATOM_SYSTEM_SERVER_PRE_WATCHDOG_OCCURRED\x10\xcc\x03\x12$\n\x1f\x41TOM_TELEPHONY_ANOMALY_DETECTED\x10\xcd\x03\x12$\n\x1f\x41TOM_LETTERBOX_POSITION_CHANGED\x10\xce\x03\x12)\n$ATOM_REMOTE_KEY_PROVISIONING_ATTEMPT\x10\xcf\x03\x12.\n)ATOM_REMOTE_KEY_PROVISIONING_NETWORK_INFO\x10\xd0\x03\x12(\n#ATOM_REMOTE_KEY_PROVISIONING_TIMING\x10\xd1\x03\x12+\n&ATOM_MEDIAOUTPUT_OP_INTERACTION_REPORT\x10\xd2\x03\x12!\n\x1c\x41TOM_SYNC_EXEMPTION_OCCURRED\x10\xd4\x03\x12.\n)ATOM_AUTOFILL_PRESENTATION_EVENT_REPORTED\x10\xd5\x03\x12\x1c\n\x17\x41TOM_DOCK_STATE_CHANGED\x10\xd6\x03\x12\'\n\"ATOM_SAFETY_SOURCE_STATE_COLLECTED\x10\xd7\x03\x12-\n(ATOM_SAFETY_CENTER_SYSTEM_EVENT_REPORTED\x10\xd8\x03\x12,\n\'ATOM_SAFETY_CENTER_INTERACTION_REPORTED\x10\xd9\x03\x12+\n&ATOM_SETTINGS_PROVIDER_SETTING_CHANGED\x10\xda\x03\x12+\n&ATOM_BROADCAST_DELIVERY_EVENT_REPORTED\x10\xdb\x03\x12(\n#ATOM_SERVICE_REQUEST_EVENT_REPORTED\x10\xdc\x03\x12-\n(ATOM_PROVIDER_ACQUISITION_EVENT_REPORTED\x10\xdd\x03\x12(\n#ATOM_BLUETOOTH_DEVICE_NAME_REPORTED\x10\xde\x03\x12\x1b\n\x16\x41TOM_CB_CONFIG_UPDATED\x10\xdf\x03\x12\"\n\x1d\x41TOM_CB_MODULE_ERROR_REPORTED\x10\xe0\x03\x12$\n\x1f\x41TOM_CB_SERVICE_FEATURE_CHANGED\x10\xe1\x03\x12%\n ATOM_CB_RECEIVER_FEATURE_CHANGED\x10\xe2\x03\x12\x31\n,ATOM_PRIVACY_SIGNAL_NOTIFICATION_INTERACTION\x10\xe4\x03\x12/\n*ATOM_PRIVACY_SIGNAL_ISSUE_CARD_INTERACTION\x10\xe5\x03\x12%\n ATOM_PRIVACY_SIGNALS_JOB_FAILURE\x10\xe6\x03\x12\x1c\n\x17\x41TOM_VIBRATION_REPORTED\x10\xe7\x03\x12\x1b\n\x16\x41TOM_UWB_RANGING_START\x10\xe9\x03\x12\x1a\n\x15\x41TOM_APP_COMPACTED_V2\x10\xeb\x03\x12$\n\x1f\x41TOM_DISPLAY_BRIGHTNESS_CHANGED\x10\xee\x03\x12!\n\x1c\x41TOM_ACTIVITY_ACTION_BLOCKED\x10\xef\x03\x12-\n(ATOM_NETWORK_DNS_SERVER_SUPPORT_REPORTED\x10\xf8\x03\x12\x13\n\x0e\x41TOM_VM_BOOTED\x10\xf9\x03\x12\x13\n\x0e\x41TOM_VM_EXITED\x10\xfa\x03\x12+\n&ATOM_AMBIENT_BRIGHTNESS_STATS_REPORTED\x10\xfb\x03\x12\x37\n2ATOM_MEDIAMETRICS_SPATIALIZERCAPABILITIES_REPORTED\x10\xfc\x03\x12\x38\n3ATOM_MEDIAMETRICS_SPATIALIZERDEVICEENABLED_REPORTED\x10\xfd\x03\x12\x38\n3ATOM_MEDIAMETRICS_HEADTRACKERDEVICEENABLED_REPORTED\x10\xfe\x03\x12:\n5ATOM_MEDIAMETRICS_HEADTRACKERDEVICESUPPORTED_REPORTED\x10\xff\x03\x12#\n\x1e\x41TOM_HEARING_AID_INFO_REPORTED\x10\x81\x04\x12,\n\'ATOM_DEVICE_WIDE_JOB_CONSTRAINT_CHANGED\x10\x82\x04\x12\x1e\n\x19\x41TOM_AMBIENT_MODE_CHANGED\x10\x83\x04\x12\x1e\n\x19\x41TOM_ANR_LATENCY_REPORTED\x10\x84\x04\x12\x1b\n\x16\x41TOM_RESOURCE_API_INFO\x10\x85\x04\x12(\n#ATOM_SYSTEM_DEFAULT_NETWORK_CHANGED\x10\x86\x04\x12/\n*ATOM_IWLAN_SETUP_DATA_CALL_RESULT_REPORTED\x10\x87\x04\x12\x30\n+ATOM_IWLAN_PDN_DISCONNECTED_REASON_REPORTED\x10\x88\x04\x12(\n#ATOM_AIRPLANE_MODE_SESSION_REPORTED\x10\x89\x04\x12 \n\x1b\x41TOM_VM_CPU_STATUS_REPORTED\x10\x8a\x04\x12 \n\x1b\x41TOM_VM_MEM_STATUS_REPORTED\x10\x8b\x04\x12/\n*ATOM_PACKAGE_INSTALLATION_SESSION_REPORTED\x10\x8c\x04\x12&\n!ATOM_DEFAULT_NETWORK_REMATCH_INFO\x10\x8d\x04\x12\'\n\"ATOM_NETWORK_SELECTION_PERFORMANCE\x10\x8e\x04\x12\x1e\n\x19\x41TOM_NETWORK_NSD_REPORTED\x10\x8f\x04\x12\x31\n,ATOM_BLUETOOTH_DISCONNECTION_REASON_REPORTED\x10\x91\x04\x12+\n&ATOM_BLUETOOTH_LOCAL_VERSIONS_REPORTED\x10\x92\x04\x12\x36\n1ATOM_BLUETOOTH_REMOTE_SUPPORTED_FEATURES_REPORTED\x10\x93\x04\x12\x35\n0ATOM_BLUETOOTH_LOCAL_SUPPORTED_FEATURES_REPORTED\x10\x94\x04\x12!\n\x1c\x41TOM_BLUETOOTH_GATT_APP_INFO\x10\x95\x04\x12*\n%ATOM_BRIGHTNESS_CONFIGURATION_UPDATED\x10\x96\x04\x12-\n(ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_LAUNCHED\x10\x9a\x04\x12-\n(ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FINISHED\x10\x9b\x04\x12\x38\n3ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_CONNECTION_REPORTED\x10\x9c\x04\x12:\n5ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_DEVICE_SCAN_TRIGGERED\x10\x9d\x04\x12>\n9ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FIRST_DEVICE_SCAN_LATENCY\x10\x9e\x04\x12;\n6ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_CONNECT_DEVICE_LATENCY\x10\x9f\x04\x12+\n&ATOM_PACKAGE_MANAGER_SNAPSHOT_REPORTED\x10\xa0\x04\x12:\n5ATOM_PACKAGE_MANAGER_APPS_FILTER_CACHE_BUILD_REPORTED\x10\xa1\x04\x12;\n6ATOM_PACKAGE_MANAGER_APPS_FILTER_CACHE_UPDATE_REPORTED\x10\xa2\x04\x12#\n\x1e\x41TOM_LAUNCHER_IMPRESSION_EVENT\x10\xa3\x04\x12=\n8ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_ALL_DEVICES_SCAN_LATENCY\x10\xa5\x04\x12\x1e\n\x19\x41TOM_WS_WATCH_FACE_EDITED\x10\xa7\x04\x12\x30\n+ATOM_WS_WATCH_FACE_FAVORITE_ACTION_REPORTED\x10\xa8\x04\x12+\n&ATOM_WS_WATCH_FACE_SET_ACTION_REPORTED\x10\xa9\x04\x12)\n$ATOM_PACKAGE_UNINSTALLATION_REPORTED\x10\xaa\x04\x12\x1b\n\x16\x41TOM_GAME_MODE_CHANGED\x10\xab\x04\x12)\n$ATOM_GAME_MODE_CONFIGURATION_CHANGED\x10\xac\x04\x12$\n\x1f\x41TOM_BEDTIME_MODE_STATE_CHANGED\x10\xad\x04\x12%\n ATOM_NETWORK_SLICE_SESSION_ENDED\x10\xae\x04\x12\x31\n,ATOM_NETWORK_SLICE_DAILY_DATA_USAGE_REPORTED\x10\xaf\x04\x12\x1f\n\x1a\x41TOM_NFC_TAG_TYPE_OCCURRED\x10\xb0\x04\x12#\n\x1e\x41TOM_NFC_AID_CONFLICT_OCCURRED\x10\xb1\x04\x12&\n!ATOM_NFC_READER_CONFLICT_OCCURRED\x10\xb2\x04\x12\x1e\n\x19\x41TOM_WS_TILE_LIST_CHANGED\x10\xb3\x04\x12.\n)ATOM_GET_TYPE_ACCESSED_WITHOUT_PERMISSION\x10\xb4\x04\x12*\n%ATOM_MOBILE_BUNDLED_APP_INFO_GATHERED\x10\xb6\x04\x12\x30\n+ATOM_WS_WATCH_FACE_COMPLICATION_SET_CHANGED\x10\xb7\x04\x12\x1b\n\x16\x41TOM_MEDIA_DRM_CREATED\x10\xb8\x04\x12\x1b\n\x16\x41TOM_MEDIA_DRM_ERRORED\x10\xb9\x04\x12\"\n\x1d\x41TOM_MEDIA_DRM_SESSION_OPENED\x10\xba\x04\x12\"\n\x1d\x41TOM_MEDIA_DRM_SESSION_CLOSED\x10\xbb\x04\x12\"\n\x1d\x41TOM_USER_SELECTED_RESOLUTION\x10\xbc\x04\x12&\n!ATOM_UNSAFE_INTENT_EVENT_REPORTED\x10\xbd\x04\x12+\n&ATOM_PERFORMANCE_HINT_SESSION_REPORTED\x10\xbe\x04\x12\x31\n,ATOM_MEDIAMETRICS_MIDI_DEVICE_CLOSE_REPORTED\x10\xc0\x04\x12\"\n\x1d\x41TOM_BIOMETRIC_TOUCH_REPORTED\x10\xc1\x04\x12-\n(ATOM_HOTWORD_AUDIO_EGRESS_EVENT_REPORTED\x10\xc2\x04\x12(\n#ATOM_LOCATION_ENABLED_STATE_CHANGED\x10\xc4\x04\x12\x1e\n\x19\x41TOM_IME_REQUEST_FINISHED\x10\xc5\x04\x12*\n%ATOM_USB_COMPLIANCE_WARNINGS_REPORTED\x10\xc6\x04\x12\'\n\"ATOM_APP_SUPPORTED_LOCALES_CHANGED\x10\xc7\x04\x12\x31\n,ATOM_MEDIA_PROVIDER_VOLUME_RECOVERY_REPORTED\x10\xca\x04\x12(\n#ATOM_BIOMETRIC_PROPERTIES_COLLECTED\x10\xcb\x04\x12\"\n\x1d\x41TOM_KERNEL_WAKEUP_ATTRIBUTED\x10\xcc\x04\x12!\n\x1c\x41TOM_SCREEN_STATE_CHANGED_V2\x10\xcd\x04\x12#\n\x1e\x41TOM_WS_BACKUP_ACTION_REPORTED\x10\xce\x04\x12$\n\x1f\x41TOM_WS_RESTORE_ACTION_REPORTED\x10\xcf\x04\x12*\n%ATOM_DEVICE_LOG_ACCESS_EVENT_REPORTED\x10\xd0\x04\x12\x1f\n\x1a\x41TOM_MEDIA_SESSION_UPDATED\x10\xd2\x04\x12!\n\x1c\x41TOM_WEAR_OOBE_STATE_CHANGED\x10\xd3\x04\x12!\n\x1c\x41TOM_WS_NOTIFICATION_UPDATED\x10\xd4\x04\x12\x39\n4ATOM_NETWORK_VALIDATION_FAILURE_STATS_DAILY_REPORTED\x10\xd9\x04\x12 \n\x1b\x41TOM_WS_COMPLICATION_TAPPED\x10\xda\x04\x12\"\n\x1d\x41TOM_WS_NOTIFICATION_BLOCKING\x10\x8c\x06\x12,\n\'ATOM_WS_NOTIFICATION_BRIDGEMODE_UPDATED\x10\xb6\x06\x12,\n\'ATOM_WS_NOTIFICATION_DISMISSAL_ACTIONED\x10\xb7\x06\x12\"\n\x1d\x41TOM_WS_NOTIFICATION_ACTIONED\x10\xb8\x06\x12!\n\x1c\x41TOM_WS_NOTIFICATION_LATENCY\x10\xf0\x06\x12\x1d\n\x18\x41TOM_WIFI_BYTES_TRANSFER\x10\x90N\x12&\n!ATOM_WIFI_BYTES_TRANSFER_BY_FG_BG\x10\x91N\x12\x1f\n\x1a\x41TOM_MOBILE_BYTES_TRANSFER\x10\x92N\x12(\n#ATOM_MOBILE_BYTES_TRANSFER_BY_FG_BG\x10\x93N\x12\"\n\x1d\x41TOM_BLUETOOTH_BYTES_TRANSFER\x10\x96N\x12\x19\n\x14\x41TOM_KERNEL_WAKELOCK\x10\x94N\x12\x1f\n\x1a\x41TOM_SUBSYSTEM_SLEEP_STATE\x10\x95N\x12\x1a\n\x15\x41TOM_CPU_TIME_PER_UID\x10\x99N\x12\x1f\n\x1a\x41TOM_CPU_TIME_PER_UID_FREQ\x10\x9aN\x12\x1c\n\x17\x41TOM_WIFI_ACTIVITY_INFO\x10\x9bN\x12\x1d\n\x18\x41TOM_MODEM_ACTIVITY_INFO\x10\x9cN\x12!\n\x1c\x41TOM_BLUETOOTH_ACTIVITY_INFO\x10\x97N\x12\x1e\n\x19\x41TOM_PROCESS_MEMORY_STATE\x10\x9dN\x12!\n\x1c\x41TOM_SYSTEM_ELAPSED_REALTIME\x10\x9eN\x12\x17\n\x12\x41TOM_SYSTEM_UPTIME\x10\x9fN\x12\x19\n\x14\x41TOM_CPU_ACTIVE_TIME\x10\xa0N\x12\x1a\n\x15\x41TOM_CPU_CLUSTER_TIME\x10\xa1N\x12\x14\n\x0f\x41TOM_DISK_SPACE\x10\xa2N\x12$\n\x1f\x41TOM_REMAINING_BATTERY_CAPACITY\x10\xa3N\x12\x1f\n\x1a\x41TOM_FULL_BATTERY_CAPACITY\x10\xa4N\x12\x15\n\x10\x41TOM_TEMPERATURE\x10\xa5N\x12\x16\n\x11\x41TOM_BINDER_CALLS\x10\xa6N\x12!\n\x1c\x41TOM_BINDER_CALLS_EXCEPTIONS\x10\xa7N\x12\x16\n\x11\x41TOM_LOOPER_STATS\x10\xa8N\x12\x14\n\x0f\x41TOM_DISK_STATS\x10\xa9N\x12\x19\n\x14\x41TOM_DIRECTORY_USAGE\x10\xaaN\x12\x12\n\rATOM_APP_SIZE\x10\xabN\x12\x17\n\x12\x41TOM_CATEGORY_SIZE\x10\xacN\x12\x14\n\x0f\x41TOM_PROC_STATS\x10\xadN\x12\x19\n\x14\x41TOM_BATTERY_VOLTAGE\x10\xaeN\x12#\n\x1e\x41TOM_NUM_FINGERPRINTS_ENROLLED\x10\xafN\x12\x11\n\x0c\x41TOM_DISK_IO\x10\xb0N\x12\x17\n\x12\x41TOM_POWER_PROFILE\x10\xb1N\x12\x1d\n\x18\x41TOM_PROC_STATS_PKG_PROC\x10\xb2N\x12\x1a\n\x15\x41TOM_PROCESS_CPU_TIME\x10\xb3N\x12\"\n\x1d\x41TOM_CPU_TIME_PER_THREAD_FREQ\x10\xb5N\x12%\n ATOM_ON_DEVICE_POWER_MEASUREMENT\x10\xb6N\x12%\n ATOM_DEVICE_CALCULATED_POWER_USE\x10\xb7N\x12(\n#ATOM_PROCESS_MEMORY_HIGH_WATER_MARK\x10\xbaN\x12\x17\n\x12\x41TOM_BATTERY_LEVEL\x10\xbbN\x12\x1b\n\x16\x41TOM_BUILD_INFORMATION\x10\xbcN\x12\x1d\n\x18\x41TOM_BATTERY_CYCLE_COUNT\x10\xbdN\x12\x1d\n\x18\x41TOM_DEBUG_ELAPSED_CLOCK\x10\xbeN\x12%\n ATOM_DEBUG_FAILING_ELAPSED_CLOCK\x10\xbfN\x12\x1c\n\x17\x41TOM_NUM_FACES_ENROLLED\x10\xc0N\x12\x15\n\x10\x41TOM_ROLE_HOLDER\x10\xc1N\x12$\n\x1f\x41TOM_DANGEROUS_PERMISSION_STATE\x10\xc2N\x12\x14\n\x0f\x41TOM_TRAIN_INFO\x10\xc3N\x12\x1d\n\x18\x41TOM_TIME_ZONE_DATA_INFO\x10\xc4N\x12\x1f\n\x1a\x41TOM_EXTERNAL_STORAGE_INFO\x10\xc5N\x12\x1f\n\x1a\x41TOM_GPU_STATS_GLOBAL_INFO\x10\xc6N\x12\x1c\n\x17\x41TOM_GPU_STATS_APP_INFO\x10\xc7N\x12\x1e\n\x19\x41TOM_SYSTEM_ION_HEAP_SIZE\x10\xc8N\x12\'\n\"ATOM_APPS_ON_EXTERNAL_STORAGE_INFO\x10\xc9N\x12\x17\n\x12\x41TOM_FACE_SETTINGS\x10\xcaN\x12\x18\n\x13\x41TOM_COOLING_DEVICE\x10\xcbN\x12\x11\n\x0c\x41TOM_APP_OPS\x10\xccN\x12&\n!ATOM_PROCESS_SYSTEM_ION_HEAP_SIZE\x10\xcdN\x12*\n%ATOM_SURFACEFLINGER_STATS_GLOBAL_INFO\x10\xceN\x12)\n$ATOM_SURFACEFLINGER_STATS_LAYER_INFO\x10\xcfN\x12!\n\x1c\x41TOM_PROCESS_MEMORY_SNAPSHOT\x10\xd0N\x12\x1a\n\x15\x41TOM_VMS_CLIENT_STATS\x10\xd1N\x12#\n\x1e\x41TOM_NOTIFICATION_REMOTE_VIEWS\x10\xd2N\x12,\n\'ATOM_DANGEROUS_PERMISSION_STATE_SAMPLED\x10\xd3N\x12\x18\n\x13\x41TOM_GRAPHICS_STATS\x10\xd4N\x12\x1f\n\x1a\x41TOM_RUNTIME_APP_OP_ACCESS\x10\xd5N\x12\x17\n\x12\x41TOM_ION_HEAP_SIZE\x10\xd6N\x12*\n%ATOM_PACKAGE_NOTIFICATION_PREFERENCES\x10\xd7N\x12\x32\n-ATOM_PACKAGE_NOTIFICATION_CHANNEL_PREFERENCES\x10\xd8N\x12\x38\n3ATOM_PACKAGE_NOTIFICATION_CHANNEL_GROUP_PREFERENCES\x10\xd9N\x12\x14\n\x0f\x41TOM_GNSS_STATS\x10\xdaN\x12\x1c\n\x17\x41TOM_ATTRIBUTED_APP_OPS\x10\xdbN\x12\x1c\n\x17\x41TOM_VOICE_CALL_SESSION\x10\xdcN\x12\x1e\n\x19\x41TOM_VOICE_CALL_RAT_USAGE\x10\xddN\x12\x18\n\x13\x41TOM_SIM_SLOT_STATE\x10\xdeN\x12\'\n\"ATOM_SUPPORTED_RADIO_ACCESS_FAMILY\x10\xdfN\x12\x1a\n\x15\x41TOM_SETTING_SNAPSHOT\x10\xe0N\x12\x13\n\x0e\x41TOM_BLOB_INFO\x10\xe1N\x12#\n\x1e\x41TOM_DATA_USAGE_BYTES_TRANSFER\x10\xe2N\x12+\n&ATOM_BYTES_TRANSFER_BY_TAG_AND_METERED\x10\xe3N\x12\x17\n\x12\x41TOM_DND_MODE_RULE\x10\xe4N\x12/\n*ATOM_GENERAL_EXTERNAL_STORAGE_ACCESS_STATS\x10\xe5N\x12\x16\n\x11\x41TOM_INCOMING_SMS\x10\xe6N\x12\x16\n\x11\x41TOM_OUTGOING_SMS\x10\xe7N\x12\"\n\x1d\x41TOM_CARRIER_ID_TABLE_VERSION\x10\xe8N\x12\x1b\n\x16\x41TOM_DATA_CALL_SESSION\x10\xe9N\x12 \n\x1b\x41TOM_CELLULAR_SERVICE_STATE\x10\xeaN\x12&\n!ATOM_CELLULAR_DATA_SERVICE_SWITCH\x10\xebN\x12\x17\n\x12\x41TOM_SYSTEM_MEMORY\x10\xecN\x12&\n!ATOM_IMS_REGISTRATION_TERMINATION\x10\xedN\x12 \n\x1b\x41TOM_IMS_REGISTRATION_STATS\x10\xeeN\x12#\n\x1e\x41TOM_CPU_TIME_PER_CLUSTER_FREQ\x10\xefN\x12$\n\x1f\x41TOM_CPU_CYCLES_PER_UID_CLUSTER\x10\xf0N\x12\x1d\n\x18\x41TOM_DEVICE_ROTATED_DATA\x10\xf1N\x12-\n(ATOM_CPU_CYCLES_PER_THREAD_GROUP_CLUSTER\x10\xf2N\x12!\n\x1c\x41TOM_MEDIA_DRM_ACTIVITY_INFO\x10\xf3N\x12$\n\x1f\x41TOM_OEM_MANAGED_BYTES_TRANSFER\x10\xf4N\x12\x1a\n\x15\x41TOM_GNSS_POWER_STATS\x10\xf5N\x12\"\n\x1d\x41TOM_TIME_ZONE_DETECTOR_STATE\x10\xf6N\x12!\n\x1c\x41TOM_KEYSTORE2_STORAGE_STATS\x10\xf7N\x12\x18\n\x13\x41TOM_RKP_POOL_STATS\x10\xf8N\x12\x1f\n\x1a\x41TOM_PROCESS_DMABUF_MEMORY\x10\xf9N\x12\x1c\n\x17\x41TOM_PENDING_ALARM_INFO\x10\xfaN\x12$\n\x1f\x41TOM_USER_LEVEL_HIBERNATED_APPS\x10\xfbN\x12\"\n\x1d\x41TOM_LAUNCHER_LAYOUT_SNAPSHOT\x10\xfcN\x12 \n\x1b\x41TOM_GLOBAL_HIBERNATED_APPS\x10\xfdN\x12$\n\x1f\x41TOM_INPUT_EVENT_LATENCY_SKETCH\x10\xfeN\x12*\n%ATOM_BATTERY_USAGE_STATS_BEFORE_RESET\x10\xffN\x12)\n$ATOM_BATTERY_USAGE_STATS_SINCE_RESET\x10\x80O\x12\x43\n>ATOM_BATTERY_USAGE_STATS_SINCE_RESET_USING_POWER_PROFILE_MODEL\x10\x81O\x12\'\n\"ATOM_INSTALLED_INCREMENTAL_PACKAGE\x10\x82O\x12$\n\x1f\x41TOM_TELEPHONY_NETWORK_REQUESTS\x10\x83O\x12!\n\x1c\x41TOM_APP_SEARCH_STORAGE_INFO\x10\x84O\x12\x10\n\x0b\x41TOM_VMSTAT\x10\x85O\x12\x32\n-ATOM_KEYSTORE2_KEY_CREATION_WITH_GENERAL_INFO\x10\x86O\x12/\n*ATOM_KEYSTORE2_KEY_CREATION_WITH_AUTH_INFO\x10\x87O\x12<\n7ATOM_KEYSTORE2_KEY_CREATION_WITH_PURPOSE_AND_MODES_INFO\x10\x88O\x12&\n!ATOM_KEYSTORE2_ATOM_WITH_OVERFLOW\x10\x89O\x12=\n8ATOM_KEYSTORE2_KEY_OPERATION_WITH_PURPOSE_AND_MODES_INFO\x10\x8aO\x12\x33\n.ATOM_KEYSTORE2_KEY_OPERATION_WITH_GENERAL_INFO\x10\x8bO\x12\x19\n\x14\x41TOM_RKP_ERROR_STATS\x10\x8cO\x12\x1f\n\x1a\x41TOM_KEYSTORE2_CRASH_STATS\x10\x8dO\x12\x1a\n\x15\x41TOM_VENDOR_APEX_INFO\x10\x8eO\x12&\n!ATOM_ACCESSIBILITY_SHORTCUT_STATS\x10\x8fO\x12+\n&ATOM_ACCESSIBILITY_FLOATING_MENU_STATS\x10\x90O\x12&\n!ATOM_DATA_USAGE_BYTES_TRANSFER_V2\x10\x91O\x12\x1c\n\x17\x41TOM_MEDIA_CAPABILITIES\x10\x92O\x12.\n)ATOM_CAR_WATCHDOG_SYSTEM_IO_USAGE_SUMMARY\x10\x93O\x12+\n&ATOM_CAR_WATCHDOG_UID_IO_USAGE_SUMMARY\x10\x94O\x12,\n\'ATOM_IMS_REGISTRATION_FEATURE_TAG_STATS\x10\x95O\x12\'\n\"ATOM_RCS_CLIENT_PROVISIONING_STATS\x10\x96O\x12$\n\x1f\x41TOM_RCS_ACS_PROVISIONING_STATS\x10\x97O\x12\x1c\n\x17\x41TOM_SIP_DELEGATE_STATS\x10\x98O\x12)\n$ATOM_SIP_TRANSPORT_FEATURE_TAG_STATS\x10\x99O\x12\x1e\n\x19\x41TOM_SIP_MESSAGE_RESPONSE\x10\x9aO\x12\x1f\n\x1a\x41TOM_SIP_TRANSPORT_SESSION\x10\x9bO\x12-\n(ATOM_IMS_DEDICATED_BEARER_LISTENER_EVENT\x10\x9cO\x12$\n\x1f\x41TOM_IMS_DEDICATED_BEARER_EVENT\x10\x9dO\x12-\n(ATOM_IMS_REGISTRATION_SERVICE_DESC_STATS\x10\x9eO\x12\x19\n\x14\x41TOM_UCE_EVENT_STATS\x10\x9fO\x12\x1f\n\x1a\x41TOM_PRESENCE_NOTIFY_EVENT\x10\xa0O\x12\x13\n\x0e\x41TOM_GBA_EVENT\x10\xa1O\x12\x18\n\x13\x41TOM_PER_SIM_STATUS\x10\xa2O\x12\x1a\n\x15\x41TOM_GPU_WORK_PER_UID\x10\xa3O\x12\x37\n2ATOM_PERSISTENT_URI_PERMISSIONS_AMOUNT_PER_PACKAGE\x10\xa4O\x12\x1f\n\x1a\x41TOM_SIGNED_PARTITION_INFO\x10\xa5O\x12\'\n\"ATOM_PINNED_FILE_SIZES_PER_PACKAGE\x10\xa6O\x12%\n ATOM_PENDING_INTENTS_PER_PACKAGE\x10\xa7O\x12\x13\n\x0e\x41TOM_USER_INFO\x10\xa8O\x12\'\n\"ATOM_TELEPHONY_NETWORK_REQUESTS_V2\x10\xa9O\x12%\n ATOM_DEVICE_TELEPHONY_PROPERTIES\x10\xaaO\x12.\n)ATOM_REMOTE_KEY_PROVISIONING_ERROR_COUNTS\x10\xabO\x12\x16\n\x11\x41TOM_SAFETY_STATE\x10\xacO\x12\x16\n\x11\x41TOM_INCOMING_MMS\x10\xadO\x12\x16\n\x11\x41TOM_OUTGOING_MMS\x10\xaeO\x12\x19\n\x14\x41TOM_MULTI_USER_INFO\x10\xb0O\x12\x1e\n\x19\x41TOM_NETWORK_BPF_MAP_INFO\x10\xb1O\x12!\n\x1c\x41TOM_OUTGOING_SHORT_CODE_SMS\x10\xb2O\x12#\n\x1e\x41TOM_CONNECTIVITY_STATE_SAMPLE\x10\xb3O\x12\x30\n+ATOM_NETWORK_SELECTION_REMATCH_REASONS_INFO\x10\xb4O\x12\x18\n\x13\x41TOM_GAME_MODE_INFO\x10\xb5O\x12!\n\x1c\x41TOM_GAME_MODE_CONFIGURATION\x10\xb6O\x12\x1c\n\x17\x41TOM_GAME_MODE_LISTENER\x10\xb7O\x12%\n ATOM_NETWORK_SLICE_REQUEST_COUNT\x10\xb8O\x12\x1a\n\x15\x41TOM_WS_TILE_SNAPSHOT\x10\xb9O\x12\x38\n3ATOM_WS_ACTIVE_WATCH_FACE_COMPLICATION_SET_SNAPSHOT\x10\xbaO\x12\x17\n\x12\x41TOM_PROCESS_STATE\x10\xbbO\x12\x1d\n\x18\x41TOM_PROCESS_ASSOCIATION\x10\xbcO\x12$\n\x1f\x41TOM_ADPF_SYSTEM_COMPONENT_INFO\x10\xbdO\x12!\n\x1c\x41TOM_NOTIFICATION_MEMORY_USE\x10\xbeO\x12\x1a\n\x15\x41TOM_HDR_CAPABILITIES\x10\xbfO\x12/\n*ATOM_WS_FAVOURITE_WATCH_FACE_LIST_SNAPSHOT\x10\xc0O\x12-\n(ATOM_ACCESSIBILITY_CHECK_RESULT_REPORTED\x10\x8e\x07\x12\x32\n-ATOM_ADAPTIVE_AUTH_UNLOCK_AFTER_LOCK_REPORTED\x10\xb4\x06\x12\x1f\n\x1a\x41TOM_THERMAL_STATUS_CALLED\x10\x84\x06\x12!\n\x1c\x41TOM_THERMAL_HEADROOM_CALLED\x10\x85\x06\x12,\n\'ATOM_THERMAL_HEADROOM_THRESHOLDS_CALLED\x10\x86\x06\x12\'\n\"ATOM_ADPF_HINT_SESSION_TID_CLEANUP\x10\xc7\x06\x12%\n ATOM_THERMAL_HEADROOM_THRESHOLDS\x10\xd9O\x12\x1f\n\x1a\x41TOM_ADPF_SESSION_SNAPSHOT\x10\xeaO\x12)\n$ATOM_JSSCRIPTENGINE_LATENCY_REPORTED\x10\xe3\x03\x12 \n\x1b\x41TOM_AD_SERVICES_API_CALLED\x10\xb3\x03\x12\x31\n,ATOM_AD_SERVICES_MESUREMENT_REPORTS_UPLOADED\x10\xb4\x03\x12\x39\n4ATOM_MOBILE_DATA_DOWNLOAD_FILE_GROUP_STATUS_REPORTED\x10\xea\x03\x12\x37\n2ATOM_MOBILE_DATA_DOWNLOAD_DOWNLOAD_RESULT_REPORTED\x10\xf6\x03\x12-\n(ATOM_AD_SERVICES_SETTINGS_USAGE_REPORTED\x10\xed\x03\x12+\n&ATOM_BACKGROUND_FETCH_PROCESS_REPORTED\x10\xf0\x03\x12\x31\n,ATOM_UPDATE_CUSTOM_AUDIENCE_PROCESS_REPORTED\x10\xf1\x03\x12)\n$ATOM_RUN_AD_BIDDING_PROCESS_REPORTED\x10\xf2\x03\x12)\n$ATOM_RUN_AD_SCORING_PROCESS_REPORTED\x10\xf3\x03\x12+\n&ATOM_RUN_AD_SELECTION_PROCESS_REPORTED\x10\xf4\x03\x12\x30\n+ATOM_RUN_AD_BIDDING_PER_CA_PROCESS_REPORTED\x10\xf5\x03\x12@\n;ATOM_MOBILE_DATA_DOWNLOAD_FILE_GROUP_STORAGE_STATS_REPORTED\x10\xf7\x03\x12/\n*ATOM_AD_SERVICES_MEASUREMENT_REGISTRATIONS\x10\x80\x04\x12)\n$ATOM_AD_SERVICES_GET_TOPICS_REPORTED\x10\x97\x04\x12?\n:ATOM_AD_SERVICES_EPOCH_COMPUTATION_GET_TOP_TOPICS_REPORTED\x10\x98\x04\x12;\n6ATOM_AD_SERVICES_EPOCH_COMPUTATION_CLASSIFIER_REPORTED\x10\x99\x04\x12\x35\n0ATOM_AD_SERVICES_BACK_COMPAT_GET_TOPICS_REPORTED\x10\xd6\x04\x12G\nBATOM_AD_SERVICES_BACK_COMPAT_EPOCH_COMPUTATION_CLASSIFIER_REPORTED\x10\xd7\x04\x12,\n\'ATOM_AD_SERVICES_MEASUREMENT_DEBUG_KEYS\x10\x80\x05\x12$\n\x1f\x41TOM_AD_SERVICES_ERROR_REPORTED\x10\x96\x05\x12\x38\n3ATOM_AD_SERVICES_BACKGROUND_JOBS_EXECUTION_REPORTED\x10\x97\x05\x12=\n8ATOM_AD_SERVICES_MEASUREMENT_DELAYED_SOURCE_REGISTRATION\x10\xa1\x05\x12-\n(ATOM_AD_SERVICES_MEASUREMENT_ATTRIBUTION\x10\xa2\x05\x12&\n!ATOM_AD_SERVICES_MEASUREMENT_JOBS\x10\xa3\x05\x12)\n$ATOM_AD_SERVICES_MEASUREMENT_WIPEOUT\x10\xa4\x05\x12<\n7ATOM_AD_SERVICES_MEASUREMENT_AD_ID_MATCH_FOR_DEBUG_KEYS\x10\xb7\x05\x12,\n\'ATOM_AD_SERVICES_ENROLLMENT_DATA_STORED\x10\xb9\x05\x12\x30\n+ATOM_AD_SERVICES_ENROLLMENT_FILE_DOWNLOADED\x10\xba\x05\x12(\n#ATOM_AD_SERVICES_ENROLLMENT_MATCHED\x10\xbb\x05\x12&\n!ATOM_AD_SERVICES_CONSENT_MIGRATED\x10\xbe\x05\x12\'\n\"ATOM_AD_SERVICES_ENROLLMENT_FAILED\x10\xca\x05\x12\x34\n/ATOM_AD_SERVICES_MEASUREMENT_CLICK_VERIFICATION\x10\xf4\x05\x12,\n\'ATOM_AD_SERVICES_ENCRYPTION_KEY_FETCHED\x10\xfd\x05\x12\x39\n4ATOM_AD_SERVICES_ENCRYPTION_KEY_DB_TRANSACTION_ENDED\x10\xfe\x05\x12(\n#ATOM_DESTINATION_REGISTERED_BEACONS\x10\xff\x05\x12\'\n\"ATOM_REPORT_INTERACTION_API_CALLED\x10\x80\x06\x12-\n(ATOM_INTERACTION_REPORTING_TABLE_CLEARED\x10\x81\x06\x12+\n&ATOM_APP_MANIFEST_CONFIG_HELPER_CALLED\x10\x94\x06\x12/\n*ATOM_AD_FILTERING_PROCESS_JOIN_CA_REPORTED\x10\x99\x06\x12\x34\n/ATOM_AD_FILTERING_PROCESS_AD_SELECTION_REPORTED\x10\x9a\x06\x12/\n*ATOM_AD_COUNTER_HISTOGRAM_UPDATER_REPORTED\x10\x9b\x06\x12 \n\x1b\x41TOM_SIGNATURE_VERIFICATION\x10\xa7\x06\x12\x34\n/ATOM_K_ANON_IMMEDIATE_SIGN_JOIN_STATUS_REPORTED\x10\xa8\x06\x12/\n*ATOM_K_ANON_BACKGROUND_JOB_STATUS_REPORTED\x10\xa9\x06\x12+\n&ATOM_K_ANON_INITIALIZE_STATUS_REPORTED\x10\xaa\x06\x12%\n ATOM_K_ANON_SIGN_STATUS_REPORTED\x10\xab\x06\x12%\n ATOM_K_ANON_JOIN_STATUS_REPORTED\x10\xac\x06\x12\x30\n+ATOM_K_ANON_KEY_ATTESTATION_STATUS_REPORTED\x10\xad\x06\x12*\n%ATOM_GET_AD_SELECTION_DATA_API_CALLED\x10\xae\x06\x12\x35\n0ATOM_GET_AD_SELECTION_DATA_BUYER_INPUT_GENERATED\x10\xaf\x06\x12,\n\'ATOM_BACKGROUND_JOB_SCHEDULING_REPORTED\x10\xc2\x06\x12\x36\n1ATOM_TOPICS_ENCRYPTION_EPOCH_COMPUTATION_REPORTED\x10\xc8\x06\x12/\n*ATOM_TOPICS_ENCRYPTION_GET_TOPICS_REPORTED\x10\xc9\x06\x12)\n$ATOM_ADSERVICES_SHELL_COMMAND_CALLED\x10\xca\x06\x12#\n\x1e\x41TOM_UPDATE_SIGNALS_API_CALLED\x10\xcb\x06\x12\x1a\n\x15\x41TOM_ENCODING_JOB_RUN\x10\xcc\x06\x12\x1b\n\x16\x41TOM_ENCODING_JS_FETCH\x10\xcd\x06\x12\x1f\n\x1a\x41TOM_ENCODING_JS_EXECUTION\x10\xce\x06\x12,\n\'ATOM_PERSIST_AD_SELECTION_RESULT_CALLED\x10\xcf\x06\x12)\n$ATOM_SERVER_AUCTION_KEY_FETCH_CALLED\x10\xd0\x06\x12\x35\n0ATOM_SERVER_AUCTION_BACKGROUND_KEY_FETCH_ENABLED\x10\xd1\x06\x12:\n5ATOM_AD_SERVICES_MEASUREMENT_PROCESS_ODP_REGISTRATION\x10\xe0\x06\x12<\n7ATOM_AD_SERVICES_MEASUREMENT_NOTIFY_REGISTRATION_TO_ODP\x10\xe1\x06\x12-\n(ATOM_SELECT_ADS_FROM_OUTCOMES_API_CALLED\x10\xec\x06\x12&\n!ATOM_REPORT_IMPRESSION_API_CALLED\x10\xed\x06\x12\x32\n-ATOM_AD_SERVICES_ENROLLMENT_TRANSACTION_STATS\x10\xf5\x06\x12\x32\n-ATOM_AD_SERVICES_COBALT_LOGGER_EVENT_REPORTED\x10\x86\x07\x12\x38\n3ATOM_AD_SERVICES_COBALT_PERIODIC_JOB_EVENT_REPORTED\x10\x87\x07\x12)\n$ATOM_UPDATE_SIGNALS_PROCESS_REPORTED\x10\x89\x07\x12\x34\n/ATOM_TOPICS_SCHEDULE_EPOCH_JOB_SETTING_REPORTED\x10\xa2\x07\x12&\n!ATOM_AI_WALLPAPERS_BUTTON_PRESSED\x10\xc2\x05\x12)\n$ATOM_AI_WALLPAPERS_TEMPLATE_SELECTED\x10\xc3\x05\x12%\n ATOM_AI_WALLPAPERS_TERM_SELECTED\x10\xc4\x05\x12%\n ATOM_AI_WALLPAPERS_WALLPAPER_SET\x10\xc5\x05\x12\'\n\"ATOM_AI_WALLPAPERS_SESSION_SUMMARY\x10\xc6\x05\x12%\n ATOM_APEX_INSTALLATION_REQUESTED\x10\xdc\x05\x12\"\n\x1d\x41TOM_APEX_INSTALLATION_STAGED\x10\xdd\x05\x12!\n\x1c\x41TOM_APEX_INSTALLATION_ENDED\x10\xde\x05\x12.\n)ATOM_APP_SEARCH_SET_SCHEMA_STATS_REPORTED\x10\x81\x03\x12\x34\n/ATOM_APP_SEARCH_SCHEMA_MIGRATION_STATS_REPORTED\x10\xc3\x04\x12\x37\n2ATOM_APP_SEARCH_USAGE_SEARCH_INTENT_STATS_REPORTED\x10\xb9\x06\x12\x41\n<ATOM_APP_SEARCH_USAGE_SEARCH_INTENT_RAW_QUERY_STATS_REPORTED\x10\xba\x06\x12\x30\n+ATOM_APP_SEARCH_APPS_INDEXER_STATS_REPORTED\x10\x8d\x07\x12\x1c\n\x17\x41TOM_ART_DATUM_REPORTED\x10\xcc\x02\x12#\n\x1e\x41TOM_ART_DEVICE_DATUM_REPORTED\x10\xa6\x04\x12\"\n\x1d\x41TOM_ART_DATUM_DELTA_REPORTED\x10\xb5\x04\x12\x1e\n\x19\x41TOM_ART_DEX2OAT_REPORTED\x10\xa1\x07\x12\x1b\n\x16\x41TOM_ART_DEVICE_STATUS\x10\xddO\x12%\n ATOM_BACKGROUND_DEXOPT_JOB_ENDED\x10\xd3\x03\x12$\n\x1f\x41TOM_PREREBOOT_DEXOPT_JOB_ENDED\x10\xf3\x06\x12\x1c\n\x17\x41TOM_ODREFRESH_REPORTED\x10\xee\x02\x12\x19\n\x14\x41TOM_ODSIGN_REPORTED\x10\xa4\x04\x12$\n\x1f\x41TOM_AUTOFILL_UI_EVENT_REPORTED\x10\xdb\x04\x12(\n#ATOM_AUTOFILL_FILL_REQUEST_REPORTED\x10\xdc\x04\x12)\n$ATOM_AUTOFILL_FILL_RESPONSE_REPORTED\x10\xdd\x04\x12&\n!ATOM_AUTOFILL_SAVE_EVENT_REPORTED\x10\xde\x04\x12$\n\x1f\x41TOM_AUTOFILL_SESSION_COMMITTED\x10\xdf\x04\x12\x36\n1ATOM_AUTOFILL_FIELD_CLASSIFICATION_EVENT_REPORTED\x10\x93\x05\x12$\n\x1f\x41TOM_CAR_RECENTS_EVENT_REPORTED\x10\x82\x06\x12&\n!ATOM_CAR_CALM_MODE_EVENT_REPORTED\x10\x9d\x06\x12*\n%ATOM_CAR_WAKEUP_FROM_SUSPEND_REPORTED\x10\xd4\x06\x12\x1c\n\x17\x41TOM_PLUGIN_INITIALIZED\x10\x8f\x05\x12/\n*ATOM_BLUETOOTH_HASHED_DEVICE_NAME_REPORTED\x10\xe5\x04\x12/\n*ATOM_BLUETOOTH_L2CAP_COC_CLIENT_CONNECTION\x10\xe6\x04\x12/\n*ATOM_BLUETOOTH_L2CAP_COC_SERVER_CONNECTION\x10\xe7\x04\x12(\n#ATOM_BLUETOOTH_LE_SESSION_CONNECTED\x10\x90\x05\x12\x33\n.ATOM_RESTRICTED_BLUETOOTH_DEVICE_NAME_REPORTED\x10\x9a\x05\x12\x30\n+ATOM_BLUETOOTH_PROFILE_CONNECTION_ATTEMPTED\x10\xb8\x05\x12\x32\n-ATOM_BLUETOOTH_CONTENT_PROFILE_ERROR_REPORTED\x10\x8d\x06\x12/\n*ATOM_BLUETOOTH_RFCOMM_CONNECTION_ATTEMPTED\x10\x8e\x06\x12\x32\n-ATOM_REMOTE_DEVICE_INFORMATION_WITH_METRIC_ID\x10\xde\x06\x12#\n\x1e\x41TOM_LE_APP_SCAN_STATE_CHANGED\x10\xe6\x06\x12\x1f\n\x1a\x41TOM_LE_RADIO_SCAN_STOPPED\x10\xe7\x06\x12!\n\x1c\x41TOM_LE_SCAN_RESULT_RECEIVED\x10\xe8\x06\x12\x18\n\x13\x41TOM_LE_SCAN_ABUSED\x10\xe9\x06\x12\x1e\n\x19\x41TOM_LE_ADV_STATE_CHANGED\x10\xea\x06\x12\x1f\n\x1a\x41TOM_LE_ADV_ERROR_REPORTED\x10\xeb\x06\x12\x1f\n\x1a\x41TOM_A2DP_SESSION_REPORTED\x10\x88\x07\x12.\n)ATOM_BLUETOOTH_CROSS_LAYER_EVENT_REPORTED\x10\x94\x07\x12*\n%ATOM_BROADCAST_AUDIO_SESSION_REPORTED\x10\x9f\x07\x12\'\n\"ATOM_BROADCAST_AUDIO_SYNC_REPORTED\x10\xa0\x07\x12\x37\n2ATOM_BLUETOOTH_RFCOMM_CONNECTION_REPORTED_AT_CLOSE\x10\xd6\x07\x12!\n\x1c\x41TOM_BLUETOOTH_LE_CONNECTION\x10\xdc\x07\x12\x18\n\x13\x41TOM_BROADCAST_SENT\x10\x9a\x07\x12\x30\n+ATOM_CAMERA_FEATURE_COMBINATION_QUERY_EVENT\x10\x84\x07\x12\x39\n4ATOM_CERTIFICATE_TRANSPARENCY_LOG_LIST_STATE_CHANGED\x10\xa6\x07\x12\x39\n4ATOM_CERTIFICATE_TRANSPARENCY_LOG_LIST_UPDATE_FAILED\x10\xcc\x07\x12\'\n\"ATOM_DAILY_KEEPALIVE_INFO_REPORTED\x10\x8a\x05\x12\'\n\"ATOM_NETWORK_REQUEST_STATE_CHANGED\x10\x8b\x06\x12,\n\'ATOM_TETHERING_ACTIVE_SESSIONS_REPORTED\x10\x9d\x07\x12.\n)ATOM_NETWORK_STATS_RECORDER_FILE_OPERATED\x10\x8f\x06\x12\x31\n,ATOM_CORE_NETWORKING_TERRIBLE_ERROR_OCCURRED\x10\xd3\x07\x12#\n\x1e\x41TOM_APF_SESSION_INFO_REPORTED\x10\x89\x06\x12$\n\x1f\x41TOM_IP_CLIENT_RA_INFO_REPORTED\x10\x8a\x06\x12&\n!ATOM_VPN_CONNECTION_STATE_CHANGED\x10\xd2\x06\x12!\n\x1c\x41TOM_VPN_CONNECTION_REPORTED\x10\xd3\x06\x12\x14\n\x0f\x41TOM_CPU_POLICY\x10\xd7O\x12\'\n\"ATOM_CREDENTIAL_MANAGER_API_CALLED\x10\xc9\x04\x12\x30\n+ATOM_CREDENTIAL_MANAGER_INIT_PHASE_REPORTED\x10\x8b\x05\x12\x35\n0ATOM_CREDENTIAL_MANAGER_CANDIDATE_PHASE_REPORTED\x10\x8c\x05\x12\x31\n,ATOM_CREDENTIAL_MANAGER_FINAL_PHASE_REPORTED\x10\x8d\x05\x12+\n&ATOM_CREDENTIAL_MANAGER_TOTAL_REPORTED\x10\x9b\x05\x12\x30\n+ATOM_CREDENTIAL_MANAGER_FINALNOUID_REPORTED\x10\x9c\x05\x12)\n$ATOM_CREDENTIAL_MANAGER_GET_REPORTED\x10\x9d\x05\x12\x30\n+ATOM_CREDENTIAL_MANAGER_AUTH_CLICK_REPORTED\x10\x9e\x05\x12)\n$ATOM_CREDENTIAL_MANAGER_APIV2_CALLED\x10\x9f\x05\x12\x1f\n\x1a\x41TOM_CRONET_ENGINE_CREATED\x10\xbf\x05\x12!\n\x1c\x41TOM_CRONET_TRAFFIC_REPORTED\x10\xc0\x05\x12+\n&ATOM_CRONET_ENGINE_BUILDER_INITIALIZED\x10\xfa\x05\x12\'\n\"ATOM_CRONET_HTTP_FLAGS_INITIALIZED\x10\xfb\x05\x12\x1c\n\x17\x41TOM_CRONET_INITIALIZED\x10\xfc\x05\x12!\n\x1c\x41TOM_DESKTOP_MODE_UI_CHANGED\x10\xb2\x06\x12*\n%ATOM_DESKTOP_MODE_SESSION_TASK_UPDATE\x10\xb3\x06\x12(\n#ATOM_DESKTOP_MODE_TASK_SIZE_UPDATED\x10\xa7\x07\x12/\n*ATOM_DEVICE_LOCK_CHECK_IN_REQUEST_REPORTED\x10\xd6\x05\x12\x34\n/ATOM_DEVICE_LOCK_PROVISIONING_COMPLETE_REPORTED\x10\xd7\x05\x12\x30\n+ATOM_DEVICE_LOCK_KIOSK_APP_REQUEST_REPORTED\x10\xd8\x05\x12-\n(ATOM_DEVICE_LOCK_CHECK_IN_RETRY_REPORTED\x10\x95\x06\x12\x30\n+ATOM_DEVICE_LOCK_PROVISION_FAILURE_REPORTED\x10\x96\x06\x12\x39\n4ATOM_DEVICE_LOCK_LOCK_UNLOCK_DEVICE_FAILURE_REPORTED\x10\x97\x06\x12\'\n\"ATOM_DEVICE_POLICY_MANAGEMENT_MODE\x10\xe8O\x12\x1d\n\x18\x41TOM_DEVICE_POLICY_STATE\x10\xe9O\x12,\n\'ATOM_DISPLAY_MODE_DIRECTOR_VOTE_CHANGED\x10\x98\x06\x12(\n#ATOM_EXTERNAL_DISPLAY_STATE_CHANGED\x10\xa6\x06\x12\x1b\n\x16\x41TOM_DND_STATE_CHANGED\x10\x91\x05\x12\x1f\n\x1a\x41TOM_DREAM_SETTING_CHANGED\x10\xc1\x05\x12 \n\x1b\x41TOM_DREAM_SETTING_SNAPSHOT\x10\xd0O\x12 \n\x1b\x41TOM_EXPRESS_EVENT_REPORTED\x10\x90\x04\x12+\n&ATOM_EXPRESS_HISTOGRAM_SAMPLE_REPORTED\x10\xd1\x04\x12$\n\x1f\x41TOM_EXPRESS_UID_EVENT_REPORTED\x10\x84\x05\x12/\n*ATOM_EXPRESS_UID_HISTOGRAM_SAMPLE_REPORTED\x10\x92\x05\x12&\n!ATOM_FEDERATED_COMPUTE_API_CALLED\x10\xc8\x05\x12\x33\n.ATOM_FEDERATED_COMPUTE_TRAINING_EVENT_REPORTED\x10\x83\x06\x12\x30\n+ATOM_EXAMPLE_ITERATOR_NEXT_LATENCY_REPORTED\x10\xc6\x06\x12%\n ATOM_FULL_SCREEN_INTENT_LAUNCHED\x10\xf7\x04\x12\x15\n\x10\x41TOM_BAL_ALLOWED\x10\xf8\x04\x12\"\n\x1d\x41TOM_IN_TASK_ACTIVITY_STARTED\x10\xad\x05\x12$\n\x1f\x41TOM_DEVICE_ORIENTATION_CHANGED\x10\x8a\x07\x12$\n\x1f\x41TOM_CACHED_APPS_HIGH_WATERMARK\x10\xcdO\x12,\n\'ATOM_STYLUS_PREDICTION_METRICS_REPORTED\x10\xce\x05\x12\"\n\x1d\x41TOM_USER_RISK_EVENT_REPORTED\x10\xd5\x05\x12(\n#ATOM_MEDIA_PROJECTION_STATE_CHANGED\x10\xd9\x05\x12)\n$ATOM_MEDIA_PROJECTION_TARGET_CHANGED\x10\xda\x05\x12/\n*ATOM_EXCESSIVE_BINDER_PROXY_COUNT_REPORTED\x10\xd5\x06\x12\'\n\"ATOM_PROXY_BYTES_TRANSFER_BY_FG_BG\x10\xd8O\x12-\n(ATOM_MOBILE_BYTES_TRANSFER_BY_PROC_STATE\x10\xdcO\x12$\n\x1f\x41TOM_BIOMETRIC_FRR_NOTIFICATION\x10\xb1\x06\x12\x34\n/ATOM_SENSITIVE_CONTENT_MEDIA_PROJECTION_SESSION\x10\xbe\x06\x12\x37\n2ATOM_SENSITIVE_NOTIFICATION_APP_PROTECTION_SESSION\x10\xbf\x06\x12\x37\n2ATOM_SENSITIVE_NOTIFICATION_APP_PROTECTION_APPLIED\x10\xc0\x06\x12*\n%ATOM_SENSITIVE_NOTIFICATION_REDACTION\x10\xc1\x06\x12*\n%ATOM_SENSITIVE_CONTENT_APP_PROTECTION\x10\xc3\x06\x12\'\n\"ATOM_APP_RESTRICTION_STATE_CHANGED\x10\xe2\x06\x12%\n ATOM_BATTERY_USAGE_STATS_PER_UID\x10\xe1O\x12 \n\x1b\x41TOM_POSTGC_MEMORY_SNAPSHOT\x10\x9c\x07\x12+\n&ATOM_POWER_SAVE_TEMP_ALLOWLIST_CHANGED\x10\x9e\x07\x12\x1f\n\x1a\x41TOM_APP_OP_ACCESS_TRACKED\x10\xa3\x07\x12,\n\'ATOM_CONTENT_OR_FILE_URI_EVENT_REPORTED\x10\xa5\x07\x12\x34\n/ATOM_APPLICATION_GRAMMATICAL_INFLECTION_CHANGED\x10\xc8\x04\x12/\n*ATOM_SYSTEM_GRAMMATICAL_INFLECTION_CHANGED\x10\xb0\x06\x12\x18\n\x13\x41TOM_BATTERY_HEALTH\x10\xecO\x12#\n\x1e\x41TOM_HDMI_EARC_STATUS_REPORTED\x10\xbd\x05\x12,\n\'ATOM_HDMI_SOUNDBAR_MODE_STATUS_REPORTED\x10\xd4\x05\x12#\n\x1e\x41TOM_HEALTH_CONNECT_API_CALLED\x10\xe8\x04\x12$\n\x1f\x41TOM_HEALTH_CONNECT_USAGE_STATS\x10\xe9\x04\x12&\n!ATOM_HEALTH_CONNECT_STORAGE_STATS\x10\xea\x04\x12$\n\x1f\x41TOM_HEALTH_CONNECT_API_INVOKED\x10\x83\x05\x12#\n\x1e\x41TOM_EXERCISE_ROUTE_API_CALLED\x10\x8e\x05\x12\'\n\"ATOM_HEALTH_CONNECT_EXPORT_INVOKED\x10\x8b\x07\x12\'\n\"ATOM_HEALTH_CONNECT_IMPORT_INVOKED\x10\x96\x07\x12\x35\n0ATOM_HEALTH_CONNECT_EXPORT_IMPORT_STATS_REPORTED\x10\x97\x07\x12&\n!ATOM_HEALTH_CONNECT_UI_IMPRESSION\x10\xef\x04\x12\'\n\"ATOM_HEALTH_CONNECT_UI_INTERACTION\x10\xf0\x04\x12,\n\'ATOM_HEALTH_CONNECT_APP_OPENED_REPORTED\x10\xf1\x04\x12+\n&ATOM_HOTWORD_EGRESS_SIZE_ATOM_REPORTED\x10\xf9\x05\x12 \n\x1b\x41TOM_IKE_SESSION_TERMINATED\x10\xa6\x05\x12.\n)ATOM_IKE_LIVENESS_CHECK_SESSION_VALIDATED\x10\xf8\x05\x12)\n$ATOM_NEGOTIATED_SECURITY_ASSOCIATION\x10\xb5\x06\x12\x1d\n\x18\x41TOM_KEYBOARD_CONFIGURED\x10\xaa\x05\x12)\n$ATOM_KEYBOARD_SYSTEMS_EVENT_REPORTED\x10\xab\x05\x12$\n\x1f\x41TOM_INPUTDEVICE_USAGE_REPORTED\x10\xae\x05\x12&\n!ATOM_INPUT_EVENT_LATENCY_REPORTED\x10\xa4\x07\x12\x18\n\x13\x41TOM_TOUCHPAD_USAGE\x10\xcfO\x12\"\n\x1d\x41TOM_KERNEL_OOM_KILL_OCCURRED\x10\xf2\x05\x12!\n\x1c\x41TOM_EMERGENCY_STATE_CHANGED\x10\xf9\x04\x12/\n*ATOM_CHRE_SIGNIFICANT_MOTION_STATE_CHANGED\x10\xe4\x06\x12\x36\n1ATOM_POPULATION_DENSITY_PROVIDER_LOADING_REPORTED\x10\xea\x07\x12\x37\n2ATOM_DENSITY_BASED_COARSE_LOCATIONS_USAGE_REPORTED\x10\xeb\x07\x12@\n;ATOM_DENSITY_BASED_COARSE_LOCATIONS_PROVIDER_QUERY_REPORTED\x10\xec\x07\x12/\n*ATOM_MEDIA_CODEC_RECLAIM_REQUEST_COMPLETED\x10\xd8\x04\x12\x1d\n\x18\x41TOM_MEDIA_CODEC_STARTED\x10\x81\x05\x12\x1d\n\x18\x41TOM_MEDIA_CODEC_STOPPED\x10\x82\x05\x12\x1e\n\x19\x41TOM_MEDIA_CODEC_RENDERED\x10\xac\x05\x12&\n!ATOM_MEDIA_EDITING_ENDED_REPORTED\x10\x9e\x06\x12\x13\n\x0e\x41TOM_MTE_STATE\x10\xc5O\x12/\n*ATOM_MICROXR_DEVICE_BOOT_COMPLETE_REPORTED\x10\x85\x07\x12(\n#ATOM_NFC_OBSERVE_MODE_STATE_CHANGED\x10\xd7\x06\x12\x1b\n\x16\x41TOM_NFC_FIELD_CHANGED\x10\xd8\x06\x12\x30\n+ATOM_NFC_POLLING_LOOP_NOTIFICATION_REPORTED\x10\xd9\x06\x12/\n*ATOM_NFC_PROPRIETARY_CAPABILITIES_REPORTED\x10\xda\x06\x12,\n\'ATOM_ONDEVICEPERSONALIZATION_API_CALLED\x10\xc7\x05\x12*\n%ATOM_COMPONENT_STATE_CHANGED_REPORTED\x10\xdf\x06\x12\x1b\n\x16\x41TOM_PDF_LOAD_REPORTED\x10\xdb\x06\x12 \n\x1b\x41TOM_PDF_API_USAGE_REPORTED\x10\xdc\x06\x12\x1d\n\x18\x41TOM_PDF_SEARCH_REPORTED\x10\xdd\x06\x12$\n\x1f\x41TOM_PRESSURE_STALL_INFORMATION\x10\xf5O\x12,\n\'ATOM_PERMISSION_RATIONALE_DIALOG_VIEWED\x10\x85\x05\x12\x35\n0ATOM_PERMISSION_RATIONALE_DIALOG_ACTION_REPORTED\x10\x86\x05\x12;\n6ATOM_APP_DATA_SHARING_UPDATES_NOTIFICATION_INTERACTION\x10\x87\x05\x12\x32\n-ATOM_APP_DATA_SHARING_UPDATES_FRAGMENT_VIEWED\x10\x88\x05\x12;\n6ATOM_APP_DATA_SHARING_UPDATES_FRAGMENT_ACTION_REPORTED\x10\x89\x05\x12\x36\n1ATOM_ENHANCED_CONFIRMATION_DIALOG_RESULT_REPORTED\x10\xbb\x06\x12\x33\n.ATOM_ENHANCED_CONFIRMATION_RESTRICTION_CLEARED\x10\xbc\x06\x12+\n&ATOM_PHOTOPICKER_SESSION_INFO_REPORTED\x10\xf6\x06\x12\'\n\"ATOM_PHOTOPICKER_API_INFO_REPORTED\x10\xf7\x06\x12%\n ATOM_PHOTOPICKER_UI_EVENT_LOGGED\x10\xf8\x06\x12\x30\n+ATOM_PHOTOPICKER_MEDIA_ITEM_STATUS_REPORTED\x10\xf9\x06\x12)\n$ATOM_PHOTOPICKER_PREVIEW_INFO_LOGGED\x10\xfa\x06\x12-\n(ATOM_PHOTOPICKER_MENU_INTERACTION_LOGGED\x10\xfb\x06\x12/\n*ATOM_PHOTOPICKER_BANNER_INTERACTION_LOGGED\x10\xfc\x06\x12/\n*ATOM_PHOTOPICKER_MEDIA_LIBRARY_INFO_LOGGED\x10\xfd\x06\x12&\n!ATOM_PHOTOPICKER_PAGE_INFO_LOGGED\x10\xfe\x06\x12\x33\n.ATOM_PHOTOPICKER_MEDIA_GRID_SYNC_INFO_REPORTED\x10\xff\x06\x12.\n)ATOM_PHOTOPICKER_ALBUM_SYNC_INFO_REPORTED\x10\x80\x07\x12*\n%ATOM_PHOTOPICKER_SEARCH_INFO_REPORTED\x10\x81\x07\x12\x31\n,ATOM_SEARCH_DATA_EXTRACTION_DETAILS_REPORTED\x10\x82\x07\x12,\n\'ATOM_EMBEDDED_PHOTOPICKER_INFO_REPORTED\x10\x83\x07\x12\x13\n\x0e\x41TOM_ATOM_9999\x10\x8fN\x12\x15\n\x0f\x41TOM_ATOM_99999\x10\x9f\x8d\x06\x12\x1d\n\x18\x41TOM_SCREEN_OFF_REPORTED\x10\x88\x06\x12*\n%ATOM_SCREEN_TIMEOUT_OVERRIDE_REPORTED\x10\xc4\x06\x12-\n(ATOM_SCREEN_INTERACTIVE_SESSION_REPORTED\x10\xc5\x06\x12\x1d\n\x18\x41TOM_SCREEN_DIM_REPORTED\x10\xe3\x06\x12\x33\n.ATOM_MEDIA_PROVIDER_DATABASE_ROLLBACK_REPORTED\x10\x90\x06\x12&\n!ATOM_BACKUP_SETUP_STATUS_REPORTED\x10\x91\x06\x12$\n\x1f\x41TOM_RANGING_SESSION_CONFIGURED\x10\xe1\x07\x12!\n\x1c\x41TOM_RANGING_SESSION_STARTED\x10\xe2\x07\x12 \n\x1b\x41TOM_RANGING_SESSION_CLOSED\x10\xe3\x07\x12$\n\x1f\x41TOM_RANGING_TECHNOLOGY_STARTED\x10\xe4\x07\x12$\n\x1f\x41TOM_RANGING_TECHNOLOGY_STOPPED\x10\xe5\x07\x12\x19\n\x14\x41TOM_RKPD_POOL_STATS\x10\x98\x05\x12\x1f\n\x1a\x41TOM_RKPD_CLIENT_OPERATION\x10\x99\x05\x12\x1c\n\x17\x41TOM_SANDBOX_API_CALLED\x10\xe8\x03\x12)\n$ATOM_SANDBOX_ACTIVITY_EVENT_OCCURRED\x10\xdf\x05\x12\x32\n-ATOM_SDK_SANDBOX_RESTRICTED_ACCESS_IN_SESSION\x10\x9c\x06\x12\x1d\n\x18\x41TOM_SANDBOX_SDK_STORAGE\x10\xafO\x12\x1b\n\x16\x41TOM_SELINUX_AUDIT_LOG\x10\x9f\x06\x12\x1f\n\x1a\x41TOM_SETTINGS_SPA_REPORTED\x10\xee\x04\x12&\n!ATOM_TEST_EXTENSION_ATOM_REPORTED\x10\x94\x05\x12\'\n\"ATOM_TEST_RESTRICTED_ATOM_REPORTED\x10\xa0\x05\x12$\n\x1f\x41TOM_STATS_SOCKET_LOSS_REPORTED\x10\xf0\x05\x12&\n!ATOM_LOCKSCREEN_SHORTCUT_SELECTED\x10\xe3\x04\x12\'\n\"ATOM_LOCKSCREEN_SHORTCUT_TRIGGERED\x10\xe4\x04\x12&\n!ATOM_LAUNCHER_IMPRESSION_EVENT_V2\x10\xcc\x05\x12(\n#ATOM_DISPLAY_SWITCH_LATENCY_TRACKED\x10\xf1\x05\x12\'\n\"ATOM_NOTIFICATION_LISTENER_SERVICE\x10\xbd\x06\x12!\n\x1c\x41TOM_NAV_HANDLE_TOUCH_POINTS\x10\xe5\x06\x12,\n\'ATOM_COMMUNAL_HUB_WIDGET_EVENT_REPORTED\x10\x8c\x07\x12\x1f\n\x1a\x41TOM_COMMUNAL_HUB_SNAPSHOT\x10\xf2O\x12!\n\x1c\x41TOM_EMERGENCY_NUMBER_DIALED\x10\xfd\x04\x12\x14\n\x0f\x41TOM_CALL_STATS\x10\xedO\x12 \n\x1b\x41TOM_CALL_AUDIO_ROUTE_STATS\x10\xeeO\x12\x1b\n\x16\x41TOM_TELECOM_API_STATS\x10\xefO\x12\x1d\n\x18\x41TOM_TELECOM_ERROR_STATS\x10\xf0O\x12,\n\'ATOM_CELLULAR_RADIO_POWER_STATE_CHANGED\x10\xc9\x05\x12 \n\x1b\x41TOM_EMERGENCY_NUMBERS_INFO\x10\xc4O\x12!\n\x1c\x41TOM_DATA_NETWORK_VALIDATION\x10\xdfO\x12 \n\x1b\x41TOM_DATA_RAT_STATE_CHANGED\x10\xd6\x06\x12#\n\x1e\x41TOM_CONNECTED_CHANNEL_CHANGED\x10\xf2\x06\x12=\n8ATOM_IWLAN_UNDERLYING_NETWORK_VALIDATION_RESULT_REPORTED\x10\x9b\x07\x12$\n\x1f\x41TOM_QUALIFIED_RAT_LIST_CHANGED\x10\xfa\x04\x12!\n\x1c\x41TOM_QNS_IMS_CALL_DROP_STATS\x10\xfb\x04\x12*\n%ATOM_QNS_FALLBACK_RESTRICTION_CHANGED\x10\xfc\x04\x12*\n%ATOM_QNS_RAT_PREFERENCE_MISMATCH_INFO\x10\xc1O\x12\"\n\x1d\x41TOM_QNS_HANDOVER_TIME_MILLIS\x10\xc2O\x12\x1f\n\x1a\x41TOM_QNS_HANDOVER_PINGPONG\x10\xc3O\x12\x1e\n\x19\x41TOM_SATELLITE_CONTROLLER\x10\xc6O\x12\x1b\n\x16\x41TOM_SATELLITE_SESSION\x10\xc7O\x12%\n ATOM_SATELLITE_INCOMING_DATAGRAM\x10\xc8O\x12%\n ATOM_SATELLITE_OUTGOING_DATAGRAM\x10\xc9O\x12\x1d\n\x18\x41TOM_SATELLITE_PROVISION\x10\xcaO\x12+\n&ATOM_SATELLITE_SOS_MESSAGE_RECOMMENDER\x10\xcbO\x12+\n&ATOM_CARRIER_ROAMING_SATELLITE_SESSION\x10\xe3O\x12\x34\n/ATOM_CARRIER_ROAMING_SATELLITE_CONTROLLER_STATS\x10\xe4O\x12&\n!ATOM_CONTROLLER_STATS_PER_PACKAGE\x10\xe5O\x12\x1f\n\x1a\x41TOM_SATELLITE_ENTITLEMENT\x10\xe6O\x12\"\n\x1d\x41TOM_SATELLITE_CONFIG_UPDATER\x10\xe7O\x12%\n ATOM_SATELLITE_ACCESS_CONTROLLER\x10\xebO\x12\'\n\"ATOM_CELLULAR_IDENTIFIER_DISCLOSED\x10\xa0\x06\x12/\n*ATOM_THREADNETWORK_TELEMETRY_DATA_REPORTED\x10\xe2\x05\x12+\n&ATOM_THREADNETWORK_TOPO_ENTRY_REPEATED\x10\xe3\x05\x12,\n\'ATOM_THREADNETWORK_DEVICE_INFO_REPORTED\x10\xe4\x05\x12&\n!ATOM_BOOT_INTEGRITY_INFO_REPORTED\x10\x87\x06\x12%\n ATOM_TV_LOW_POWER_STANDBY_POLICY\x10\xa7\x05\x12!\n\x1c\x41TOM_EXTERNAL_TV_INPUT_EVENT\x10\xcd\x05\x12(\n#ATOM_TEST_UPROBESTATS_ATOM_REPORTED\x10\x93\x07\x12\x1b\n\x16\x41TOM_UWB_ACTIVITY_INFO\x10\xccO\x12\x1a\n\x15\x41TOM_MEDIATOR_UPDATED\x10\xd1\x05\x12+\n&ATOM_SYSPROXY_BLUETOOTH_BYTES_TRANSFER\x10\xd4O\x12%\n ATOM_SYSPROXY_CONNECTION_UPDATED\x10\x92\x06\x12)\n$ATOM_WEAR_COMPANION_CONNECTION_STATE\x10\x99\x07\x12\x1f\n\x1a\x41TOM_MEDIA_ACTION_REPORTED\x10\xe0\x04\x12!\n\x1c\x41TOM_MEDIA_CONTROLS_LAUNCHED\x10\xe1\x04\x12%\n ATOM_MEDIA_SESSION_STATE_CHANGED\x10\xa5\x05\x12<\n7ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_DEVICE_SCAN_API_LATENCY\x10\xf5\x05\x12<\n7ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_SASS_DEVICE_UNAVAILABLE\x10\xf6\x05\x12\x39\n4ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FASTPAIR_API_TIMEOUT\x10\xf7\x05\x12!\n\x1c\x41TOM_WEAR_MODE_STATE_CHANGED\x10\xcb\x05\x12\x1e\n\x19\x41TOM_RENDERER_INITIALIZED\x10\xe0\x05\x12!\n\x1c\x41TOM_SCHEMA_VERSION_RECEIVED\x10\xe1\x05\x12\x1a\n\x15\x41TOM_LAYOUT_INSPECTED\x10\xe5\x05\x12%\n ATOM_LAYOUT_EXPRESSION_INSPECTED\x10\xe6\x05\x12%\n ATOM_LAYOUT_ANIMATIONS_INSPECTED\x10\xe7\x05\x12\'\n\"ATOM_MATERIAL_COMPONENTS_INSPECTED\x10\xe8\x05\x12\x18\n\x13\x41TOM_TILE_REQUESTED\x10\xe9\x05\x12!\n\x1c\x41TOM_STATE_RESPONSE_RECEIVED\x10\xea\x05\x12 \n\x1b\x41TOM_TILE_RESPONSE_RECEIVED\x10\xeb\x05\x12\x1c\n\x17\x41TOM_INFLATION_FINISHED\x10\xec\x05\x12\x1a\n\x15\x41TOM_INFLATION_FAILED\x10\xed\x05\x12-\n(ATOM_IGNORED_INFLATION_FAILURES_REPORTED\x10\xee\x05\x12\x1b\n\x16\x41TOM_DRAWABLE_RENDERED\x10\xef\x05\x12\"\n\x1d\x41TOM_WEAR_TIME_SYNC_REQUESTED\x10\x8f\x07\x12\"\n\x1d\x41TOM_WEAR_TIME_UPDATE_STARTED\x10\x90\x07\x12*\n%ATOM_WEAR_TIME_SYNC_ATTEMPT_COMPLETED\x10\x91\x07\x12\x1b\n\x16\x41TOM_WEAR_TIME_CHANGED\x10\x92\x07\x12.\n)ATOM_WEAR_ADAPTIVE_SUSPEND_STATS_REPORTED\x10\xeb\x04\x12?\n:ATOM_WEAR_POWER_ANOMALY_SERVICE_OPERATIONAL_STATS_REPORTED\x10\xec\x04\x12\x39\n4ATOM_WEAR_POWER_ANOMALY_SERVICE_EVENT_STATS_REPORTED\x10\xed\x04\x12\x1e\n\x19\x41TOM_WS_WEAR_TIME_SESSION\x10\xe2\x04\x12*\n%ATOM_WS_INCOMING_CALL_ACTION_REPORTED\x10\xf2\x04\x12(\n#ATOM_WS_CALL_DISCONNECTION_REPORTED\x10\xf3\x04\x12#\n\x1e\x41TOM_WS_CALL_DURATION_REPORTED\x10\xf4\x04\x12\x32\n-ATOM_WS_CALL_USER_EXPERIENCE_LATENCY_REPORTED\x10\xf5\x04\x12&\n!ATOM_WS_CALL_INTERACTION_REPORTED\x10\xf6\x04\x12\"\n\x1d\x41TOM_WS_ON_BODY_STATE_CHANGED\x10\x93\x06\x12\x39\n4ATOM_WS_WATCH_FACE_RESTRICTED_COMPLICATIONS_IMPACTED\x10\xa2\x06\x12@\n;ATOM_WS_WATCH_FACE_DEFAULT_RESTRICTED_COMPLICATIONS_REMOVED\x10\xa3\x06\x12?\n:ATOM_WS_COMPLICATIONS_IMPACTED_NOTIFICATION_EVENT_REPORTED\x10\xa4\x06\x12(\n#ATOM_WS_REMOTE_EVENT_USAGE_REPORTED\x10\x98\x07\x12 \n\x1b\x41TOM_WS_BUGREPORT_REQUESTED\x10\xa8\x07\x12 \n\x1b\x41TOM_WS_BUGREPORT_TRIGGERED\x10\xa9\x07\x12\x1f\n\x1a\x41TOM_WS_BUGREPORT_FINISHED\x10\xaa\x07\x12&\n!ATOM_WS_BUGREPORT_RESULT_RECEIVED\x10\xab\x07\x12%\n ATOM_WS_STANDALONE_MODE_SNAPSHOT\x10\xd5O\x12)\n$ATOM_WS_FAVORITE_WATCH_FACE_SNAPSHOT\x10\xdeO\x12/\n*ATOM_WS_PHOTOS_WATCH_FACE_FEATURE_SNAPSHOT\x10\xf1O\x12.\n)ATOM_WS_WATCH_FACE_CUSTOMIZATION_SNAPSHOT\x10\xf3O\x12 \n\x1b\x41TOM_WEAR_POWER_MENU_OPENED\x10\xdb\x05\x12\x1f\n\x1a\x41TOM_WEAR_ASSISTANT_OPENED\x10\xf3\x05\x12%\n ATOM_FIRST_OVERLAY_STATE_CHANGED\x10\x95\x07\x12!\n\x1c\x41TOM_WIFI_AWARE_NDP_REPORTED\x10\xfe\x04\x12$\n\x1f\x41TOM_WIFI_AWARE_ATTACH_REPORTED\x10\xff\x04\x12&\n!ATOM_WIFI_SELF_RECOVERY_TRIGGERED\x10\x95\x05\x12\x19\n\x14\x41TOM_SOFT_AP_STARTED\x10\xa8\x05\x12\x19\n\x14\x41TOM_SOFT_AP_STOPPED\x10\xa9\x05\x12\x1c\n\x17\x41TOM_WIFI_LOCK_RELEASED\x10\xaf\x05\x12\x1f\n\x1a\x41TOM_WIFI_LOCK_DEACTIVATED\x10\xb0\x05\x12\x1b\n\x16\x41TOM_WIFI_CONFIG_SAVED\x10\xb1\x05\x12+\n&ATOM_WIFI_AWARE_RESOURCE_USING_CHANGED\x10\xb2\x05\x12#\n\x1e\x41TOM_WIFI_AWARE_HAL_API_CALLED\x10\xb3\x05\x12*\n%ATOM_WIFI_LOCAL_ONLY_REQUEST_RECEIVED\x10\xb4\x05\x12\x30\n+ATOM_WIFI_LOCAL_ONLY_REQUEST_SCAN_TRIGGERED\x10\xb5\x05\x12#\n\x1e\x41TOM_WIFI_THREAD_TASK_EXECUTED\x10\xb6\x05\x12\x1c\n\x17\x41TOM_WIFI_STATE_CHANGED\x10\xbc\x05\x12\x1a\n\x15\x41TOM_PNO_SCAN_STARTED\x10\xcf\x05\x12\x1a\n\x15\x41TOM_PNO_SCAN_STOPPED\x10\xd0\x05\x12#\n\x1e\x41TOM_WIFI_IS_UNUSABLE_REPORTED\x10\xd2\x05\x12\'\n\"ATOM_WIFI_AP_CAPABILITIES_REPORTED\x10\xd3\x05\x12\x1f\n\x1a\x41TOM_SOFT_AP_STATE_CHANGED\x10\xa5\x06\x12+\n&ATOM_SCORER_PREDICTION_RESULT_REPORTED\x10\xf4\x06\x12!\n\x1c\x41TOM_WIFI_AWARE_CAPABILITIES\x10\xceO\x12\x1a\n\x15\x41TOM_WIFI_MODULE_INFO\x10\xd1O\x12\x1b\n\x16\x41TOM_WIFI_SETTING_INFO\x10\xd2O\x12#\n\x1e\x41TOM_WIFI_COMPLEX_SETTING_INFO\x10\xd3O\x12&\n!ATOM_WIFI_CONFIGURED_NETWORK_INFO\x10\xd6O*\xa5\x07\n\x0fMeminfoCounters\x12\x17\n\x13MEMINFO_UNSPECIFIED\x10\x00\x12\x15\n\x11MEMINFO_MEM_TOTAL\x10\x01\x12\x14\n\x10MEMINFO_MEM_FREE\x10\x02\x12\x19\n\x15MEMINFO_MEM_AVAILABLE\x10\x03\x12\x13\n\x0fMEMINFO_BUFFERS\x10\x04\x12\x12\n\x0eMEMINFO_CACHED\x10\x05\x12\x17\n\x13MEMINFO_SWAP_CACHED\x10\x06\x12\x12\n\x0eMEMINFO_ACTIVE\x10\x07\x12\x14\n\x10MEMINFO_INACTIVE\x10\x08\x12\x17\n\x13MEMINFO_ACTIVE_ANON\x10\t\x12\x19\n\x15MEMINFO_INACTIVE_ANON\x10\n\x12\x17\n\x13MEMINFO_ACTIVE_FILE\x10\x0b\x12\x19\n\x15MEMINFO_INACTIVE_FILE\x10\x0c\x12\x17\n\x13MEMINFO_UNEVICTABLE\x10\r\x12\x13\n\x0fMEMINFO_MLOCKED\x10\x0e\x12\x16\n\x12MEMINFO_SWAP_TOTAL\x10\x0f\x12\x15\n\x11MEMINFO_SWAP_FREE\x10\x10\x12\x11\n\rMEMINFO_DIRTY\x10\x11\x12\x15\n\x11MEMINFO_WRITEBACK\x10\x12\x12\x16\n\x12MEMINFO_ANON_PAGES\x10\x13\x12\x12\n\x0eMEMINFO_MAPPED\x10\x14\x12\x11\n\rMEMINFO_SHMEM\x10\x15\x12\x10\n\x0cMEMINFO_SLAB\x10\x16\x12\x1c\n\x18MEMINFO_SLAB_RECLAIMABLE\x10\x17\x12\x1e\n\x1aMEMINFO_SLAB_UNRECLAIMABLE\x10\x18\x12\x18\n\x14MEMINFO_KERNEL_STACK\x10\x19\x12\x17\n\x13MEMINFO_PAGE_TABLES\x10\x1a\x12\x18\n\x14MEMINFO_COMMIT_LIMIT\x10\x1b\x12\x17\n\x13MEMINFO_COMMITED_AS\x10\x1c\x12\x19\n\x15MEMINFO_VMALLOC_TOTAL\x10\x1d\x12\x18\n\x14MEMINFO_VMALLOC_USED\x10\x1e\x12\x19\n\x15MEMINFO_VMALLOC_CHUNK\x10\x1f\x12\x15\n\x11MEMINFO_CMA_TOTAL\x10 \x12\x14\n\x10MEMINFO_CMA_FREE\x10!\x12\x0f\n\x0bMEMINFO_GPU\x10\"\x12\x10\n\x0cMEMINFO_ZRAM\x10#\x12\x10\n\x0cMEMINFO_MISC\x10$\x12\x14\n\x10MEMINFO_ION_HEAP\x10%\x12\x19\n\x15MEMINFO_ION_HEAP_POOL\x10&*\x81,\n\x0eVmstatCounters\x12\x16\n\x12VMSTAT_UNSPECIFIED\x10\x00\x12\x18\n\x14VMSTAT_NR_FREE_PAGES\x10\x01\x12\x19\n\x15VMSTAT_NR_ALLOC_BATCH\x10\x02\x12\x1b\n\x17VMSTAT_NR_INACTIVE_ANON\x10\x03\x12\x19\n\x15VMSTAT_NR_ACTIVE_ANON\x10\x04\x12\x1b\n\x17VMSTAT_NR_INACTIVE_FILE\x10\x05\x12\x19\n\x15VMSTAT_NR_ACTIVE_FILE\x10\x06\x12\x19\n\x15VMSTAT_NR_UNEVICTABLE\x10\x07\x12\x13\n\x0fVMSTAT_NR_MLOCK\x10\x08\x12\x18\n\x14VMSTAT_NR_ANON_PAGES\x10\t\x12\x14\n\x10VMSTAT_NR_MAPPED\x10\n\x12\x18\n\x14VMSTAT_NR_FILE_PAGES\x10\x0b\x12\x13\n\x0fVMSTAT_NR_DIRTY\x10\x0c\x12\x17\n\x13VMSTAT_NR_WRITEBACK\x10\r\x12\x1e\n\x1aVMSTAT_NR_SLAB_RECLAIMABLE\x10\x0e\x12 \n\x1cVMSTAT_NR_SLAB_UNRECLAIMABLE\x10\x0f\x12\x1e\n\x1aVMSTAT_NR_PAGE_TABLE_PAGES\x10\x10\x12\x1a\n\x16VMSTAT_NR_KERNEL_STACK\x10\x11\x12\x16\n\x12VMSTAT_NR_OVERHEAD\x10\x12\x12\x16\n\x12VMSTAT_NR_UNSTABLE\x10\x13\x12\x14\n\x10VMSTAT_NR_BOUNCE\x10\x14\x12\x1a\n\x16VMSTAT_NR_VMSCAN_WRITE\x10\x15\x12&\n\"VMSTAT_NR_VMSCAN_IMMEDIATE_RECLAIM\x10\x16\x12\x1c\n\x18VMSTAT_NR_WRITEBACK_TEMP\x10\x17\x12\x1b\n\x17VMSTAT_NR_ISOLATED_ANON\x10\x18\x12\x1b\n\x17VMSTAT_NR_ISOLATED_FILE\x10\x19\x12\x13\n\x0fVMSTAT_NR_SHMEM\x10\x1a\x12\x15\n\x11VMSTAT_NR_DIRTIED\x10\x1b\x12\x15\n\x11VMSTAT_NR_WRITTEN\x10\x1c\x12\x1b\n\x17VMSTAT_NR_PAGES_SCANNED\x10\x1d\x12\x1d\n\x19VMSTAT_WORKINGSET_REFAULT\x10\x1e\x12\x1e\n\x1aVMSTAT_WORKINGSET_ACTIVATE\x10\x1f\x12!\n\x1dVMSTAT_WORKINGSET_NODERECLAIM\x10 \x12(\n$VMSTAT_NR_ANON_TRANSPARENT_HUGEPAGES\x10!\x12\x16\n\x12VMSTAT_NR_FREE_CMA\x10\"\x12\x17\n\x13VMSTAT_NR_SWAPCACHE\x10#\x12\x1d\n\x19VMSTAT_NR_DIRTY_THRESHOLD\x10$\x12(\n$VMSTAT_NR_DIRTY_BACKGROUND_THRESHOLD\x10%\x12\x11\n\rVMSTAT_PGPGIN\x10&\x12\x12\n\x0eVMSTAT_PGPGOUT\x10\'\x12\x17\n\x13VMSTAT_PGPGOUTCLEAN\x10(\x12\x11\n\rVMSTAT_PSWPIN\x10)\x12\x12\n\x0eVMSTAT_PSWPOUT\x10*\x12\x16\n\x12VMSTAT_PGALLOC_DMA\x10+\x12\x19\n\x15VMSTAT_PGALLOC_NORMAL\x10,\x12\x1a\n\x16VMSTAT_PGALLOC_MOVABLE\x10-\x12\x11\n\rVMSTAT_PGFREE\x10.\x12\x15\n\x11VMSTAT_PGACTIVATE\x10/\x12\x17\n\x13VMSTAT_PGDEACTIVATE\x10\x30\x12\x12\n\x0eVMSTAT_PGFAULT\x10\x31\x12\x15\n\x11VMSTAT_PGMAJFAULT\x10\x32\x12\x17\n\x13VMSTAT_PGREFILL_DMA\x10\x33\x12\x1a\n\x16VMSTAT_PGREFILL_NORMAL\x10\x34\x12\x1b\n\x17VMSTAT_PGREFILL_MOVABLE\x10\x35\x12\x1d\n\x19VMSTAT_PGSTEAL_KSWAPD_DMA\x10\x36\x12 \n\x1cVMSTAT_PGSTEAL_KSWAPD_NORMAL\x10\x37\x12!\n\x1dVMSTAT_PGSTEAL_KSWAPD_MOVABLE\x10\x38\x12\x1d\n\x19VMSTAT_PGSTEAL_DIRECT_DMA\x10\x39\x12 \n\x1cVMSTAT_PGSTEAL_DIRECT_NORMAL\x10:\x12!\n\x1dVMSTAT_PGSTEAL_DIRECT_MOVABLE\x10;\x12\x1c\n\x18VMSTAT_PGSCAN_KSWAPD_DMA\x10<\x12\x1f\n\x1bVMSTAT_PGSCAN_KSWAPD_NORMAL\x10=\x12 \n\x1cVMSTAT_PGSCAN_KSWAPD_MOVABLE\x10>\x12\x1c\n\x18VMSTAT_PGSCAN_DIRECT_DMA\x10?\x12\x1f\n\x1bVMSTAT_PGSCAN_DIRECT_NORMAL\x10@\x12 \n\x1cVMSTAT_PGSCAN_DIRECT_MOVABLE\x10\x41\x12!\n\x1dVMSTAT_PGSCAN_DIRECT_THROTTLE\x10\x42\x12\x17\n\x13VMSTAT_PGINODESTEAL\x10\x43\x12\x18\n\x14VMSTAT_SLABS_SCANNED\x10\x44\x12\x1c\n\x18VMSTAT_KSWAPD_INODESTEAL\x10\x45\x12\'\n#VMSTAT_KSWAPD_LOW_WMARK_HIT_QUICKLY\x10\x46\x12(\n$VMSTAT_KSWAPD_HIGH_WMARK_HIT_QUICKLY\x10G\x12\x15\n\x11VMSTAT_PAGEOUTRUN\x10H\x12\x15\n\x11VMSTAT_ALLOCSTALL\x10I\x12\x14\n\x10VMSTAT_PGROTATED\x10J\x12\x19\n\x15VMSTAT_DROP_PAGECACHE\x10K\x12\x14\n\x10VMSTAT_DROP_SLAB\x10L\x12\x1c\n\x18VMSTAT_PGMIGRATE_SUCCESS\x10M\x12\x19\n\x15VMSTAT_PGMIGRATE_FAIL\x10N\x12\"\n\x1eVMSTAT_COMPACT_MIGRATE_SCANNED\x10O\x12\x1f\n\x1bVMSTAT_COMPACT_FREE_SCANNED\x10P\x12\x1b\n\x17VMSTAT_COMPACT_ISOLATED\x10Q\x12\x18\n\x14VMSTAT_COMPACT_STALL\x10R\x12\x17\n\x13VMSTAT_COMPACT_FAIL\x10S\x12\x1a\n\x16VMSTAT_COMPACT_SUCCESS\x10T\x12\x1e\n\x1aVMSTAT_COMPACT_DAEMON_WAKE\x10U\x12!\n\x1dVMSTAT_UNEVICTABLE_PGS_CULLED\x10V\x12\"\n\x1eVMSTAT_UNEVICTABLE_PGS_SCANNED\x10W\x12\"\n\x1eVMSTAT_UNEVICTABLE_PGS_RESCUED\x10X\x12\"\n\x1eVMSTAT_UNEVICTABLE_PGS_MLOCKED\x10Y\x12$\n VMSTAT_UNEVICTABLE_PGS_MUNLOCKED\x10Z\x12\"\n\x1eVMSTAT_UNEVICTABLE_PGS_CLEARED\x10[\x12#\n\x1fVMSTAT_UNEVICTABLE_PGS_STRANDED\x10\\\x12\x15\n\x11VMSTAT_NR_ZSPAGES\x10]\x12\x16\n\x12VMSTAT_NR_ION_HEAP\x10^\x12\x16\n\x12VMSTAT_NR_GPU_HEAP\x10_\x12\x19\n\x15VMSTAT_ALLOCSTALL_DMA\x10`\x12\x1d\n\x19VMSTAT_ALLOCSTALL_MOVABLE\x10\x61\x12\x1c\n\x18VMSTAT_ALLOCSTALL_NORMAL\x10\x62\x12&\n\"VMSTAT_COMPACT_DAEMON_FREE_SCANNED\x10\x63\x12)\n%VMSTAT_COMPACT_DAEMON_MIGRATE_SCANNED\x10\x64\x12\x15\n\x11VMSTAT_NR_FASTRPC\x10\x65\x12$\n VMSTAT_NR_INDIRECTLY_RECLAIMABLE\x10\x66\x12\x1b\n\x17VMSTAT_NR_ION_HEAP_POOL\x10g\x12%\n!VMSTAT_NR_KERNEL_MISC_RECLAIMABLE\x10h\x12%\n!VMSTAT_NR_SHADOW_CALL_STACK_BYTES\x10i\x12\x1d\n\x19VMSTAT_NR_SHMEM_HUGEPAGES\x10j\x12\x1d\n\x19VMSTAT_NR_SHMEM_PMDMAPPED\x10k\x12!\n\x1dVMSTAT_NR_UNRECLAIMABLE_PAGES\x10l\x12\x1e\n\x1aVMSTAT_NR_ZONE_ACTIVE_ANON\x10m\x12\x1e\n\x1aVMSTAT_NR_ZONE_ACTIVE_FILE\x10n\x12 \n\x1cVMSTAT_NR_ZONE_INACTIVE_ANON\x10o\x12 \n\x1cVMSTAT_NR_ZONE_INACTIVE_FILE\x10p\x12\x1e\n\x1aVMSTAT_NR_ZONE_UNEVICTABLE\x10q\x12 \n\x1cVMSTAT_NR_ZONE_WRITE_PENDING\x10r\x12\x13\n\x0fVMSTAT_OOM_KILL\x10s\x12\x15\n\x11VMSTAT_PGLAZYFREE\x10t\x12\x16\n\x12VMSTAT_PGLAZYFREED\x10u\x12\x13\n\x0fVMSTAT_PGREFILL\x10v\x12\x18\n\x14VMSTAT_PGSCAN_DIRECT\x10w\x12\x18\n\x14VMSTAT_PGSCAN_KSWAPD\x10x\x12\x15\n\x11VMSTAT_PGSKIP_DMA\x10y\x12\x19\n\x15VMSTAT_PGSKIP_MOVABLE\x10z\x12\x18\n\x14VMSTAT_PGSKIP_NORMAL\x10{\x12\x19\n\x15VMSTAT_PGSTEAL_DIRECT\x10|\x12\x19\n\x15VMSTAT_PGSTEAL_KSWAPD\x10}\x12\x12\n\x0eVMSTAT_SWAP_RA\x10~\x12\x16\n\x12VMSTAT_SWAP_RA_HIT\x10\x7f\x12\x1e\n\x19VMSTAT_WORKINGSET_RESTORE\x10\x80\x01\x12\x1d\n\x18VMSTAT_ALLOCSTALL_DEVICE\x10\x81\x01\x12\x1c\n\x17VMSTAT_ALLOCSTALL_DMA32\x10\x82\x01\x12\x1b\n\x16VMSTAT_BALLOON_DEFLATE\x10\x83\x01\x12\x1b\n\x16VMSTAT_BALLOON_INFLATE\x10\x84\x01\x12\x1b\n\x16VMSTAT_BALLOON_MIGRATE\x10\x85\x01\x12\x1a\n\x15VMSTAT_CMA_ALLOC_FAIL\x10\x86\x01\x12\x1d\n\x18VMSTAT_CMA_ALLOC_SUCCESS\x10\x87\x01\x12\x1d\n\x18VMSTAT_NR_FILE_HUGEPAGES\x10\x88\x01\x12\x1d\n\x18VMSTAT_NR_FILE_PMDMAPPED\x10\x89\x01\x12 \n\x1bVMSTAT_NR_FOLL_PIN_ACQUIRED\x10\x8a\x01\x12 \n\x1bVMSTAT_NR_FOLL_PIN_RELEASED\x10\x8b\x01\x12#\n\x1eVMSTAT_NR_SEC_PAGE_TABLE_PAGES\x10\x8c\x01\x12 \n\x1bVMSTAT_NR_SHADOW_CALL_STACK\x10\x8d\x01\x12\x19\n\x14VMSTAT_NR_SWAPCACHED\x10\x8e\x01\x12 \n\x1bVMSTAT_NR_THROTTLED_WRITTEN\x10\x8f\x01\x12\x1a\n\x15VMSTAT_PGALLOC_DEVICE\x10\x90\x01\x12\x19\n\x14VMSTAT_PGALLOC_DMA32\x10\x91\x01\x12\x1b\n\x16VMSTAT_PGDEMOTE_DIRECT\x10\x92\x01\x12\x1b\n\x16VMSTAT_PGDEMOTE_KSWAPD\x10\x93\x01\x12\x13\n\x0eVMSTAT_PGREUSE\x10\x94\x01\x12\x17\n\x12VMSTAT_PGSCAN_ANON\x10\x95\x01\x12\x17\n\x12VMSTAT_PGSCAN_FILE\x10\x96\x01\x12\x19\n\x14VMSTAT_PGSKIP_DEVICE\x10\x97\x01\x12\x18\n\x13VMSTAT_PGSKIP_DMA32\x10\x98\x01\x12\x18\n\x13VMSTAT_PGSTEAL_ANON\x10\x99\x01\x12\x18\n\x13VMSTAT_PGSTEAL_FILE\x10\x9a\x01\x12\x1e\n\x19VMSTAT_THP_COLLAPSE_ALLOC\x10\x9b\x01\x12%\n VMSTAT_THP_COLLAPSE_ALLOC_FAILED\x10\x9c\x01\x12#\n\x1eVMSTAT_THP_DEFERRED_SPLIT_PAGE\x10\x9d\x01\x12\x1b\n\x16VMSTAT_THP_FAULT_ALLOC\x10\x9e\x01\x12\x1e\n\x19VMSTAT_THP_FAULT_FALLBACK\x10\x9f\x01\x12%\n VMSTAT_THP_FAULT_FALLBACK_CHARGE\x10\xa0\x01\x12\x1a\n\x15VMSTAT_THP_FILE_ALLOC\x10\xa1\x01\x12\x1d\n\x18VMSTAT_THP_FILE_FALLBACK\x10\xa2\x01\x12$\n\x1fVMSTAT_THP_FILE_FALLBACK_CHARGE\x10\xa3\x01\x12\x1b\n\x16VMSTAT_THP_FILE_MAPPED\x10\xa4\x01\x12\x1e\n\x19VMSTAT_THP_MIGRATION_FAIL\x10\xa5\x01\x12\x1f\n\x1aVMSTAT_THP_MIGRATION_SPLIT\x10\xa6\x01\x12!\n\x1cVMSTAT_THP_MIGRATION_SUCCESS\x10\xa7\x01\x12$\n\x1fVMSTAT_THP_SCAN_EXCEED_NONE_PTE\x10\xa8\x01\x12%\n VMSTAT_THP_SCAN_EXCEED_SHARE_PTE\x10\xa9\x01\x12$\n\x1fVMSTAT_THP_SCAN_EXCEED_SWAP_PTE\x10\xaa\x01\x12\x1a\n\x15VMSTAT_THP_SPLIT_PAGE\x10\xab\x01\x12!\n\x1cVMSTAT_THP_SPLIT_PAGE_FAILED\x10\xac\x01\x12\x19\n\x14VMSTAT_THP_SPLIT_PMD\x10\xad\x01\x12\x16\n\x11VMSTAT_THP_SWPOUT\x10\xae\x01\x12\x1f\n\x1aVMSTAT_THP_SWPOUT_FALLBACK\x10\xaf\x01\x12\x1f\n\x1aVMSTAT_THP_ZERO_PAGE_ALLOC\x10\xb0\x01\x12&\n!VMSTAT_THP_ZERO_PAGE_ALLOC_FAILED\x10\xb1\x01\x12\x1a\n\x15VMSTAT_VMA_LOCK_ABORT\x10\xb2\x01\x12\x19\n\x14VMSTAT_VMA_LOCK_MISS\x10\xb3\x01\x12\x1a\n\x15VMSTAT_VMA_LOCK_RETRY\x10\xb4\x01\x12\x1c\n\x17VMSTAT_VMA_LOCK_SUCCESS\x10\xb5\x01\x12$\n\x1fVMSTAT_WORKINGSET_ACTIVATE_ANON\x10\xb6\x01\x12$\n\x1fVMSTAT_WORKINGSET_ACTIVATE_FILE\x10\xb7\x01\x12\x1c\n\x17VMSTAT_WORKINGSET_NODES\x10\xb8\x01\x12#\n\x1eVMSTAT_WORKINGSET_REFAULT_ANON\x10\xb9\x01\x12#\n\x1eVMSTAT_WORKINGSET_REFAULT_FILE\x10\xba\x01\x12#\n\x1eVMSTAT_WORKINGSET_RESTORE_ANON\x10\xbb\x01\x12#\n\x1eVMSTAT_WORKINGSET_RESTORE_FILE\x10\xbc\x01*\x94\x01\n\x18\x42luetoothTracePacketType\x12\x0b\n\x07HCI_CMD\x10\x01\x12\x0b\n\x07HCI_EVT\x10\x02\x12\x0e\n\nHCI_ACL_RX\x10\x03\x12\x0e\n\nHCI_ACL_TX\x10\x04\x12\x0e\n\nHCI_SCO_RX\x10\x05\x12\x0e\n\nHCI_SCO_TX\x10\x06\x12\x0e\n\nHCI_ISO_RX\x10\x07\x12\x0e\n\nHCI_ISO_TX\x10\x08*H\n\x10TrafficDirection\x12\x13\n\x0f\x44IR_UNSPECIFIED\x10\x00\x12\x0f\n\x0b\x44IR_INGRESS\x10\x01\x12\x0e\n\nDIR_EGRESS\x10\x02*6\n\x0eTrustedOverlay\x12\t\n\x05UNSET\x10\x00\x12\x0c\n\x08\x44ISABLED\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02*\xbf\x01\n\x12HwcCompositionType\x12\x18\n\x14HWC_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fHWC_TYPE_CLIENT\x10\x01\x12\x13\n\x0fHWC_TYPE_DEVICE\x10\x02\x12\x18\n\x14HWC_TYPE_SOLID_COLOR\x10\x03\x12\x13\n\x0fHWC_TYPE_CURSOR\x10\x04\x12\x15\n\x11HWC_TYPE_SIDEBAND\x10\x05\x12\x1f\n\x1bHWC_TYPE_DISPLAY_DECORATION\x10\x06*\xc8\x05\n\x11\x46traceParseStatus\x12\x1d\n\x19\x46TRACE_STATUS_UNSPECIFIED\x10\x00\x12\x14\n\x10\x46TRACE_STATUS_OK\x10\x01\x12\'\n#FTRACE_STATUS_UNEXPECTED_READ_ERROR\x10\x02\x12#\n\x1f\x46TRACE_STATUS_PARTIAL_PAGE_READ\x10\x03\x12)\n%FTRACE_STATUS_ABI_INVALID_PAGE_HEADER\x10\x04\x12(\n$FTRACE_STATUS_ABI_SHORT_EVENT_HEADER\x10\x05\x12\"\n\x1e\x46TRACE_STATUS_ABI_NULL_PADDING\x10\x06\x12*\n&FTRACE_STATUS_ABI_SHORT_PADDING_LENGTH\x10\x07\x12,\n(FTRACE_STATUS_ABI_INVALID_PADDING_LENGTH\x10\x08\x12\'\n#FTRACE_STATUS_ABI_SHORT_TIME_EXTEND\x10\t\x12&\n\"FTRACE_STATUS_ABI_SHORT_TIME_STAMP\x10\n\x12\'\n#FTRACE_STATUS_ABI_SHORT_DATA_LENGTH\x10\x0b\x12&\n\"FTRACE_STATUS_ABI_ZERO_DATA_LENGTH\x10\x0c\x12)\n%FTRACE_STATUS_ABI_INVALID_DATA_LENGTH\x10\r\x12$\n FTRACE_STATUS_ABI_SHORT_EVENT_ID\x10\x0e\x12\"\n\x1e\x46TRACE_STATUS_ABI_END_OVERFLOW\x10\x0f\x12%\n!FTRACE_STATUS_SHORT_COMPACT_EVENT\x10\x10\x12\x1f\n\x1b\x46TRACE_STATUS_INVALID_EVENT\x10\x11*\x91\x01\n\x0b\x46traceClock\x12\x1c\n\x18\x46TRACE_CLOCK_UNSPECIFIED\x10\x00\x12\x18\n\x14\x46TRACE_CLOCK_UNKNOWN\x10\x01\x12\x17\n\x13\x46TRACE_CLOCK_GLOBAL\x10\x02\x12\x16\n\x12\x46TRACE_CLOCK_LOCAL\x10\x03\x12\x19\n\x15\x46TRACE_CLOCK_MONO_RAW\x10\x04*\xb0\x05\n\x1f\x43hromeCompositorSchedulerAction\x12#\n\x1f\x43\x43_SCHEDULER_ACTION_UNSPECIFIED\x10\x00\x12\x1c\n\x18\x43\x43_SCHEDULER_ACTION_NONE\x10\x01\x12-\n)CC_SCHEDULER_ACTION_SEND_BEGIN_MAIN_FRAME\x10\x02\x12\x1e\n\x1a\x43\x43_SCHEDULER_ACTION_COMMIT\x10\x03\x12*\n&CC_SCHEDULER_ACTION_ACTIVATE_SYNC_TREE\x10\x04\x12(\n$CC_SCHEDULER_ACTION_DRAW_IF_POSSIBLE\x10\x05\x12#\n\x1f\x43\x43_SCHEDULER_ACTION_DRAW_FORCED\x10\x06\x12\"\n\x1e\x43\x43_SCHEDULER_ACTION_DRAW_ABORT\x10\x07\x12<\n8CC_SCHEDULER_ACTION_BEGIN_LAYER_TREE_FRAME_SINK_CREATION\x10\x08\x12%\n!CC_SCHEDULER_ACTION_PREPARE_TILES\x10\t\x12\x38\n4CC_SCHEDULER_ACTION_INVALIDATE_LAYER_TREE_FRAME_SINK\x10\n\x12\x36\n2CC_SCHEDULER_ACTION_PERFORM_IMPL_SIDE_INVALIDATION\x10\x0b\x12\x42\n>CC_SCHEDULER_ACTION_NOTIFY_BEGIN_MAIN_FRAME_NOT_EXPECTED_UNTIL\x10\x0c\x12\x41\n=CC_SCHEDULER_ACTION_NOTIFY_BEGIN_MAIN_FRAME_NOT_EXPECTED_SOON\x10\r*}\n\x0e\x43hromeRAILMode\x12\x12\n\x0eRAIL_MODE_NONE\x10\x00\x12\x16\n\x12RAIL_MODE_RESPONSE\x10\x01\x12\x17\n\x13RAIL_MODE_ANIMATION\x10\x02\x12\x12\n\x0eRAIL_MODE_IDLE\x10\x03\x12\x12\n\x0eRAIL_MODE_LOAD\x10\x04\x42+Z)github.com/google/perfetto/perfetto_proto')
 
 _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
 _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'protos.perfetto.trace.perfetto_trace_pb2', globals())
@@ -229,36 +229,36 @@
   _PROCESSTRACKNAMETRANSLATIONTABLE_RAWTODEOBFUSCATEDNAMEENTRY._serialized_options = b'8\001'
   _CHROMESTUDYTRANSLATIONTABLE_HASHTONAMEENTRY._options = None
   _CHROMESTUDYTRANSLATIONTABLE_HASHTONAMEENTRY._serialized_options = b'8\001'
-  _BUILTINCLOCK._serialized_start=220041
-  _BUILTINCLOCK._serialized_end=220356
-  _ANDROIDLOGID._serialized_start=220359
-  _ANDROIDLOGID._serialized_end=220501
-  _ANDROIDLOGPRIORITY._serialized_start=220504
-  _ANDROIDLOGPRIORITY._serialized_end=220659
-  _PROTOLOGLEVEL._serialized_start=220662
-  _PROTOLOGLEVEL._serialized_end=220861
-  _ATOMID._serialized_start=220865
-  _ATOMID._serialized_end=267032
-  _MEMINFOCOUNTERS._serialized_start=267035
-  _MEMINFOCOUNTERS._serialized_end=267968
-  _VMSTATCOUNTERS._serialized_start=267971
-  _VMSTATCOUNTERS._serialized_end=273604
-  _BLUETOOTHTRACEPACKETTYPE._serialized_start=273607
-  _BLUETOOTHTRACEPACKETTYPE._serialized_end=273755
-  _TRAFFICDIRECTION._serialized_start=273757
-  _TRAFFICDIRECTION._serialized_end=273829
-  _TRUSTEDOVERLAY._serialized_start=273831
-  _TRUSTEDOVERLAY._serialized_end=273885
-  _HWCCOMPOSITIONTYPE._serialized_start=273888
-  _HWCCOMPOSITIONTYPE._serialized_end=274079
-  _FTRACEPARSESTATUS._serialized_start=274082
-  _FTRACEPARSESTATUS._serialized_end=274794
-  _FTRACECLOCK._serialized_start=274797
-  _FTRACECLOCK._serialized_end=274942
-  _CHROMECOMPOSITORSCHEDULERACTION._serialized_start=274945
-  _CHROMECOMPOSITORSCHEDULERACTION._serialized_end=275633
-  _CHROMERAILMODE._serialized_start=275635
-  _CHROMERAILMODE._serialized_end=275760
+  _BUILTINCLOCK._serialized_start=220209
+  _BUILTINCLOCK._serialized_end=220524
+  _ANDROIDLOGID._serialized_start=220527
+  _ANDROIDLOGID._serialized_end=220669
+  _ANDROIDLOGPRIORITY._serialized_start=220672
+  _ANDROIDLOGPRIORITY._serialized_end=220827
+  _PROTOLOGLEVEL._serialized_start=220830
+  _PROTOLOGLEVEL._serialized_end=221029
+  _ATOMID._serialized_start=221033
+  _ATOMID._serialized_end=267200
+  _MEMINFOCOUNTERS._serialized_start=267203
+  _MEMINFOCOUNTERS._serialized_end=268136
+  _VMSTATCOUNTERS._serialized_start=268139
+  _VMSTATCOUNTERS._serialized_end=273772
+  _BLUETOOTHTRACEPACKETTYPE._serialized_start=273775
+  _BLUETOOTHTRACEPACKETTYPE._serialized_end=273923
+  _TRAFFICDIRECTION._serialized_start=273925
+  _TRAFFICDIRECTION._serialized_end=273997
+  _TRUSTEDOVERLAY._serialized_start=273999
+  _TRUSTEDOVERLAY._serialized_end=274053
+  _HWCCOMPOSITIONTYPE._serialized_start=274056
+  _HWCCOMPOSITIONTYPE._serialized_end=274247
+  _FTRACEPARSESTATUS._serialized_start=274250
+  _FTRACEPARSESTATUS._serialized_end=274962
+  _FTRACECLOCK._serialized_start=274965
+  _FTRACECLOCK._serialized_end=275110
+  _CHROMECOMPOSITORSCHEDULERACTION._serialized_start=275113
+  _CHROMECOMPOSITORSCHEDULERACTION._serialized_end=275801
+  _CHROMERAILMODE._serialized_start=275803
+  _CHROMERAILMODE._serialized_end=275928
   _FTRACEDESCRIPTOR._serialized_start=64
   _FTRACEDESCRIPTOR._serialized_end=212
   _FTRACEDESCRIPTOR_ATRACECATEGORY._serialized_start=161
@@ -824,1673 +824,1675 @@
   _FILEIOCREATEETWEVENT._serialized_start=58538
   _FILEIOCREATEETWEVENT._serialized_end=58702
   _FILEIODIRENUMETWEVENT._serialized_start=58705
-  _FILEIODIRENUMETWEVENT._serialized_end=58873
-  _FILEIOINFOETWEVENT._serialized_start=58876
-  _FILEIOINFOETWEVENT._serialized_end=59006
-  _FILEIOREADWRITEETWEVENT._serialized_start=59009
-  _FILEIOREADWRITEETWEVENT._serialized_end=59155
-  _FILEIOSIMPLEOPETWEVENT._serialized_start=59157
-  _FILEIOSIMPLEOPETWEVENT._serialized_end=59251
-  _FILEIOOPENDETWEVENT._serialized_start=59253
-  _FILEIOOPENDETWEVENT._serialized_end=59330
-  _ETWTRACEEVENT._serialized_start=59333
-  _ETWTRACEEVENT._serialized_end=59978
-  _ETWTRACEEVENTBUNDLE._serialized_start=59980
-  _ETWTRACEEVENTBUNDLE._serialized_end=60061
-  _EVDEVEVENT._serialized_start=60064
-  _EVDEVEVENT._serialized_end=60250
-  _EVDEVEVENT_INPUTEVENT._serialized_start=60160
-  _EVDEVEVENT_INPUTEVENT._serialized_end=60241
-  _FILEDESCRIPTORSET._serialized_start=60252
-  _FILEDESCRIPTORSET._serialized_end=60323
-  _FILEDESCRIPTORPROTO._serialized_start=60326
-  _FILEDESCRIPTORPROTO._serialized_end=60645
-  _DESCRIPTORPROTO._serialized_start=60648
-  _DESCRIPTORPROTO._serialized_end=61114
-  _DESCRIPTORPROTO_RESERVEDRANGE._serialized_start=61059
-  _DESCRIPTORPROTO_RESERVEDRANGE._serialized_end=61102
-  _UNINTERPRETEDOPTION._serialized_start=61117
-  _UNINTERPRETEDOPTION._serialized_end=61403
-  _UNINTERPRETEDOPTION_NAMEPART._serialized_start=61352
-  _UNINTERPRETEDOPTION_NAMEPART._serialized_end=61403
-  _FIELDOPTIONS._serialized_start=61405
-  _FIELDOPTIONS._serialized_end=61504
-  _FIELDDESCRIPTORPROTO._serialized_start=61507
-  _FIELDDESCRIPTORPROTO._serialized_end=62194
-  _FIELDDESCRIPTORPROTO_TYPE._serialized_start=61809
-  _FIELDDESCRIPTORPROTO_TYPE._serialized_end=62119
-  _FIELDDESCRIPTORPROTO_LABEL._serialized_start=62121
-  _FIELDDESCRIPTORPROTO_LABEL._serialized_end=62188
-  _ONEOFDESCRIPTORPROTO._serialized_start=62196
-  _ONEOFDESCRIPTORPROTO._serialized_end=62280
-  _ENUMDESCRIPTORPROTO._serialized_start=62283
-  _ENUMDESCRIPTORPROTO._serialized_end=62411
-  _ENUMVALUEDESCRIPTORPROTO._serialized_start=62413
-  _ENUMVALUEDESCRIPTORPROTO._serialized_end=62475
-  _ONEOFOPTIONS._serialized_start=62477
-  _ONEOFOPTIONS._serialized_end=62510
-  _EXTENSIONDESCRIPTOR._serialized_start=62512
-  _EXTENSIONDESCRIPTOR._serialized_end=62592
-  _INODEFILEMAP._serialized_start=62595
-  _INODEFILEMAP._serialized_end=62859
-  _INODEFILEMAP_ENTRY._serialized_start=62713
-  _INODEFILEMAP_ENTRY._serialized_end=62859
-  _INODEFILEMAP_ENTRY_TYPE._serialized_start=62815
-  _INODEFILEMAP_ENTRY_TYPE._serialized_end=62859
-  _ANDROIDFSDATAREADENDFTRACEEVENT._serialized_start=62861
-  _ANDROIDFSDATAREADENDFTRACEEVENT._serialized_end=62938
-  _ANDROIDFSDATAREADSTARTFTRACEEVENT._serialized_start=62941
-  _ANDROIDFSDATAREADSTARTFTRACEEVENT._serialized_end=63083
-  _ANDROIDFSDATAWRITEENDFTRACEEVENT._serialized_start=63085
-  _ANDROIDFSDATAWRITEENDFTRACEEVENT._serialized_end=63163
-  _ANDROIDFSDATAWRITESTARTFTRACEEVENT._serialized_start=63166
-  _ANDROIDFSDATAWRITESTARTFTRACEEVENT._serialized_end=63309
-  _ANDROIDFSFSYNCENDFTRACEEVENT._serialized_start=63311
-  _ANDROIDFSFSYNCENDFTRACEEVENT._serialized_end=63385
-  _ANDROIDFSFSYNCSTARTFTRACEEVENT._serialized_start=63387
-  _ANDROIDFSFSYNCSTARTFTRACEEVENT._serialized_end=63495
-  _BCLIRQTRIGGERFTRACEEVENT._serialized_start=63498
-  _BCLIRQTRIGGERFTRACEEVENT._serialized_end=63687
-  _BINDERTRANSACTIONFTRACEEVENT._serialized_start=63690
-  _BINDERTRANSACTIONFTRACEEVENT._serialized_end=63839
-  _BINDERTRANSACTIONRECEIVEDFTRACEEVENT._serialized_start=63841
-  _BINDERTRANSACTIONRECEIVEDFTRACEEVENT._serialized_end=63897
-  _BINDERSETPRIORITYFTRACEEVENT._serialized_start=63899
-  _BINDERSETPRIORITYFTRACEEVENT._serialized_end=64017
-  _BINDERLOCKFTRACEEVENT._serialized_start=64019
-  _BINDERLOCKFTRACEEVENT._serialized_end=64055
-  _BINDERLOCKEDFTRACEEVENT._serialized_start=64057
-  _BINDERLOCKEDFTRACEEVENT._serialized_end=64095
-  _BINDERUNLOCKFTRACEEVENT._serialized_start=64097
-  _BINDERUNLOCKFTRACEEVENT._serialized_end=64135
-  _BINDERTRANSACTIONALLOCBUFFTRACEEVENT._serialized_start=64137
-  _BINDERTRANSACTIONALLOCBUFFTRACEEVENT._serialized_end=64262
-  _BINDERCOMMANDFTRACEEVENT._serialized_start=64264
-  _BINDERCOMMANDFTRACEEVENT._serialized_end=64303
-  _BINDERRETURNFTRACEEVENT._serialized_start=64305
-  _BINDERRETURNFTRACEEVENT._serialized_end=64343
-  _BLOCKRQISSUEFTRACEEVENT._serialized_start=64346
-  _BLOCKRQISSUEFTRACEEVENT._serialized_end=64475
-  _BLOCKBIOBACKMERGEFTRACEEVENT._serialized_start=64477
-  _BLOCKBIOBACKMERGEFTRACEEVENT._serialized_end=64583
-  _BLOCKBIOBOUNCEFTRACEEVENT._serialized_start=64585
-  _BLOCKBIOBOUNCEFTRACEEVENT._serialized_end=64688
-  _BLOCKBIOCOMPLETEFTRACEEVENT._serialized_start=64690
-  _BLOCKBIOCOMPLETEFTRACEEVENT._serialized_end=64796
-  _BLOCKBIOFRONTMERGEFTRACEEVENT._serialized_start=64798
-  _BLOCKBIOFRONTMERGEFTRACEEVENT._serialized_end=64905
-  _BLOCKBIOQUEUEFTRACEEVENT._serialized_start=64907
-  _BLOCKBIOQUEUEFTRACEEVENT._serialized_end=65009
-  _BLOCKBIOREMAPFTRACEEVENT._serialized_start=65011
-  _BLOCKBIOREMAPFTRACEEVENT._serialized_end=65136
-  _BLOCKDIRTYBUFFERFTRACEEVENT._serialized_start=65138
-  _BLOCKDIRTYBUFFERFTRACEEVENT._serialized_end=65210
-  _BLOCKGETRQFTRACEEVENT._serialized_start=65212
-  _BLOCKGETRQFTRACEEVENT._serialized_end=65311
-  _BLOCKPLUGFTRACEEVENT._serialized_start=65313
-  _BLOCKPLUGFTRACEEVENT._serialized_end=65349
-  _BLOCKRQABORTFTRACEEVENT._serialized_start=65351
-  _BLOCKRQABORTFTRACEEVENT._serialized_end=65467
-  _BLOCKRQCOMPLETEFTRACEEVENT._serialized_start=65470
-  _BLOCKRQCOMPLETEFTRACEEVENT._serialized_end=65604
-  _BLOCKRQINSERTFTRACEEVENT._serialized_start=65607
-  _BLOCKRQINSERTFTRACEEVENT._serialized_end=65737
-  _BLOCKRQREMAPFTRACEEVENT._serialized_start=65740
-  _BLOCKRQREMAPFTRACEEVENT._serialized_end=65881
-  _BLOCKRQREQUEUEFTRACEEVENT._serialized_start=65883
-  _BLOCKRQREQUEUEFTRACEEVENT._serialized_end=66001
-  _BLOCKSLEEPRQFTRACEEVENT._serialized_start=66003
-  _BLOCKSLEEPRQFTRACEEVENT._serialized_end=66104
-  _BLOCKSPLITFTRACEEVENT._serialized_start=66106
-  _BLOCKSPLITFTRACEEVENT._serialized_end=66206
-  _BLOCKTOUCHBUFFERFTRACEEVENT._serialized_start=66208
-  _BLOCKTOUCHBUFFERFTRACEEVENT._serialized_end=66280
-  _BLOCKUNPLUGFTRACEEVENT._serialized_start=66282
-  _BLOCKUNPLUGFTRACEEVENT._serialized_end=66335
-  _BLOCKIOSTARTFTRACEEVENT._serialized_start=66338
-  _BLOCKIOSTARTFTRACEEVENT._serialized_end=66483
-  _BLOCKIODONEFTRACEEVENT._serialized_start=66486
-  _BLOCKIODONEFTRACEEVENT._serialized_end=66630
-  _CGROUPATTACHTASKFTRACEEVENT._serialized_start=66633
-  _CGROUPATTACHTASKFTRACEEVENT._serialized_end=66775
-  _CGROUPMKDIRFTRACEEVENT._serialized_start=66777
-  _CGROUPMKDIRFTRACEEVENT._serialized_end=66871
-  _CGROUPREMOUNTFTRACEEVENT._serialized_start=66873
-  _CGROUPREMOUNTFTRACEEVENT._serialized_end=66944
-  _CGROUPRMDIRFTRACEEVENT._serialized_start=66946
-  _CGROUPRMDIRFTRACEEVENT._serialized_end=67040
-  _CGROUPTRANSFERTASKSFTRACEEVENT._serialized_start=67043
-  _CGROUPTRANSFERTASKSFTRACEEVENT._serialized_end=67188
-  _CGROUPDESTROYROOTFTRACEEVENT._serialized_start=67190
-  _CGROUPDESTROYROOTFTRACEEVENT._serialized_end=67265
-  _CGROUPRELEASEFTRACEEVENT._serialized_start=67267
-  _CGROUPRELEASEFTRACEEVENT._serialized_end=67363
-  _CGROUPRENAMEFTRACEEVENT._serialized_start=67365
-  _CGROUPRENAMEFTRACEEVENT._serialized_end=67460
-  _CGROUPSETUPROOTFTRACEEVENT._serialized_start=67462
-  _CGROUPSETUPROOTFTRACEEVENT._serialized_end=67535
-  _CLKENABLEFTRACEEVENT._serialized_start=67537
-  _CLKENABLEFTRACEEVENT._serialized_end=67573
-  _CLKDISABLEFTRACEEVENT._serialized_start=67575
-  _CLKDISABLEFTRACEEVENT._serialized_end=67612
-  _CLKSETRATEFTRACEEVENT._serialized_start=67614
-  _CLKSETRATEFTRACEEVENT._serialized_end=67665
-  _CMAALLOCSTARTFTRACEEVENT._serialized_start=67667
-  _CMAALLOCSTARTFTRACEEVENT._serialized_end=67737
-  _CMAALLOCINFOFTRACEEVENT._serialized_start=67740
-  _CMAALLOCINFOFTRACEEVENT._serialized_end=67936
-  _CMAALLOCFINISHFTRACEEVENT._serialized_start=67938
-  _CMAALLOCFINISHFTRACEEVENT._serialized_end=68053
-  _MMCOMPACTIONBEGINFTRACEEVENT._serialized_start=68055
-  _MMCOMPACTIONBEGINFTRACEEVENT._serialized_end=68176
-  _MMCOMPACTIONDEFERCOMPACTIONFTRACEEVENT._serialized_start=68179
-  _MMCOMPACTIONDEFERCOMPACTIONFTRACEEVENT._serialized_end=68323
-  _MMCOMPACTIONDEFERREDFTRACEEVENT._serialized_start=68326
-  _MMCOMPACTIONDEFERREDFTRACEEVENT._serialized_end=68463
-  _MMCOMPACTIONDEFERRESETFTRACEEVENT._serialized_start=68466
-  _MMCOMPACTIONDEFERRESETFTRACEEVENT._serialized_end=68605
-  _MMCOMPACTIONENDFTRACEEVENT._serialized_start=68608
-  _MMCOMPACTIONENDFTRACEEVENT._serialized_end=68743
-  _MMCOMPACTIONFINISHEDFTRACEEVENT._serialized_start=68745
-  _MMCOMPACTIONFINISHEDFTRACEEVENT._serialized_end=68832
-  _MMCOMPACTIONISOLATEFREEPAGESFTRACEEVENT._serialized_start=68834
-  _MMCOMPACTIONISOLATEFREEPAGESFTRACEEVENT._serialized_end=68949
-  _MMCOMPACTIONISOLATEMIGRATEPAGESFTRACEEVENT._serialized_start=68951
-  _MMCOMPACTIONISOLATEMIGRATEPAGESFTRACEEVENT._serialized_end=69069
-  _MMCOMPACTIONKCOMPACTDSLEEPFTRACEEVENT._serialized_start=69071
-  _MMCOMPACTIONKCOMPACTDSLEEPFTRACEEVENT._serialized_end=69123
-  _MMCOMPACTIONKCOMPACTDWAKEFTRACEEVENT._serialized_start=69125
-  _MMCOMPACTIONKCOMPACTDWAKEFTRACEEVENT._serialized_end=69239
-  _MMCOMPACTIONMIGRATEPAGESFTRACEEVENT._serialized_start=69241
-  _MMCOMPACTIONMIGRATEPAGESFTRACEEVENT._serialized_end=69318
-  _MMCOMPACTIONSUITABLEFTRACEEVENT._serialized_start=69320
-  _MMCOMPACTIONSUITABLEFTRACEEVENT._serialized_end=69407
-  _MMCOMPACTIONTRYTOCOMPACTPAGESFTRACEEVENT._serialized_start=69409
-  _MMCOMPACTIONTRYTOCOMPACTPAGESFTRACEEVENT._serialized_end=69512
-  _MMCOMPACTIONWAKEUPKCOMPACTDFTRACEEVENT._serialized_start=69514
-  _MMCOMPACTIONWAKEUPKCOMPACTDFTRACEEVENT._serialized_end=69630
-  _PARAMSETVALUECPMFTRACEEVENT._serialized_start=69632
-  _PARAMSETVALUECPMFTRACEEVENT._serialized_end=69709
-  _CPUHPEXITFTRACEEVENT._serialized_start=69711
-  _CPUHPEXITFTRACEEVENT._serialized_end=69787
-  _CPUHPMULTIENTERFTRACEEVENT._serialized_start=69789
-  _CPUHPMULTIENTERFTRACEEVENT._serialized_end=69872
-  _CPUHPENTERFTRACEEVENT._serialized_start=69874
-  _CPUHPENTERFTRACEEVENT._serialized_end=69952
-  _CPUHPLATENCYFTRACEEVENT._serialized_start=69954
-  _CPUHPLATENCYFTRACEEVENT._serialized_end=70034
-  _CPUHPPAUSEFTRACEEVENT._serialized_start=70036
-  _CPUHPPAUSEFTRACEEVENT._serialized_end=70123
-  _CROSECSENSORHUBDATAFTRACEEVENT._serialized_start=70126
-  _CROSECSENSORHUBDATAFTRACEEVENT._serialized_end=70296
-  _DCVSHFREQFTRACEEVENT._serialized_start=70298
-  _DCVSHFREQFTRACEEVENT._serialized_end=70347
-  _DEVFREQFREQUENCYFTRACEEVENT._serialized_start=70349
-  _DEVFREQFREQUENCYFTRACEEVENT._serialized_end=70468
-  _DMAFENCEINITFTRACEEVENT._serialized_start=70470
-  _DMAFENCEINITFTRACEEVENT._serialized_end=70561
-  _DMAFENCEEMITFTRACEEVENT._serialized_start=70563
-  _DMAFENCEEMITFTRACEEVENT._serialized_end=70654
-  _DMAFENCESIGNALEDFTRACEEVENT._serialized_start=70656
-  _DMAFENCESIGNALEDFTRACEEVENT._serialized_end=70751
-  _DMAFENCEWAITSTARTFTRACEEVENT._serialized_start=70753
-  _DMAFENCEWAITSTARTFTRACEEVENT._serialized_end=70849
-  _DMAFENCEWAITENDFTRACEEVENT._serialized_start=70851
-  _DMAFENCEWAITENDFTRACEEVENT._serialized_end=70945
-  _DMAHEAPSTATFTRACEEVENT._serialized_start=70947
-  _DMAHEAPSTATFTRACEEVENT._serialized_end=71024
-  _DPUTRACINGMARKWRITEFTRACEEVENT._serialized_start=71027
-  _DPUTRACINGMARKWRITEFTRACEEVENT._serialized_end=71156
-  _DPUDSICMDFIFOSTATUSFTRACEEVENT._serialized_start=71158
-  _DPUDSICMDFIFOSTATUSFTRACEEVENT._serialized_end=71223
-  _DPUDSIRXFTRACEEVENT._serialized_start=71225
-  _DPUDSIRXFTRACEEVENT._serialized_end=71275
-  _DPUDSITXFTRACEEVENT._serialized_start=71277
-  _DPUDSITXFTRACEEVENT._serialized_end=71360
-  _DPUDISPDPUUNDERRUNFTRACEEVENT._serialized_start=71362
-  _DPUDISPDPUUNDERRUNFTRACEEVENT._serialized_end=71450
-  _DPUDISPVBLANKIRQENABLEFTRACEEVENT._serialized_start=71452
-  _DPUDISPVBLANKIRQENABLEFTRACEEVENT._serialized_end=71534
-  _DRMVBLANKEVENTFTRACEEVENT._serialized_start=71536
-  _DRMVBLANKEVENTFTRACEEVENT._serialized_end=71623
-  _DRMVBLANKEVENTDELIVEREDFTRACEEVENT._serialized_start=71625
-  _DRMVBLANKEVENTDELIVEREDFTRACEEVENT._serialized_end=71702
-  _DWC3ALLOCREQUESTFTRACEEVENT._serialized_start=71705
-  _DWC3ALLOCREQUESTFTRACEEVENT._serialized_end=71867
-  _DWC3COMPLETETRBFTRACEEVENT._serialized_start=71870
-  _DWC3COMPLETETRBFTRACEEVENT._serialized_end=72062
-  _DWC3CTRLREQFTRACEEVENT._serialized_start=72064
-  _DWC3CTRLREQFTRACEEVENT._serialized_end=72190
-  _DWC3EPDEQUEUEFTRACEEVENT._serialized_start=72193
-  _DWC3EPDEQUEUEFTRACEEVENT._serialized_end=72352
-  _DWC3EPQUEUEFTRACEEVENT._serialized_start=72355
-  _DWC3EPQUEUEFTRACEEVENT._serialized_end=72512
-  _DWC3EVENTFTRACEEVENT._serialized_start=72514
-  _DWC3EVENTFTRACEEVENT._serialized_end=72582
-  _DWC3FREEREQUESTFTRACEEVENT._serialized_start=72585
-  _DWC3FREEREQUESTFTRACEEVENT._serialized_end=72746
-  _DWC3GADGETEPCMDFTRACEEVENT._serialized_start=72748
-  _DWC3GADGETEPCMDFTRACEEVENT._serialized_end=72871
-  _DWC3GADGETEPDISABLEFTRACEEVENT._serialized_start=72874
-  _DWC3GADGETEPDISABLEFTRACEEVENT._serialized_end=73079
-  _DWC3GADGETEPENABLEFTRACEEVENT._serialized_start=73082
-  _DWC3GADGETEPENABLEFTRACEEVENT._serialized_end=73286
-  _DWC3GADGETGENERICCMDFTRACEEVENT._serialized_start=73288
-  _DWC3GADGETGENERICCMDFTRACEEVENT._serialized_end=73365
-  _DWC3GADGETGIVEBACKFTRACEEVENT._serialized_start=73368
-  _DWC3GADGETGIVEBACKFTRACEEVENT._serialized_end=73532
-  _DWC3PREPARETRBFTRACEEVENT._serialized_start=73535
-  _DWC3PREPARETRBFTRACEEVENT._serialized_end=73726
-  _DWC3READLFTRACEEVENT._serialized_start=73728
-  _DWC3READLFTRACEEVENT._serialized_end=73808
-  _DWC3WRITELFTRACEEVENT._serialized_start=73810
-  _DWC3WRITELFTRACEEVENT._serialized_end=73891
-  _EXT4DAWRITEBEGINFTRACEEVENT._serialized_start=73893
-  _EXT4DAWRITEBEGINFTRACEEVENT._serialized_end=73989
-  _EXT4DAWRITEENDFTRACEEVENT._serialized_start=73991
-  _EXT4DAWRITEENDFTRACEEVENT._serialized_end=74086
-  _EXT4SYNCFILEENTERFTRACEEVENT._serialized_start=74088
-  _EXT4SYNCFILEENTERFTRACEEVENT._serialized_end=74178
-  _EXT4SYNCFILEEXITFTRACEEVENT._serialized_start=74180
-  _EXT4SYNCFILEEXITFTRACEEVENT._serialized_end=74248
-  _EXT4ALLOCDABLOCKSFTRACEEVENT._serialized_start=74250
-  _EXT4ALLOCDABLOCKSFTRACEEVENT._serialized_end=74348
-  _EXT4ALLOCATEBLOCKSFTRACEEVENT._serialized_start=74351
-  _EXT4ALLOCATEBLOCKSFTRACEEVENT._serialized_end=74544
-  _EXT4ALLOCATEINODEFTRACEEVENT._serialized_start=74546
-  _EXT4ALLOCATEINODEFTRACEEVENT._serialized_end=74629
-  _EXT4BEGINORDEREDTRUNCATEFTRACEEVENT._serialized_start=74631
-  _EXT4BEGINORDEREDTRUNCATEFTRACEEVENT._serialized_end=74712
-  _EXT4COLLAPSERANGEFTRACEEVENT._serialized_start=74714
-  _EXT4COLLAPSERANGEFTRACEEVENT._serialized_end=74799
-  _EXT4DARELEASESPACEFTRACEEVENT._serialized_start=74802
-  _EXT4DARELEASESPACEFTRACEEVENT._serialized_end=75004
-  _EXT4DARESERVESPACEFTRACEEVENT._serialized_start=75007
-  _EXT4DARESERVESPACEFTRACEEVENT._serialized_end=75175
-  _EXT4DAUPDATERESERVESPACEFTRACEEVENT._serialized_start=75178
-  _EXT4DAUPDATERESERVESPACEFTRACEEVENT._serialized_end=75406
-  _EXT4DAWRITEPAGESFTRACEEVENT._serialized_start=75409
-  _EXT4DAWRITEPAGESFTRACEEVENT._serialized_end=75616
-  _EXT4DAWRITEPAGESEXTENTFTRACEEVENT._serialized_start=75618
-  _EXT4DAWRITEPAGESEXTENTFTRACEEVENT._serialized_end=75721
-  _EXT4DIRECTIOENTERFTRACEEVENT._serialized_start=75723
-  _EXT4DIRECTIOENTERFTRACEEVENT._serialized_end=75817
-  _EXT4DIRECTIOEXITFTRACEEVENT._serialized_start=75819
-  _EXT4DIRECTIOEXITFTRACEEVENT._serialized_end=75925
-  _EXT4DISCARDBLOCKSFTRACEEVENT._serialized_start=75927
-  _EXT4DISCARDBLOCKSFTRACEEVENT._serialized_end=75998
-  _EXT4DISCARDPREALLOCATIONSFTRACEEVENT._serialized_start=76000
-  _EXT4DISCARDPREALLOCATIONSFTRACEEVENT._serialized_end=76093
-  _EXT4DROPINODEFTRACEEVENT._serialized_start=76095
-  _EXT4DROPINODEFTRACEEVENT._serialized_end=76161
-  _EXT4ESCACHEEXTENTFTRACEEVENT._serialized_start=76163
-  _EXT4ESCACHEEXTENTFTRACEEVENT._serialized_end=76276
-  _EXT4ESFINDDELAYEDEXTENTRANGEENTERFTRACEEVENT._serialized_start=76278
-  _EXT4ESFINDDELAYEDEXTENTRANGEENTERFTRACEEVENT._serialized_end=76364
-  _EXT4ESFINDDELAYEDEXTENTRANGEEXITFTRACEEVENT._serialized_start=76367
-  _EXT4ESFINDDELAYEDEXTENTRANGEEXITFTRACEEVENT._serialized_end=76495
-  _EXT4ESINSERTEXTENTFTRACEEVENT._serialized_start=76497
-  _EXT4ESINSERTEXTENTFTRACEEVENT._serialized_end=76611
-  _EXT4ESLOOKUPEXTENTENTERFTRACEEVENT._serialized_start=76613
-  _EXT4ESLOOKUPEXTENTENTERFTRACEEVENT._serialized_end=76689
-  _EXT4ESLOOKUPEXTENTEXITFTRACEEVENT._serialized_start=76692
-  _EXT4ESLOOKUPEXTENTEXITFTRACEEVENT._serialized_end=76825
-  _EXT4ESREMOVEEXTENTFTRACEEVENT._serialized_start=76827
-  _EXT4ESREMOVEEXTENTFTRACEEVENT._serialized_end=76911
-  _EXT4ESSHRINKFTRACEEVENT._serialized_start=76913
-  _EXT4ESSHRINKFTRACEEVENT._serialized_end=77026
-  _EXT4ESSHRINKCOUNTFTRACEEVENT._serialized_start=77028
-  _EXT4ESSHRINKCOUNTFTRACEEVENT._serialized_end=77110
-  _EXT4ESSHRINKSCANENTERFTRACEEVENT._serialized_start=77112
-  _EXT4ESSHRINKSCANENTERFTRACEEVENT._serialized_end=77198
-  _EXT4ESSHRINKSCANEXITFTRACEEVENT._serialized_start=77200
-  _EXT4ESSHRINKSCANEXITFTRACEEVENT._serialized_end=77284
-  _EXT4EVICTINODEFTRACEEVENT._serialized_start=77286
-  _EXT4EVICTINODEFTRACEEVENT._serialized_end=77354
-  _EXT4EXTCONVERTTOINITIALIZEDENTERFTRACEEVENT._serialized_start=77357
-  _EXT4EXTCONVERTTOINITIALIZEDENTERFTRACEEVENT._serialized_end=77506
-  _EXT4EXTCONVERTTOINITIALIZEDFASTPATHFTRACEEVENT._serialized_start=77509
-  _EXT4EXTCONVERTTOINITIALIZEDFASTPATHFTRACEEVENT._serialized_end=77708
-  _EXT4EXTHANDLEUNWRITTENEXTENTSFTRACEEVENT._serialized_start=77711
-  _EXT4EXTHANDLEUNWRITTENEXTENTSFTRACEEVENT._serialized_end=77870
-  _EXT4EXTINCACHEFTRACEEVENT._serialized_start=77872
-  _EXT4EXTINCACHEFTRACEEVENT._serialized_end=77952
-  _EXT4EXTLOADEXTENTFTRACEEVENT._serialized_start=77954
-  _EXT4EXTLOADEXTENTFTRACEEVENT._serialized_end=78038
-  _EXT4EXTMAPBLOCKSENTERFTRACEEVENT._serialized_start=78040
-  _EXT4EXTMAPBLOCKSENTERFTRACEEVENT._serialized_end=78142
-  _EXT4EXTMAPBLOCKSEXITFTRACEEVENT._serialized_start=78145
-  _EXT4EXTMAPBLOCKSEXITFTRACEEVENT._serialized_end=78289
-  _EXT4EXTPUTINCACHEFTRACEEVENT._serialized_start=78291
-  _EXT4EXTPUTINCACHEFTRACEEVENT._serialized_end=78389
-  _EXT4EXTREMOVESPACEFTRACEEVENT._serialized_start=78391
-  _EXT4EXTREMOVESPACEFTRACEEVENT._serialized_end=78491
-  _EXT4EXTREMOVESPACEDONEFTRACEEVENT._serialized_start=78494
-  _EXT4EXTREMOVESPACEDONEFTRACEEVENT._serialized_end=78687
-  _EXT4EXTRMIDXFTRACEEVENT._serialized_start=78689
-  _EXT4EXTRMIDXFTRACEEVENT._serialized_end=78754
-  _EXT4EXTRMLEAFFTRACEEVENT._serialized_start=78757
-  _EXT4EXTRMLEAFFTRACEEVENT._serialized_end=78943
-  _EXT4EXTSHOWEXTENTFTRACEEVENT._serialized_start=78945
-  _EXT4EXTSHOWEXTENTFTRACEEVENT._serialized_end=79042
-  _EXT4FALLOCATEENTERFTRACEEVENT._serialized_start=79044
-  _EXT4FALLOCATEENTERFTRACEEVENT._serialized_end=79157
-  _EXT4FALLOCATEEXITFTRACEEVENT._serialized_start=79159
-  _EXT4FALLOCATEEXITFTRACEEVENT._serialized_end=79257
-  _EXT4FINDDELALLOCRANGEFTRACEEVENT._serialized_start=79260
-  _EXT4FINDDELALLOCRANGEFTRACEEVENT._serialized_end=79397
-  _EXT4FORGETFTRACEEVENT._serialized_start=79399
-  _EXT4FORGETFTRACEEVENT._serialized_end=79498
-  _EXT4FREEBLOCKSFTRACEEVENT._serialized_start=79500
-  _EXT4FREEBLOCKSFTRACEEVENT._serialized_end=79612
-  _EXT4FREEINODEFTRACEEVENT._serialized_start=79614
-  _EXT4FREEINODEFTRACEEVENT._serialized_end=79722
-  _EXT4GETIMPLIEDCLUSTERALLOCEXITFTRACEEVENT._serialized_start=79724
-  _EXT4GETIMPLIEDCLUSTERALLOCEXITFTRACEEVENT._serialized_end=79849
-  _EXT4GETRESERVEDCLUSTERALLOCFTRACEEVENT._serialized_start=79851
-  _EXT4GETRESERVEDCLUSTERALLOCFTRACEEVENT._serialized_end=79944
-  _EXT4INDMAPBLOCKSENTERFTRACEEVENT._serialized_start=79946
-  _EXT4INDMAPBLOCKSENTERFTRACEEVENT._serialized_end=80048
-  _EXT4INDMAPBLOCKSEXITFTRACEEVENT._serialized_start=80051
-  _EXT4INDMAPBLOCKSEXITFTRACEEVENT._serialized_end=80195
-  _EXT4INSERTRANGEFTRACEEVENT._serialized_start=80197
-  _EXT4INSERTRANGEFTRACEEVENT._serialized_end=80280
-  _EXT4INVALIDATEPAGEFTRACEEVENT._serialized_start=80282
-  _EXT4INVALIDATEPAGEFTRACEEVENT._serialized_end=80386
-  _EXT4JOURNALSTARTFTRACEEVENT._serialized_start=80389
-  _EXT4JOURNALSTARTFTRACEEVENT._serialized_end=80518
-  _EXT4JOURNALSTARTRESERVEDFTRACEEVENT._serialized_start=80520
-  _EXT4JOURNALSTARTRESERVEDFTRACEEVENT._serialized_end=80598
-  _EXT4JOURNALLEDINVALIDATEPAGEFTRACEEVENT._serialized_start=80600
-  _EXT4JOURNALLEDINVALIDATEPAGEFTRACEEVENT._serialized_end=80714
-  _EXT4JOURNALLEDWRITEENDFTRACEEVENT._serialized_start=80716
-  _EXT4JOURNALLEDWRITEENDFTRACEEVENT._serialized_end=80819
-  _EXT4LOADINODEFTRACEEVENT._serialized_start=80821
-  _EXT4LOADINODEFTRACEEVENT._serialized_end=80873
-  _EXT4LOADINODEBITMAPFTRACEEVENT._serialized_start=80875
-  _EXT4LOADINODEBITMAPFTRACEEVENT._serialized_end=80935
-  _EXT4MARKINODEDIRTYFTRACEEVENT._serialized_start=80937
-  _EXT4MARKINODEDIRTYFTRACEEVENT._serialized_end=81006
-  _EXT4MBBITMAPLOADFTRACEEVENT._serialized_start=81008
-  _EXT4MBBITMAPLOADFTRACEEVENT._serialized_end=81065
-  _EXT4MBBUDDYBITMAPLOADFTRACEEVENT._serialized_start=81067
-  _EXT4MBBUDDYBITMAPLOADFTRACEEVENT._serialized_end=81129
-  _EXT4MBDISCARDPREALLOCATIONSFTRACEEVENT._serialized_start=81131
-  _EXT4MBDISCARDPREALLOCATIONSFTRACEEVENT._serialized_end=81200
-  _EXT4MBNEWGROUPPAFTRACEEVENT._serialized_start=81202
-  _EXT4MBNEWGROUPPAFTRACEEVENT._serialized_end=81311
-  _EXT4MBNEWINODEPAFTRACEEVENT._serialized_start=81313
-  _EXT4MBNEWINODEPAFTRACEEVENT._serialized_end=81422
-  _EXT4MBRELEASEGROUPPAFTRACEEVENT._serialized_start=81424
-  _EXT4MBRELEASEGROUPPAFTRACEEVENT._serialized_end=81505
-  _EXT4MBRELEASEINODEPAFTRACEEVENT._serialized_start=81507
-  _EXT4MBRELEASEINODEPAFTRACEEVENT._serialized_end=81596
-  _EXT4MBALLOCALLOCFTRACEEVENT._serialized_start=81599
-  _EXT4MBALLOCALLOCFTRACEEVENT._serialized_end=81989
-  _EXT4MBALLOCDISCARDFTRACEEVENT._serialized_start=81991
-  _EXT4MBALLOCDISCARDFTRACEEVENT._serialized_end=82112
-  _EXT4MBALLOCFREEFTRACEEVENT._serialized_start=82114
-  _EXT4MBALLOCFREEFTRACEEVENT._serialized_end=82232
-  _EXT4MBALLOCPREALLOCFTRACEEVENT._serialized_start=82235
-  _EXT4MBALLOCPREALLOCFTRACEEVENT._serialized_end=82461
-  _EXT4OTHERINODEUPDATETIMEFTRACEEVENT._serialized_start=82463
-  _EXT4OTHERINODEUPDATETIMEFTRACEEVENT._serialized_end=82584
-  _EXT4PUNCHHOLEFTRACEEVENT._serialized_start=82586
-  _EXT4PUNCHHOLEFTRACEEVENT._serialized_end=82681
-  _EXT4READBLOCKBITMAPLOADFTRACEEVENT._serialized_start=82683
-  _EXT4READBLOCKBITMAPLOADFTRACEEVENT._serialized_end=82765
-  _EXT4READPAGEFTRACEEVENT._serialized_start=82767
-  _EXT4READPAGEFTRACEEVENT._serialized_end=82833
-  _EXT4RELEASEPAGEFTRACEEVENT._serialized_start=82835
-  _EXT4RELEASEPAGEFTRACEEVENT._serialized_end=82904
-  _EXT4REMOVEBLOCKSFTRACEEVENT._serialized_start=82907
-  _EXT4REMOVEBLOCKSFTRACEEVENT._serialized_end=83107
-  _EXT4REQUESTBLOCKSFTRACEEVENT._serialized_start=83110
-  _EXT4REQUESTBLOCKSFTRACEEVENT._serialized_end=83287
-  _EXT4REQUESTINODEFTRACEEVENT._serialized_start=83289
-  _EXT4REQUESTINODEFTRACEEVENT._serialized_end=83358
-  _EXT4SYNCFSFTRACEEVENT._serialized_start=83360
-  _EXT4SYNCFSFTRACEEVENT._serialized_end=83410
-  _EXT4TRIMALLFREEFTRACEEVENT._serialized_start=83412
-  _EXT4TRIMALLFREEFTRACEEVENT._serialized_end=83521
-  _EXT4TRIMEXTENTFTRACEEVENT._serialized_start=83523
-  _EXT4TRIMEXTENTFTRACEEVENT._serialized_end=83631
-  _EXT4TRUNCATEENTERFTRACEEVENT._serialized_start=83633
-  _EXT4TRUNCATEENTERFTRACEEVENT._serialized_end=83705
-  _EXT4TRUNCATEEXITFTRACEEVENT._serialized_start=83707
-  _EXT4TRUNCATEEXITFTRACEEVENT._serialized_end=83778
-  _EXT4UNLINKENTERFTRACEEVENT._serialized_start=83780
-  _EXT4UNLINKENTERFTRACEEVENT._serialized_end=83864
-  _EXT4UNLINKEXITFTRACEEVENT._serialized_start=83866
-  _EXT4UNLINKEXITFTRACEEVENT._serialized_end=83932
-  _EXT4WRITEBEGINFTRACEEVENT._serialized_start=83934
-  _EXT4WRITEBEGINFTRACEEVENT._serialized_end=84028
-  _EXT4WRITEENDFTRACEEVENT._serialized_start=84030
-  _EXT4WRITEENDFTRACEEVENT._serialized_end=84123
-  _EXT4WRITEPAGEFTRACEEVENT._serialized_start=84125
-  _EXT4WRITEPAGEFTRACEEVENT._serialized_end=84192
-  _EXT4WRITEPAGESFTRACEEVENT._serialized_start=84195
-  _EXT4WRITEPAGESFTRACEEVENT._serialized_end=84419
-  _EXT4WRITEPAGESRESULTFTRACEEVENT._serialized_start=84422
-  _EXT4WRITEPAGESRESULTFTRACEEVENT._serialized_end=84584
-  _EXT4ZERORANGEFTRACEEVENT._serialized_start=84586
-  _EXT4ZERORANGEFTRACEEVENT._serialized_end=84681
-  _F2FSDOSUBMITBIOFTRACEEVENT._serialized_start=84683
-  _F2FSDOSUBMITBIOFTRACEEVENT._serialized_end=84783
-  _F2FSEVICTINODEFTRACEEVENT._serialized_start=84786
-  _F2FSEVICTINODEFTRACEEVENT._serialized_end=84928
-  _F2FSFALLOCATEFTRACEEVENT._serialized_start=84931
-  _F2FSFALLOCATEFTRACEEVENT._serialized_end=85069
-  _F2FSGETDATABLOCKFTRACEEVENT._serialized_start=85071
-  _F2FSGETDATABLOCKFTRACEEVENT._serialized_end=85190
-  _F2FSGETVICTIMFTRACEEVENT._serialized_start=85193
-  _F2FSGETVICTIMFTRACEEVENT._serialized_end=85399
-  _F2FSIGETFTRACEEVENT._serialized_start=85402
-  _F2FSIGETFTRACEEVENT._serialized_end=85538
-  _F2FSIGETEXITFTRACEEVENT._serialized_start=85540
-  _F2FSIGETEXITFTRACEEVENT._serialized_end=85604
-  _F2FSNEWINODEFTRACEEVENT._serialized_start=85606
-  _F2FSNEWINODEFTRACEEVENT._serialized_end=85670
-  _F2FSREADPAGEFTRACEEVENT._serialized_start=85673
-  _F2FSREADPAGEFTRACEEVENT._serialized_end=85816
-  _F2FSRESERVENEWBLOCKFTRACEEVENT._serialized_start=85818
-  _F2FSRESERVENEWBLOCKFTRACEEVENT._serialized_end=85897
-  _F2FSSETPAGEDIRTYFTRACEEVENT._serialized_start=85900
-  _F2FSSETPAGEDIRTYFTRACEEVENT._serialized_end=86030
-  _F2FSSUBMITWRITEPAGEFTRACEEVENT._serialized_start=86032
-  _F2FSSUBMITWRITEPAGEFTRACEEVENT._serialized_end=86134
-  _F2FSSYNCFILEENTERFTRACEEVENT._serialized_start=86137
-  _F2FSSYNCFILEENTERFTRACEEVENT._serialized_end=86282
-  _F2FSSYNCFILEEXITFTRACEEVENT._serialized_start=86284
-  _F2FSSYNCFILEEXITFTRACEEVENT._serialized_end=86406
-  _F2FSSYNCFSFTRACEEVENT._serialized_start=86408
-  _F2FSSYNCFSFTRACEEVENT._serialized_end=86473
-  _F2FSTRUNCATEFTRACEEVENT._serialized_start=86476
-  _F2FSTRUNCATEFTRACEEVENT._serialized_end=86616
-  _F2FSTRUNCATEBLOCKSENTERFTRACEEVENT._serialized_start=86618
-  _F2FSTRUNCATEBLOCKSENTERFTRACEEVENT._serialized_end=86724
-  _F2FSTRUNCATEBLOCKSEXITFTRACEEVENT._serialized_start=86726
-  _F2FSTRUNCATEBLOCKSEXITFTRACEEVENT._serialized_end=86800
-  _F2FSTRUNCATEDATABLOCKSRANGEFTRACEEVENT._serialized_start=86802
-  _F2FSTRUNCATEDATABLOCKSRANGEFTRACEEVENT._serialized_end=86908
-  _F2FSTRUNCATEINODEBLOCKSENTERFTRACEEVENT._serialized_start=86910
-  _F2FSTRUNCATEINODEBLOCKSENTERFTRACEEVENT._serialized_end=87021
-  _F2FSTRUNCATEINODEBLOCKSEXITFTRACEEVENT._serialized_start=87023
-  _F2FSTRUNCATEINODEBLOCKSEXITFTRACEEVENT._serialized_end=87102
-  _F2FSTRUNCATENODEFTRACEEVENT._serialized_start=87104
-  _F2FSTRUNCATENODEFTRACEEVENT._serialized_end=87190
-  _F2FSTRUNCATENODESENTERFTRACEEVENT._serialized_start=87192
-  _F2FSTRUNCATENODESENTERFTRACEEVENT._serialized_end=87284
-  _F2FSTRUNCATENODESEXITFTRACEEVENT._serialized_start=87286
-  _F2FSTRUNCATENODESEXITFTRACEEVENT._serialized_end=87359
-  _F2FSTRUNCATEPARTIALNODESFTRACEEVENT._serialized_start=87361
-  _F2FSTRUNCATEPARTIALNODESFTRACEEVENT._serialized_end=87465
-  _F2FSUNLINKENTERFTRACEEVENT._serialized_start=87467
-  _F2FSUNLINKENTERFTRACEEVENT._serialized_end=87565
-  _F2FSUNLINKEXITFTRACEEVENT._serialized_start=87567
-  _F2FSUNLINKEXITFTRACEEVENT._serialized_end=87633
-  _F2FSVMPAGEMKWRITEFTRACEEVENT._serialized_start=87636
-  _F2FSVMPAGEMKWRITEFTRACEEVENT._serialized_end=87767
-  _F2FSWRITEBEGINFTRACEEVENT._serialized_start=87769
-  _F2FSWRITEBEGINFTRACEEVENT._serialized_end=87863
-  _F2FSWRITECHECKPOINTFTRACEEVENT._serialized_start=87865
-  _F2FSWRITECHECKPOINTFTRACEEVENT._serialized_end=87958
-  _F2FSWRITEENDFTRACEEVENT._serialized_start=87960
-  _F2FSWRITEENDFTRACEEVENT._serialized_end=88053
-  _F2FSIOSTATFTRACEEVENT._serialized_start=88056
-  _F2FSIOSTATFTRACEEVENT._serialized_end=88481
-  _F2FSIOSTATLATENCYFTRACEEVENT._serialized_start=88484
-  _F2FSIOSTATLATENCYFTRACEEVENT._serialized_end=89067
-  _F2FSBACKGROUNDGCFTRACEEVENT._serialized_start=89069
-  _F2FSBACKGROUNDGCFTRACEEVENT._serialized_end=89159
-  _F2FSGCBEGINFTRACEEVENT._serialized_start=89162
-  _F2FSGCBEGINFTRACEEVENT._serialized_end=89432
-  _F2FSGCENDFTRACEEVENT._serialized_start=89435
-  _F2FSGCENDFTRACEEVENT._serialized_end=89663
-  _FASTRPCDMASTATFTRACEEVENT._serialized_start=89665
-  _FASTRPCDMASTATFTRACEEVENT._serialized_end=89743
-  _FASTRPCDMAFREEFTRACEEVENT._serialized_start=89745
-  _FASTRPCDMAFREEFTRACEEVENT._serialized_end=89813
-  _FASTRPCDMAALLOCFTRACEEVENT._serialized_start=89815
-  _FASTRPCDMAALLOCFTRACEEVENT._serialized_end=89914
-  _FASTRPCDMAUNMAPFTRACEEVENT._serialized_start=89916
-  _FASTRPCDMAUNMAPFTRACEEVENT._serialized_end=89985
-  _FASTRPCDMAMAPFTRACEEVENT._serialized_start=89987
-  _FASTRPCDMAMAPFTRACEEVENT._serialized_end=90109
-  _FENCEINITFTRACEEVENT._serialized_start=90111
-  _FENCEINITFTRACEEVENT._serialized_end=90199
-  _FENCEDESTROYFTRACEEVENT._serialized_start=90201
-  _FENCEDESTROYFTRACEEVENT._serialized_end=90292
-  _FENCEENABLESIGNALFTRACEEVENT._serialized_start=90294
-  _FENCEENABLESIGNALFTRACEEVENT._serialized_end=90390
-  _FENCESIGNALEDFTRACEEVENT._serialized_start=90392
-  _FENCESIGNALEDFTRACEEVENT._serialized_end=90484
-  _MMFILEMAPADDTOPAGECACHEFTRACEEVENT._serialized_start=90486
-  _MMFILEMAPADDTOPAGECACHEFTRACEEVENT._serialized_end=90594
-  _MMFILEMAPDELETEFROMPAGECACHEFTRACEEVENT._serialized_start=90596
-  _MMFILEMAPDELETEFROMPAGECACHEFTRACEEVENT._serialized_end=90709
-  _DOSYSOPENFTRACEEVENT._serialized_start=90711
-  _DOSYSOPENFTRACEEVENT._serialized_end=90780
-  _OPENEXECFTRACEEVENT._serialized_start=90782
-  _OPENEXECFTRACEEVENT._serialized_end=90821
-  _PRINTFTRACEEVENT._serialized_start=90823
-  _PRINTFTRACEEVENT._serialized_end=90866
-  _FUNCGRAPHENTRYFTRACEEVENT._serialized_start=90868
-  _FUNCGRAPHENTRYFTRACEEVENT._serialized_end=90924
-  _FUNCGRAPHEXITFTRACEEVENT._serialized_start=90926
-  _FUNCGRAPHEXITFTRACEEVENT._serialized_end=91033
-  _FWTPPERFETTOCOUNTERFTRACEEVENT._serialized_start=91035
-  _FWTPPERFETTOCOUNTERFTRACEEVENT._serialized_end=91151
-  _G2DTRACINGMARKWRITEFTRACEEVENT._serialized_start=91153
-  _G2DTRACINGMARKWRITEFTRACEEVENT._serialized_end=91241
-  _GENERICFTRACEEVENT._serialized_start=91244
-  _GENERICFTRACEEVENT._serialized_end=91438
-  _GENERICFTRACEEVENT_FIELD._serialized_start=91344
-  _GENERICFTRACEEVENT_FIELD._serialized_end=91438
-  _KPROBEEVENT._serialized_start=91441
-  _KPROBEEVENT._serialized_end=91631
-  _KPROBEEVENT_KPROBETYPE._serialized_start=91525
-  _KPROBEEVENT_KPROBETYPE._serialized_end=91631
-  _GOOGLEICCEVENTFTRACEEVENT._serialized_start=91633
-  _GOOGLEICCEVENTFTRACEEVENT._serialized_end=91694
-  _GOOGLEIRMEVENTFTRACEEVENT._serialized_start=91696
-  _GOOGLEIRMEVENTFTRACEEVENT._serialized_end=91757
-  _GPUMEMTOTALFTRACEEVENT._serialized_start=91759
-  _GPUMEMTOTALFTRACEEVENT._serialized_end=91826
-  _DRMSCHEDJOBFTRACEEVENT._serialized_start=91828
-  _DRMSCHEDJOBFTRACEEVENT._serialized_end=91950
-  _DRMRUNJOBFTRACEEVENT._serialized_start=91952
-  _DRMRUNJOBFTRACEEVENT._serialized_end=92072
-  _DRMSCHEDPROCESSJOBFTRACEEVENT._serialized_start=92074
-  _DRMSCHEDPROCESSJOBFTRACEEVENT._serialized_end=92120
-  _DRMSCHEDJOBADDDEPFTRACEEVENT._serialized_start=92122
-  _DRMSCHEDJOBADDDEPFTRACEEVENT._serialized_end=92224
-  _DRMSCHEDJOBDONEFTRACEEVENT._serialized_start=92226
-  _DRMSCHEDJOBDONEFTRACEEVENT._serialized_end=92298
-  _DRMSCHEDJOBQUEUEFTRACEEVENT._serialized_start=92301
-  _DRMSCHEDJOBQUEUEFTRACEEVENT._serialized_end=92461
-  _DRMSCHEDJOBRUNFTRACEEVENT._serialized_start=92464
-  _DRMSCHEDJOBRUNFTRACEEVENT._serialized_end=92622
-  _DRMSCHEDJOBUNSCHEDULABLEFTRACEEVENT._serialized_start=92624
-  _DRMSCHEDJOBUNSCHEDULABLEFTRACEEVENT._serialized_end=92733
-  _HYPENTERFTRACEEVENT._serialized_start=92735
-  _HYPENTERFTRACEEVENT._serialized_end=92756
-  _HYPEXITFTRACEEVENT._serialized_start=92758
-  _HYPEXITFTRACEEVENT._serialized_end=92778
-  _HOSTHCALLFTRACEEVENT._serialized_start=92780
-  _HOSTHCALLFTRACEEVENT._serialized_end=92831
-  _HOSTSMCFTRACEEVENT._serialized_start=92833
-  _HOSTSMCFTRACEEVENT._serialized_end=92884
-  _HOSTMEMABORTFTRACEEVENT._serialized_start=92886
-  _HOSTMEMABORTFTRACEEVENT._serialized_end=92938
-  _HOSTFFACALLFTRACEEVENT._serialized_start=92941
-  _HOSTFFACALLFTRACEEVENT._serialized_end=93076
-  _IOMMUIDMAPFTRACEEVENT._serialized_start=93078
-  _IOMMUIDMAPFTRACEEVENT._serialized_end=93141
-  _PSCIMEMPROTECTFTRACEEVENT._serialized_start=93143
-  _PSCIMEMPROTECTFTRACEEVENT._serialized_end=93198
-  _HYPERVISORHOSTHCALLFTRACEEVENT._serialized_start=93200
-  _HYPERVISORHOSTHCALLFTRACEEVENT._serialized_end=93261
-  _HYPERVISORHOSTSMCFTRACEEVENT._serialized_start=93263
-  _HYPERVISORHOSTSMCFTRACEEVENT._serialized_end=93324
-  _HYPERVISORHYPEXITFTRACEEVENT._serialized_start=93326
-  _HYPERVISORHYPEXITFTRACEEVENT._serialized_end=93356
-  _HYPERVISORIOMMUIDMAPFTRACEEVENT._serialized_start=93358
-  _HYPERVISORIOMMUIDMAPFTRACEEVENT._serialized_end=93431
-  _HYPERVISORPSCIMEMPROTECTFTRACEEVENT._serialized_start=93433
-  _HYPERVISORPSCIMEMPROTECTFTRACEEVENT._serialized_end=93498
-  _HYPERVISORHOSTMEMABORTFTRACEEVENT._serialized_start=93500
-  _HYPERVISORHOSTMEMABORTFTRACEEVENT._serialized_end=93562
-  _HYPERVISORHYPENTERFTRACEEVENT._serialized_start=93564
-  _HYPERVISORHYPENTERFTRACEEVENT._serialized_end=93595
-  _HYPERVISORIOMMUIDMAPCOMPLETEFTRACEEVENT._serialized_start=93597
-  _HYPERVISORIOMMUIDMAPCOMPLETEFTRACEEVENT._serialized_end=93651
-  _HYPERVISORVCPUILLEGALTRAPFTRACEEVENT._serialized_start=93653
-  _HYPERVISORVCPUILLEGALTRAPFTRACEEVENT._serialized_end=93704
-  _I2CREADFTRACEEVENT._serialized_start=93706
-  _I2CREADFTRACEEVENT._serialized_end=93804
-  _I2CWRITEFTRACEEVENT._serialized_start=93806
-  _I2CWRITEFTRACEEVENT._serialized_end=93918
-  _I2CRESULTFTRACEEVENT._serialized_start=93920
-  _I2CRESULTFTRACEEVENT._serialized_end=93992
-  _I2CREPLYFTRACEEVENT._serialized_start=93994
-  _I2CREPLYFTRACEEVENT._serialized_end=94106
-  _SMBUSREADFTRACEEVENT._serialized_start=94108
-  _SMBUSREADFTRACEEVENT._serialized_end=94214
-  _SMBUSWRITEFTRACEEVENT._serialized_start=94216
-  _SMBUSWRITEFTRACEEVENT._serialized_end=94336
-  _SMBUSRESULTFTRACEEVENT._serialized_start=94339
-  _SMBUSRESULTFTRACEEVENT._serialized_end=94480
-  _SMBUSREPLYFTRACEEVENT._serialized_start=94482
-  _SMBUSREPLYFTRACEEVENT._serialized_end=94602
-  _IONSTATFTRACEEVENT._serialized_start=94604
-  _IONSTATFTRACEEVENT._serialized_end=94681
-  _IPIENTRYFTRACEEVENT._serialized_start=94683
-  _IPIENTRYFTRACEEVENT._serialized_end=94720
-  _IPIEXITFTRACEEVENT._serialized_start=94722
-  _IPIEXITFTRACEEVENT._serialized_end=94758
-  _IPIRAISEFTRACEEVENT._serialized_start=94760
-  _IPIRAISEFTRACEEVENT._serialized_end=94818
-  _SOFTIRQENTRYFTRACEEVENT._serialized_start=94820
-  _SOFTIRQENTRYFTRACEEVENT._serialized_end=94858
-  _SOFTIRQEXITFTRACEEVENT._serialized_start=94860
-  _SOFTIRQEXITFTRACEEVENT._serialized_end=94897
-  _SOFTIRQRAISEFTRACEEVENT._serialized_start=94899
-  _SOFTIRQRAISEFTRACEEVENT._serialized_end=94937
-  _IRQHANDLERENTRYFTRACEEVENT._serialized_start=94939
-  _IRQHANDLERENTRYFTRACEEVENT._serialized_end=95011
-  _IRQHANDLEREXITFTRACEEVENT._serialized_start=95013
-  _IRQHANDLEREXITFTRACEEVENT._serialized_end=95066
-  _LOCALTIMERENTRYFTRACEEVENT._serialized_start=95068
-  _LOCALTIMERENTRYFTRACEEVENT._serialized_end=95112
-  _LOCALTIMEREXITFTRACEEVENT._serialized_start=95114
-  _LOCALTIMEREXITFTRACEEVENT._serialized_end=95157
-  _KGSLGPUFREQUENCYFTRACEEVENT._serialized_start=95159
-  _KGSLGPUFREQUENCYFTRACEEVENT._serialized_end=95222
-  _KGSLADRENOCMDBATCHQUEUEDFTRACEEVENT._serialized_start=95224
-  _KGSLADRENOCMDBATCHQUEUEDFTRACEEVENT._serialized_end=95337
-  _KGSLADRENOCMDBATCHSUBMITTEDFTRACEEVENT._serialized_start=95340
-  _KGSLADRENOCMDBATCHSUBMITTEDFTRACEEVENT._serialized_end=95589
-  _KGSLADRENOCMDBATCHSYNCFTRACEEVENT._serialized_start=95591
-  _KGSLADRENOCMDBATCHSYNCFTRACEEVENT._serialized_end=95686
-  _KGSLADRENOCMDBATCHRETIREDFTRACEEVENT._serialized_start=95689
-  _KGSLADRENOCMDBATCHRETIREDFTRACEEVENT._serialized_end=96030
-  _ALLOCPAGESIOMMUENDFTRACEEVENT._serialized_start=96032
-  _ALLOCPAGESIOMMUENDFTRACEEVENT._serialized_end=96097
-  _ALLOCPAGESIOMMUFAILFTRACEEVENT._serialized_start=96099
-  _ALLOCPAGESIOMMUFAILFTRACEEVENT._serialized_end=96165
-  _ALLOCPAGESIOMMUSTARTFTRACEEVENT._serialized_start=96167
-  _ALLOCPAGESIOMMUSTARTFTRACEEVENT._serialized_end=96234
-  _ALLOCPAGESSYSENDFTRACEEVENT._serialized_start=96236
-  _ALLOCPAGESSYSENDFTRACEEVENT._serialized_end=96299
-  _ALLOCPAGESSYSFAILFTRACEEVENT._serialized_start=96301
-  _ALLOCPAGESSYSFAILFTRACEEVENT._serialized_end=96365
-  _ALLOCPAGESSYSSTARTFTRACEEVENT._serialized_start=96367
-  _ALLOCPAGESSYSSTARTFTRACEEVENT._serialized_end=96432
-  _DMAALLOCCONTIGUOUSRETRYFTRACEEVENT._serialized_start=96434
-  _DMAALLOCCONTIGUOUSRETRYFTRACEEVENT._serialized_end=96485
-  _IOMMUMAPRANGEFTRACEEVENT._serialized_start=96487
-  _IOMMUMAPRANGEFTRACEEVENT._serialized_end=96570
-  _IOMMUSECPTBLMAPRANGEENDFTRACEEVENT._serialized_start=96572
-  _IOMMUSECPTBLMAPRANGEENDFTRACEEVENT._serialized_end=96674
-  _IOMMUSECPTBLMAPRANGESTARTFTRACEEVENT._serialized_start=96676
-  _IOMMUSECPTBLMAPRANGESTARTFTRACEEVENT._serialized_end=96780
-  _IONALLOCBUFFERENDFTRACEEVENT._serialized_start=96782
-  _IONALLOCBUFFERENDFTRACEEVENT._serialized_end=96894
-  _IONALLOCBUFFERFAILFTRACEEVENT._serialized_start=96897
-  _IONALLOCBUFFERFAILFTRACEEVENT._serialized_end=97025
-  _IONALLOCBUFFERFALLBACKFTRACEEVENT._serialized_start=97028
-  _IONALLOCBUFFERFALLBACKFTRACEEVENT._serialized_end=97160
-  _IONALLOCBUFFERSTARTFTRACEEVENT._serialized_start=97162
-  _IONALLOCBUFFERSTARTFTRACEEVENT._serialized_end=97276
-  _IONCPALLOCRETRYFTRACEEVENT._serialized_start=97278
-  _IONCPALLOCRETRYFTRACEEVENT._serialized_end=97321
-  _IONCPSECUREBUFFERENDFTRACEEVENT._serialized_start=97323
-  _IONCPSECUREBUFFERENDFTRACEEVENT._serialized_end=97418
-  _IONCPSECUREBUFFERSTARTFTRACEEVENT._serialized_start=97420
-  _IONCPSECUREBUFFERSTARTFTRACEEVENT._serialized_end=97517
-  _IONPREFETCHINGFTRACEEVENT._serialized_start=97519
-  _IONPREFETCHINGFTRACEEVENT._serialized_end=97559
-  _IONSECURECMAADDTOPOOLENDFTRACEEVENT._serialized_start=97561
-  _IONSECURECMAADDTOPOOLENDFTRACEEVENT._serialized_end=97652
-  _IONSECURECMAADDTOPOOLSTARTFTRACEEVENT._serialized_start=97654
-  _IONSECURECMAADDTOPOOLSTARTFTRACEEVENT._serialized_end=97747
-  _IONSECURECMAALLOCATEENDFTRACEEVENT._serialized_start=97749
-  _IONSECURECMAALLOCATEENDFTRACEEVENT._serialized_end=97847
-  _IONSECURECMAALLOCATESTARTFTRACEEVENT._serialized_start=97849
-  _IONSECURECMAALLOCATESTARTFTRACEEVENT._serialized_end=97949
-  _IONSECURECMASHRINKPOOLENDFTRACEEVENT._serialized_start=97951
-  _IONSECURECMASHRINKPOOLENDFTRACEEVENT._serialized_end=98033
-  _IONSECURECMASHRINKPOOLSTARTFTRACEEVENT._serialized_start=98035
-  _IONSECURECMASHRINKPOOLSTARTFTRACEEVENT._serialized_end=98119
-  _KFREEFTRACEEVENT._serialized_start=98121
-  _KFREEFTRACEEVENT._serialized_end=98171
-  _KMALLOCFTRACEEVENT._serialized_start=98173
-  _KMALLOCFTRACEEVENT._serialized_end=98284
-  _KMALLOCNODEFTRACEEVENT._serialized_start=98287
-  _KMALLOCNODEFTRACEEVENT._serialized_end=98416
-  _KMEMCACHEALLOCFTRACEEVENT._serialized_start=98418
-  _KMEMCACHEALLOCFTRACEEVENT._serialized_end=98536
-  _KMEMCACHEALLOCNODEFTRACEEVENT._serialized_start=98539
-  _KMEMCACHEALLOCNODEFTRACEEVENT._serialized_end=98675
-  _KMEMCACHEFREEFTRACEEVENT._serialized_start=98677
-  _KMEMCACHEFREEFTRACEEVENT._serialized_end=98735
-  _MIGRATEPAGESENDFTRACEEVENT._serialized_start=98737
-  _MIGRATEPAGESENDFTRACEEVENT._serialized_end=98779
-  _MIGRATEPAGESSTARTFTRACEEVENT._serialized_start=98781
-  _MIGRATEPAGESSTARTFTRACEEVENT._serialized_end=98825
-  _MIGRATERETRYFTRACEEVENT._serialized_start=98827
-  _MIGRATERETRYFTRACEEVENT._serialized_end=98867
-  _MMPAGEALLOCFTRACEEVENT._serialized_start=98869
-  _MMPAGEALLOCFTRACEEVENT._serialized_end=98975
-  _MMPAGEALLOCEXTFRAGFTRACEEVENT._serialized_start=98978
-  _MMPAGEALLOCEXTFRAGFTRACEEVENT._serialized_end=99164
-  _MMPAGEALLOCZONELOCKEDFTRACEEVENT._serialized_start=99166
-  _MMPAGEALLOCZONELOCKEDFTRACEEVENT._serialized_end=99263
-  _MMPAGEFREEFTRACEEVENT._serialized_start=99265
-  _MMPAGEFREEFTRACEEVENT._serialized_end=99330
-  _MMPAGEFREEBATCHEDFTRACEEVENT._serialized_start=99332
-  _MMPAGEFREEBATCHEDFTRACEEVENT._serialized_end=99403
-  _MMPAGEPCPUDRAINFTRACEEVENT._serialized_start=99405
-  _MMPAGEPCPUDRAINFTRACEEVENT._serialized_end=99496
-  _RSSSTATFTRACEEVENT._serialized_start=99498
-  _RSSSTATFTRACEEVENT._serialized_end=99577
-  _IONHEAPSHRINKFTRACEEVENT._serialized_start=99579
-  _IONHEAPSHRINKFTRACEEVENT._serialized_end=99662
-  _IONHEAPGROWFTRACEEVENT._serialized_start=99664
-  _IONHEAPGROWFTRACEEVENT._serialized_end=99745
-  _IONBUFFERCREATEFTRACEEVENT._serialized_start=99747
-  _IONBUFFERCREATEFTRACEEVENT._serialized_end=99802
-  _IONBUFFERDESTROYFTRACEEVENT._serialized_start=99804
-  _IONBUFFERDESTROYFTRACEEVENT._serialized_end=99860
-  _MMALLOCCONTIGMIGRATERANGEINFOFTRACEEVENT._serialized_start=99863
-  _MMALLOCCONTIGMIGRATERANGEINFOFTRACEEVENT._serialized_end=100016
-  _DMABUFRSSSTATFTRACEEVENT._serialized_start=100018
-  _DMABUFRSSSTATFTRACEEVENT._serialized_end=100091
-  _KVMACCESSFAULTFTRACEEVENT._serialized_start=100093
-  _KVMACCESSFAULTFTRACEEVENT._serialized_end=100133
-  _KVMACKIRQFTRACEEVENT._serialized_start=100135
-  _KVMACKIRQFTRACEEVENT._serialized_end=100187
-  _KVMAGEHVAFTRACEEVENT._serialized_start=100189
-  _KVMAGEHVAFTRACEEVENT._serialized_end=100239
-  _KVMAGEPAGEFTRACEEVENT._serialized_start=100241
-  _KVMAGEPAGEFTRACEEVENT._serialized_end=100325
-  _KVMARMCLEARDEBUGFTRACEEVENT._serialized_start=100327
-  _KVMARMCLEARDEBUGFTRACEEVENT._serialized_end=100377
-  _KVMARMSETDREG32FTRACEEVENT._serialized_start=100379
-  _KVMARMSETDREG32FTRACEEVENT._serialized_end=100436
-  _KVMARMSETREGSETFTRACEEVENT._serialized_start=100438
-  _KVMARMSETREGSETFTRACEEVENT._serialized_end=100493
-  _KVMARMSETUPDEBUGFTRACEEVENT._serialized_start=100495
-  _KVMARMSETUPDEBUGFTRACEEVENT._serialized_end=100559
-  _KVMENTRYFTRACEEVENT._serialized_start=100561
-  _KVMENTRYFTRACEEVENT._serialized_end=100599
-  _KVMEXITFTRACEEVENT._serialized_start=100601
-  _KVMEXITFTRACEEVENT._serialized_end=100667
-  _KVMFPUFTRACEEVENT._serialized_start=100669
-  _KVMFPUFTRACEEVENT._serialized_end=100702
-  _KVMGETTIMERMAPFTRACEEVENT._serialized_start=100704
-  _KVMGETTIMERMAPFTRACEEVENT._serialized_end=100815
-  _KVMGUESTFAULTFTRACEEVENT._serialized_start=100817
-  _KVMGUESTFAULTFTRACEEVENT._serialized_end=100901
-  _KVMHANDLESYSREGFTRACEEVENT._serialized_start=100903
-  _KVMHANDLESYSREGFTRACEEVENT._serialized_end=100944
-  _KVMHVCARM64FTRACEEVENT._serialized_start=100946
-  _KVMHVCARM64FTRACEEVENT._serialized_end=101012
-  _KVMIRQLINEFTRACEEVENT._serialized_start=101014
-  _KVMIRQLINEFTRACEEVENT._serialized_end=101101
-  _KVMMMIOFTRACEEVENT._serialized_start=101103
-  _KVMMMIOFTRACEEVENT._serialized_end=101176
-  _KVMMMIOEMULATEFTRACEEVENT._serialized_start=101178
-  _KVMMMIOEMULATEFTRACEEVENT._serialized_end=101251
-  _KVMSETGUESTDEBUGFTRACEEVENT._serialized_start=101253
-  _KVMSETGUESTDEBUGFTRACEEVENT._serialized_end=101317
-  _KVMSETIRQFTRACEEVENT._serialized_start=101319
-  _KVMSETIRQFTRACEEVENT._serialized_end=101392
-  _KVMSETSPTEHVAFTRACEEVENT._serialized_start=101394
-  _KVMSETSPTEHVAFTRACEEVENT._serialized_end=101433
-  _KVMSETWAYFLUSHFTRACEEVENT._serialized_start=101435
-  _KVMSETWAYFLUSHFTRACEEVENT._serialized_end=101494
-  _KVMSYSACCESSFTRACEEVENT._serialized_start=101497
-  _KVMSYSACCESSFTRACEEVENT._serialized_end=101636
-  _KVMTESTAGEHVAFTRACEEVENT._serialized_start=101638
-  _KVMTESTAGEHVAFTRACEEVENT._serialized_end=101677
-  _KVMTIMEREMULATEFTRACEEVENT._serialized_start=101679
-  _KVMTIMEREMULATEFTRACEEVENT._serialized_end=101747
-  _KVMTIMERHRTIMEREXPIREFTRACEEVENT._serialized_start=101749
-  _KVMTIMERHRTIMEREXPIREFTRACEEVENT._serialized_end=101802
-  _KVMTIMERRESTORESTATEFTRACEEVENT._serialized_start=101804
-  _KVMTIMERRESTORESTATEFTRACEEVENT._serialized_end=101883
-  _KVMTIMERSAVESTATEFTRACEEVENT._serialized_start=101885
-  _KVMTIMERSAVESTATEFTRACEEVENT._serialized_end=101961
-  _KVMTIMERUPDATEIRQFTRACEEVENT._serialized_start=101963
-  _KVMTIMERUPDATEIRQFTRACEEVENT._serialized_end=102038
-  _KVMTOGGLECACHEFTRACEEVENT._serialized_start=102040
-  _KVMTOGGLECACHEFTRACEEVENT._serialized_end=102110
-  _KVMUNMAPHVARANGEFTRACEEVENT._serialized_start=102112
-  _KVMUNMAPHVARANGEFTRACEEVENT._serialized_end=102169
-  _KVMUSERSPACEEXITFTRACEEVENT._serialized_start=102171
-  _KVMUSERSPACEEXITFTRACEEVENT._serialized_end=102216
-  _KVMVCPUWAKEUPFTRACEEVENT._serialized_start=102218
-  _KVMVCPUWAKEUPFTRACEEVENT._serialized_end=102287
-  _KVMWFXARM64FTRACEEVENT._serialized_start=102289
-  _KVMWFXARM64FTRACEEVENT._serialized_end=102346
-  _TRAPREGFTRACEEVENT._serialized_start=102348
-  _TRAPREGFTRACEEVENT._serialized_end=102432
-  _VGICUPDATEIRQPENDINGFTRACEEVENT._serialized_start=102434
-  _VGICUPDATEIRQPENDINGFTRACEEVENT._serialized_end=102512
-  _LOWMEMORYKILLFTRACEEVENT._serialized_start=102514
-  _LOWMEMORYKILLFTRACEEVENT._serialized_end=102630
-  _LWISTRACINGMARKWRITEFTRACEEVENT._serialized_start=102632
-  _LWISTRACINGMARKWRITEFTRACEEVENT._serialized_end=102745
-  _MALITRACINGMARKWRITEFTRACEEVENT._serialized_start=102747
-  _MALITRACINGMARKWRITEFTRACEEVENT._serialized_end=102836
-  _MALIMALIKCPUCQSSETFTRACEEVENT._serialized_start=102838
-  _MALIMALIKCPUCQSSETFTRACEEVENT._serialized_end=102955
-  _MALIMALIKCPUCQSWAITSTARTFTRACEEVENT._serialized_start=102957
-  _MALIMALIKCPUCQSWAITSTARTFTRACEEVENT._serialized_end=103080
-  _MALIMALIKCPUCQSWAITENDFTRACEEVENT._serialized_start=103082
-  _MALIMALIKCPUCQSWAITENDFTRACEEVENT._serialized_end=103203
-  _MALIMALIKCPUFENCESIGNALFTRACEEVENT._serialized_start=103205
-  _MALIMALIKCPUFENCESIGNALFTRACEEVENT._serialized_end=103327
-  _MALIMALIKCPUFENCEWAITSTARTFTRACEEVENT._serialized_start=103329
-  _MALIMALIKCPUFENCEWAITSTARTFTRACEEVENT._serialized_end=103454
-  _MALIMALIKCPUFENCEWAITENDFTRACEEVENT._serialized_start=103456
-  _MALIMALIKCPUFENCEWAITENDFTRACEEVENT._serialized_end=103579
-  _MALIMALICSFINTERRUPTSTARTFTRACEEVENT._serialized_start=103581
-  _MALIMALICSFINTERRUPTSTARTFTRACEEVENT._serialized_end=103673
-  _MALIMALICSFINTERRUPTENDFTRACEEVENT._serialized_start=103675
-  _MALIMALICSFINTERRUPTENDFTRACEEVENT._serialized_end=103765
-  _MALIMALIPMMCUHCTLCORESDOWNSCALENOTIFYPENDFTRACEEVENT._serialized_start=103767
-  _MALIMALIPMMCUHCTLCORESDOWNSCALENOTIFYPENDFTRACEEVENT._serialized_end=103875
-  _MALIMALIPMMCUHCTLCORESNOTIFYPENDFTRACEEVENT._serialized_start=103877
-  _MALIMALIPMMCUHCTLCORESNOTIFYPENDFTRACEEVENT._serialized_end=103976
-  _MALIMALIPMMCUHCTLCOREINACTIVEPENDFTRACEEVENT._serialized_start=103978
-  _MALIMALIPMMCUHCTLCOREINACTIVEPENDFTRACEEVENT._serialized_end=104078
-  _MALIMALIPMMCUHCTLMCUONRECHECKFTRACEEVENT._serialized_start=104080
-  _MALIMALIPMMCUHCTLMCUONRECHECKFTRACEEVENT._serialized_end=104176
-  _MALIMALIPMMCUHCTLSHADERSCOREOFFPENDFTRACEEVENT._serialized_start=104178
-  _MALIMALIPMMCUHCTLSHADERSCOREOFFPENDFTRACEEVENT._serialized_end=104280
-  _MALIMALIPMMCUHCTLSHADERSPENDOFFFTRACEEVENT._serialized_start=104282
-  _MALIMALIPMMCUHCTLSHADERSPENDOFFFTRACEEVENT._serialized_end=104380
-  _MALIMALIPMMCUHCTLSHADERSPENDONFTRACEEVENT._serialized_start=104382
-  _MALIMALIPMMCUHCTLSHADERSPENDONFTRACEEVENT._serialized_end=104479
-  _MALIMALIPMMCUHCTLSHADERSREADYOFFFTRACEEVENT._serialized_start=104481
-  _MALIMALIPMMCUHCTLSHADERSREADYOFFFTRACEEVENT._serialized_end=104580
-  _MALIMALIPMMCUINSLEEPFTRACEEVENT._serialized_start=104582
-  _MALIMALIPMMCUINSLEEPFTRACEEVENT._serialized_end=104669
-  _MALIMALIPMMCUOFFFTRACEEVENT._serialized_start=104671
-  _MALIMALIPMMCUOFFFTRACEEVENT._serialized_end=104754
-  _MALIMALIPMMCUONFTRACEEVENT._serialized_start=104756
-  _MALIMALIPMMCUONFTRACEEVENT._serialized_end=104838
-  _MALIMALIPMMCUONCOREATTRUPDATEPENDFTRACEEVENT._serialized_start=104840
-  _MALIMALIPMMCUONCOREATTRUPDATEPENDFTRACEEVENT._serialized_end=104940
-  _MALIMALIPMMCUONGLBREINITPENDFTRACEEVENT._serialized_start=104942
-  _MALIMALIPMMCUONGLBREINITPENDFTRACEEVENT._serialized_end=105037
-  _MALIMALIPMMCUONHALTFTRACEEVENT._serialized_start=105039
-  _MALIMALIPMMCUONHALTFTRACEEVENT._serialized_end=105125
-  _MALIMALIPMMCUONHWCNTDISABLEFTRACEEVENT._serialized_start=105127
-  _MALIMALIPMMCUONHWCNTDISABLEFTRACEEVENT._serialized_end=105221
-  _MALIMALIPMMCUONHWCNTENABLEFTRACEEVENT._serialized_start=105223
-  _MALIMALIPMMCUONHWCNTENABLEFTRACEEVENT._serialized_end=105316
-  _MALIMALIPMMCUONPENDHALTFTRACEEVENT._serialized_start=105318
-  _MALIMALIPMMCUONPENDHALTFTRACEEVENT._serialized_end=105408
-  _MALIMALIPMMCUONPENDSLEEPFTRACEEVENT._serialized_start=105410
-  _MALIMALIPMMCUONPENDSLEEPFTRACEEVENT._serialized_end=105501
-  _MALIMALIPMMCUONSLEEPINITIATEFTRACEEVENT._serialized_start=105503
-  _MALIMALIPMMCUONSLEEPINITIATEFTRACEEVENT._serialized_end=105598
-  _MALIMALIPMMCUPENDOFFFTRACEEVENT._serialized_start=105600
-  _MALIMALIPMMCUPENDOFFFTRACEEVENT._serialized_end=105687
-  _MALIMALIPMMCUPENDONRELOADFTRACEEVENT._serialized_start=105689
-  _MALIMALIPMMCUPENDONRELOADFTRACEEVENT._serialized_end=105781
-  _MALIMALIPMMCUPOWERDOWNFTRACEEVENT._serialized_start=105783
-  _MALIMALIPMMCUPOWERDOWNFTRACEEVENT._serialized_end=105872
-  _MALIMALIPMMCURESETWAITFTRACEEVENT._serialized_start=105874
-  _MALIMALIPMMCURESETWAITFTRACEEVENT._serialized_end=105963
-  _MALIGPUPOWERSTATEFTRACEEVENT._serialized_start=105965
-  _MALIGPUPOWERSTATEFTRACEEVENT._serialized_end=106052
-  _MDPCMDKICKOFFFTRACEEVENT._serialized_start=106054
-  _MDPCMDKICKOFFFTRACEEVENT._serialized_end=106118
-  _MDPCOMMITFTRACEEVENT._serialized_start=106120
-  _MDPCOMMITFTRACEEVENT._serialized_end=106210
-  _MDPPERFSETOTFTRACEEVENT._serialized_start=106212
-  _MDPPERFSETOTFTRACEEVENT._serialized_end=106303
-  _MDPSSPPCHANGEFTRACEEVENT._serialized_start=106306
-  _MDPSSPPCHANGEFTRACEEVENT._serialized_end=106574
-  _TRACINGMARKWRITEFTRACEEVENT._serialized_start=106576
-  _TRACINGMARKWRITEFTRACEEVENT._serialized_end=106659
-  _MDPCMDPINGPONGDONEFTRACEEVENT._serialized_start=106661
-  _MDPCMDPINGPONGDONEFTRACEEVENT._serialized_end=106761
-  _MDPCOMPAREBWFTRACEEVENT._serialized_start=106764
-  _MDPCOMPAREBWFTRACEEVENT._serialized_end=106928
-  _MDPPERFSETPANICLUTSFTRACEEVENT._serialized_start=106930
-  _MDPPERFSETPANICLUTSFTRACEEVENT._serialized_end=107042
-  _MDPSSPPSETFTRACEEVENT._serialized_start=107045
-  _MDPSSPPSETFTRACEEVENT._serialized_end=107310
-  _MDPCMDREADPTRDONEFTRACEEVENT._serialized_start=107312
-  _MDPCMDREADPTRDONEFTRACEEVENT._serialized_end=107377
-  _MDPMISRCRCFTRACEEVENT._serialized_start=107379
-  _MDPMISRCRCFTRACEEVENT._serialized_end=107452
-  _MDPPERFSETQOSLUTSFTRACEEVENT._serialized_start=107454
-  _MDPPERFSETQOSLUTSFTRACEEVENT._serialized_end=107579
-  _MDPTRACECOUNTERFTRACEEVENT._serialized_start=107581
-  _MDPTRACECOUNTERFTRACEEVENT._serialized_end=107659
-  _MDPCMDRELEASEBWFTRACEEVENT._serialized_start=107661
-  _MDPCMDRELEASEBWFTRACEEVENT._serialized_end=107706
-  _MDPMIXERUPDATEFTRACEEVENT._serialized_start=107708
-  _MDPMIXERUPDATEFTRACEEVENT._serialized_end=107754
-  _MDPPERFSETWMLEVELSFTRACEEVENT._serialized_start=107757
-  _MDPPERFSETWMLEVELSFTRACEEVENT._serialized_end=107917
-  _MDPVIDEOUNDERRUNDONEFTRACEEVENT._serialized_start=107919
-  _MDPVIDEOUNDERRUNDONEFTRACEEVENT._serialized_end=107991
-  _MDPCMDWAITPINGPONGFTRACEEVENT._serialized_start=107993
-  _MDPCMDWAITPINGPONGFTRACEEVENT._serialized_end=108062
-  _MDPPERFPREFILLCALCFTRACEEVENT._serialized_start=108065
-  _MDPPERFPREFILLCALCFTRACEEVENT._serialized_end=108271
-  _MDPPERFUPDATEBUSFTRACEEVENT._serialized_start=108273
-  _MDPPERFUPDATEBUSFTRACEEVENT._serialized_end=108354
-  _ROTATORBWAOASCONTEXTFTRACEEVENT._serialized_start=108356
-  _ROTATORBWAOASCONTEXTFTRACEEVENT._serialized_end=108404
-  _MMEVENTRECORDFTRACEEVENT._serialized_start=108406
-  _MMEVENTRECORDFTRACEEVENT._serialized_end=108495
-  _NETIFRECEIVESKBFTRACEEVENT._serialized_start=108497
-  _NETIFRECEIVESKBFTRACEEVENT._serialized_end=108569
-  _NETDEVXMITFTRACEEVENT._serialized_start=108571
-  _NETDEVXMITFTRACEEVENT._serialized_end=108650
-  _NAPIGRORECEIVEENTRYFTRACEEVENT._serialized_start=108653
-  _NAPIGRORECEIVEENTRYFTRACEEVENT._serialized_end=109032
-  _NAPIGRORECEIVEEXITFTRACEEVENT._serialized_start=109034
-  _NAPIGRORECEIVEEXITFTRACEEVENT._serialized_end=109078
-  _OOMSCOREADJUPDATEFTRACEEVENT._serialized_start=109080
-  _OOMSCOREADJUPDATEFTRACEEVENT._serialized_end=109160
-  _MARKVICTIMFTRACEEVENT._serialized_start=109162
-  _MARKVICTIMFTRACEEVENT._serialized_end=109198
-  _DSICMDFIFOSTATUSFTRACEEVENT._serialized_start=109200
-  _DSICMDFIFOSTATUSFTRACEEVENT._serialized_end=109262
-  _DSIRXFTRACEEVENT._serialized_start=109264
-  _DSIRXFTRACEEVENT._serialized_end=109311
-  _DSITXFTRACEEVENT._serialized_start=109313
-  _DSITXFTRACEEVENT._serialized_end=109375
-  _PANELWRITEGENERICFTRACEEVENT._serialized_start=109377
-  _PANELWRITEGENERICFTRACEEVENT._serialized_end=109504
-  _SCHEDSWITCHWITHCTRSFTRACEEVENT._serialized_start=109507
-  _SCHEDSWITCHWITHCTRSFTRACEEVENT._serialized_end=109895
-  _PIXELMMKSWAPDWAKEFTRACEEVENT._serialized_start=109897
-  _PIXELMMKSWAPDWAKEFTRACEEVENT._serialized_end=109945
-  _PIXELMMKSWAPDDONEFTRACEEVENT._serialized_start=109948
-  _PIXELMMKSWAPDDONEFTRACEEVENT._serialized_end=110081
-  _CPUFREQUENCYFTRACEEVENT._serialized_start=110083
-  _CPUFREQUENCYFTRACEEVENT._serialized_end=110139
-  _CPUFREQUENCYLIMITSFTRACEEVENT._serialized_start=110141
-  _CPUFREQUENCYLIMITSFTRACEEVENT._serialized_end=110224
-  _CPUIDLEFTRACEEVENT._serialized_start=110226
-  _CPUIDLEFTRACEEVENT._serialized_end=110277
-  _CLOCKENABLEFTRACEEVENT._serialized_start=110279
-  _CLOCKENABLEFTRACEEVENT._serialized_end=110348
-  _CLOCKDISABLEFTRACEEVENT._serialized_start=110350
-  _CLOCKDISABLEFTRACEEVENT._serialized_end=110420
-  _CLOCKSETRATEFTRACEEVENT._serialized_start=110422
-  _CLOCKSETRATEFTRACEEVENT._serialized_end=110492
-  _SUSPENDRESUMEFTRACEEVENT._serialized_start=110494
-  _SUSPENDRESUMEFTRACEEVENT._serialized_end=110564
-  _GPUFREQUENCYFTRACEEVENT._serialized_start=110566
-  _GPUFREQUENCYFTRACEEVENT._serialized_end=110622
-  _WAKEUPSOURCEACTIVATEFTRACEEVENT._serialized_start=110624
-  _WAKEUPSOURCEACTIVATEFTRACEEVENT._serialized_end=110686
-  _WAKEUPSOURCEDEACTIVATEFTRACEEVENT._serialized_start=110688
-  _WAKEUPSOURCEDEACTIVATEFTRACEEVENT._serialized_end=110752
-  _GPUWORKPERIODFTRACEEVENT._serialized_start=110755
-  _GPUWORKPERIODFTRACEEVENT._serialized_end=110888
-  _DEVICEPMCALLBACKSTARTFTRACEEVENT._serialized_start=110890
-  _DEVICEPMCALLBACKSTARTFTRACEEVENT._serialized_end=111003
-  _DEVICEPMCALLBACKENDFTRACEEVENT._serialized_start=111005
-  _DEVICEPMCALLBACKENDFTRACEEVENT._serialized_end=111084
-  _CONSOLEFTRACEEVENT._serialized_start=111086
-  _CONSOLEFTRACEEVENT._serialized_end=111119
-  _SYSENTERFTRACEEVENT._serialized_start=111121
-  _SYSENTERFTRACEEVENT._serialized_end=111168
-  _SYSEXITFTRACEEVENT._serialized_start=111170
-  _SYSEXITFTRACEEVENT._serialized_end=111215
-  _REGULATORDISABLEFTRACEEVENT._serialized_start=111217
-  _REGULATORDISABLEFTRACEEVENT._serialized_end=111260
-  _REGULATORDISABLECOMPLETEFTRACEEVENT._serialized_start=111262
-  _REGULATORDISABLECOMPLETEFTRACEEVENT._serialized_end=111313
-  _REGULATORENABLEFTRACEEVENT._serialized_start=111315
-  _REGULATORENABLEFTRACEEVENT._serialized_end=111357
-  _REGULATORENABLECOMPLETEFTRACEEVENT._serialized_start=111359
-  _REGULATORENABLECOMPLETEFTRACEEVENT._serialized_end=111409
-  _REGULATORENABLEDELAYFTRACEEVENT._serialized_start=111411
-  _REGULATORENABLEDELAYFTRACEEVENT._serialized_end=111458
-  _REGULATORSETVOLTAGEFTRACEEVENT._serialized_start=111460
-  _REGULATORSETVOLTAGEFTRACEEVENT._serialized_end=111532
-  _REGULATORSETVOLTAGECOMPLETEFTRACEEVENT._serialized_start=111534
-  _REGULATORSETVOLTAGECOMPLETEFTRACEEVENT._serialized_end=111601
-  _RPMSTATUSFTRACEEVENT._serialized_start=111603
-  _RPMSTATUSFTRACEEVENT._serialized_end=111655
-  _SAMSUNGTRACINGMARKWRITEFTRACEEVENT._serialized_start=111657
-  _SAMSUNGTRACINGMARKWRITEFTRACEEVENT._serialized_end=111782
-  _SCHEDSWITCHFTRACEEVENT._serialized_start=111785
-  _SCHEDSWITCHFTRACEEVENT._serialized_end=111941
-  _SCHEDWAKEUPFTRACEEVENT._serialized_start=111943
-  _SCHEDWAKEUPFTRACEEVENT._serialized_end=112045
-  _SCHEDBLOCKEDREASONFTRACEEVENT._serialized_start=112047
-  _SCHEDBLOCKEDREASONFTRACEEVENT._serialized_end=112124
-  _SCHEDCPUHOTPLUGFTRACEEVENT._serialized_start=112126
-  _SCHEDCPUHOTPLUGFTRACEEVENT._serialized_end=112207
-  _SCHEDWAKINGFTRACEEVENT._serialized_start=112209
-  _SCHEDWAKINGFTRACEEVENT._serialized_end=112311
-  _SCHEDWAKEUPNEWFTRACEEVENT._serialized_start=112313
-  _SCHEDWAKEUPNEWFTRACEEVENT._serialized_end=112418
-  _SCHEDPROCESSEXECFTRACEEVENT._serialized_start=112420
-  _SCHEDPROCESSEXECFTRACEEVENT._serialized_end=112497
-  _SCHEDPROCESSEXITFTRACEEVENT._serialized_start=112499
-  _SCHEDPROCESSEXITFTRACEEVENT._serialized_end=112583
-  _SCHEDPROCESSFORKFTRACEEVENT._serialized_start=112585
-  _SCHEDPROCESSFORKFTRACEEVENT._serialized_end=112694
-  _SCHEDPROCESSFREEFTRACEEVENT._serialized_start=112696
-  _SCHEDPROCESSFREEFTRACEEVENT._serialized_end=112766
-  _SCHEDPROCESSHANGFTRACEEVENT._serialized_start=112768
-  _SCHEDPROCESSHANGFTRACEEVENT._serialized_end=112824
-  _SCHEDPROCESSWAITFTRACEEVENT._serialized_start=112826
-  _SCHEDPROCESSWAITFTRACEEVENT._serialized_end=112896
-  _SCHEDPISETPRIOFTRACEEVENT._serialized_start=112898
-  _SCHEDPISETPRIOFTRACEEVENT._serialized_end=112986
-  _SCHEDCPUUTILCFSFTRACEEVENT._serialized_start=112989
-  _SCHEDCPUUTILCFSFTRACEEVENT._serialized_end=113317
-  _SCHEDMIGRATETASKFTRACEEVENT._serialized_start=113320
-  _SCHEDMIGRATETASKFTRACEEVENT._serialized_end=113457
-  _SCHEDWAKEUPTASKATTRFTRACEEVENT._serialized_start=113459
-  _SCHEDWAKEUPTASKATTRFTRACEEVENT._serialized_end=113583
-  _SCMCALLSTARTFTRACEEVENT._serialized_start=113585
-  _SCMCALLSTARTFTRACEEVENT._serialized_end=113651
-  _SCMCALLENDFTRACEEVENT._serialized_start=113653
-  _SCMCALLENDFTRACEEVENT._serialized_end=113676
-  _SCSIDISPATCHCMDERRORFTRACEEVENT._serialized_start=113679
-  _SCSIDISPATCHCMDERRORFTRACEEVENT._serialized_end=113931
-  _SCSIDISPATCHCMDTIMEOUTFTRACEEVENT._serialized_start=113934
-  _SCSIDISPATCHCMDTIMEOUTFTRACEEVENT._serialized_end=114237
-  _SCSIEHWAKEUPFTRACEEVENT._serialized_start=114239
-  _SCSIEHWAKEUPFTRACEEVENT._serialized_end=114281
-  _SDETRACINGMARKWRITEFTRACEEVENT._serialized_start=114283
-  _SDETRACINGMARKWRITEFTRACEEVENT._serialized_end=114404
-  _SDESDEEVTLOGFTRACEEVENT._serialized_start=114406
-  _SDESDEEVTLOGFTRACEEVENT._serialized_end=114480
-  _SDESDEPERFCALCCRTCFTRACEEVENT._serialized_start=114483
-  _SDESDEPERFCALCCRTCFTRACEEVENT._serialized_end=114663
-  _SDESDEPERFCRTCUPDATEFTRACEEVENT._serialized_start=114666
-  _SDESDEPERFCRTCUPDATEFTRACEEVENT._serialized_end=114949
-  _SDESDEPERFSETQOSLUTSFTRACEEVENT._serialized_start=114951
-  _SDESDEPERFSETQOSLUTSFTRACEEVENT._serialized_end=115067
-  _SDESDEPERFUPDATEBUSFTRACEEVENT._serialized_start=115069
-  _SDESDEPERFUPDATEBUSFTRACEEVENT._serialized_end=115169
-  _SIGNALDELIVERFTRACEEVENT._serialized_start=115171
-  _SIGNALDELIVERFTRACEEVENT._serialized_end=115242
-  _SIGNALGENERATEFTRACEEVENT._serialized_start=115244
-  _SIGNALGENERATEFTRACEEVENT._serialized_end=115356
-  _KFREESKBFTRACEEVENT._serialized_start=115358
-  _KFREESKBFTRACEEVENT._serialized_end=115432
-  _INETSOCKSETSTATEFTRACEEVENT._serialized_start=115435
-  _INETSOCKSETSTATEFTRACEEVENT._serialized_end=115610
-  _SYNCPTFTRACEEVENT._serialized_start=115612
-  _SYNCPTFTRACEEVENT._serialized_end=115664
-  _SYNCTIMELINEFTRACEEVENT._serialized_start=115666
-  _SYNCTIMELINEFTRACEEVENT._serialized_end=115720
-  _SYNCWAITFTRACEEVENT._serialized_start=115722
-  _SYNCWAITFTRACEEVENT._serialized_end=115788
-  _RSSSTATTHROTTLEDFTRACEEVENT._serialized_start=115790
-  _RSSSTATTHROTTLEDFTRACEEVENT._serialized_end=115878
-  _SUSPENDRESUMEMINIMALFTRACEEVENT._serialized_start=115880
-  _SUSPENDRESUMEMINIMALFTRACEEVENT._serialized_end=115928
-  _ZEROFTRACEEVENT._serialized_start=115930
-  _ZEROFTRACEEVENT._serialized_end=116003
-  _TASKNEWTASKFTRACEEVENT._serialized_start=116005
-  _TASKNEWTASKFTRACEEVENT._serialized_end=116100
-  _TASKRENAMEFTRACEEVENT._serialized_start=116102
-  _TASKRENAMEFTRACEEVENT._serialized_end=116195
-  _TCPRETRANSMITSKBFTRACEEVENT._serialized_start=116198
-  _TCPRETRANSMITSKBFTRACEEVENT._serialized_end=116335
-  _THERMALTEMPERATUREFTRACEEVENT._serialized_start=116337
-  _THERMALTEMPERATUREFTRACEEVENT._serialized_end=116435
-  _CDEVUPDATEFTRACEEVENT._serialized_start=116437
-  _CDEVUPDATEFTRACEEVENT._serialized_end=116490
-  _THERMALEXYNOSACPMBULKFTRACEEVENT._serialized_start=116493
-  _THERMALEXYNOSACPMBULKFTRACEEVENT._serialized_end=116721
-  _THERMALEXYNOSACPMHIGHOVERHEADFTRACEEVENT._serialized_start=116724
-  _THERMALEXYNOSACPMHIGHOVERHEADFTRACEEVENT._serialized_end=116886
-  _HRTIMERSTARTFTRACEEVENT._serialized_start=116888
-  _HRTIMERSTARTFTRACEEVENT._serialized_end=117000
-  _HRTIMERCANCELFTRACEEVENT._serialized_start=117002
-  _HRTIMERCANCELFTRACEEVENT._serialized_end=117045
-  _HRTIMEREXPIREENTRYFTRACEEVENT._serialized_start=117047
-  _HRTIMEREXPIREENTRYFTRACEEVENT._serialized_end=117126
-  _HRTIMEREXPIREEXITFTRACEEVENT._serialized_start=117128
-  _HRTIMEREXPIREEXITFTRACEEVENT._serialized_end=117175
-  _TIMERSTARTFTRACEEVENT._serialized_start=117178
-  _TIMERSTARTFTRACEEVENT._serialized_end=117322
-  _TIMERCANCELFTRACEEVENT._serialized_start=117324
-  _TIMERCANCELFTRACEEVENT._serialized_end=117363
-  _TIMEREXPIREENTRYFTRACEEVENT._serialized_start=117365
-  _TIMEREXPIREENTRYFTRACEEVENT._serialized_end=117457
-  _TIMEREXPIREEXITFTRACEEVENT._serialized_start=117459
-  _TIMEREXPIREEXITFTRACEEVENT._serialized_end=117502
-  _TRUSTYSMCFTRACEEVENT._serialized_start=117504
-  _TRUSTYSMCFTRACEEVENT._serialized_end=117574
-  _TRUSTYSMCDONEFTRACEEVENT._serialized_start=117576
-  _TRUSTYSMCDONEFTRACEEVENT._serialized_end=117615
-  _TRUSTYSTDCALL32FTRACEEVENT._serialized_start=117617
-  _TRUSTYSTDCALL32FTRACEEVENT._serialized_end=117693
-  _TRUSTYSTDCALL32DONEFTRACEEVENT._serialized_start=117695
-  _TRUSTYSTDCALL32DONEFTRACEEVENT._serialized_end=117740
-  _TRUSTYSHAREMEMORYFTRACEEVENT._serialized_start=117742
-  _TRUSTYSHAREMEMORYFTRACEEVENT._serialized_end=117814
-  _TRUSTYSHAREMEMORYDONEFTRACEEVENT._serialized_start=117816
-  _TRUSTYSHAREMEMORYDONEFTRACEEVENT._serialized_end=117921
-  _TRUSTYRECLAIMMEMORYFTRACEEVENT._serialized_start=117923
-  _TRUSTYRECLAIMMEMORYFTRACEEVENT._serialized_end=117967
-  _TRUSTYRECLAIMMEMORYDONEFTRACEEVENT._serialized_start=117969
-  _TRUSTYRECLAIMMEMORYDONEFTRACEEVENT._serialized_end=118030
-  _TRUSTYIRQFTRACEEVENT._serialized_start=118032
-  _TRUSTYIRQFTRACEEVENT._serialized_end=118067
-  _TRUSTYIPCHANDLEEVENTFTRACEEVENT._serialized_start=118069
-  _TRUSTYIPCHANDLEEVENTFTRACEEVENT._serialized_end=118152
-  _TRUSTYIPCCONNECTFTRACEEVENT._serialized_start=118154
-  _TRUSTYIPCCONNECTFTRACEEVENT._serialized_end=118226
-  _TRUSTYIPCCONNECTENDFTRACEEVENT._serialized_start=118228
-  _TRUSTYIPCCONNECTENDFTRACEEVENT._serialized_end=118302
-  _TRUSTYIPCWRITEFTRACEEVENT._serialized_start=118305
-  _TRUSTYIPCWRITEFTRACEEVENT._serialized_end=118435
-  _TRUSTYIPCPOLLFTRACEEVENT._serialized_start=118437
-  _TRUSTYIPCPOLLFTRACEEVENT._serialized_end=118514
-  _TRUSTYIPCREADFTRACEEVENT._serialized_start=118516
-  _TRUSTYIPCREADFTRACEEVENT._serialized_end=118574
-  _TRUSTYIPCREADENDFTRACEEVENT._serialized_start=118576
-  _TRUSTYIPCREADENDFTRACEEVENT._serialized_end=118690
-  _TRUSTYIPCRXFTRACEEVENT._serialized_start=118692
-  _TRUSTYIPCRXFTRACEEVENT._serialized_end=118764
-  _TRUSTYENQUEUENOPFTRACEEVENT._serialized_start=118766
-  _TRUSTYENQUEUENOPFTRACEEVENT._serialized_end=118837
-  _UFSHCDCOMMANDFTRACEEVENT._serialized_start=118840
-  _UFSHCDCOMMANDFTRACEEVENT._serialized_end=119026
-  _UFSHCDCLKGATINGFTRACEEVENT._serialized_start=119028
-  _UFSHCDCLKGATINGFTRACEEVENT._serialized_end=119089
-  _V4L2QBUFFTRACEEVENT._serialized_start=119092
-  _V4L2QBUFFTRACEEVENT._serialized_end=119503
-  _V4L2DQBUFFTRACEEVENT._serialized_start=119506
-  _V4L2DQBUFFTRACEEVENT._serialized_end=119918
-  _VB2V4L2BUFQUEUEFTRACEEVENT._serialized_start=119921
-  _VB2V4L2BUFQUEUEFTRACEEVENT._serialized_end=120291
-  _VB2V4L2BUFDONEFTRACEEVENT._serialized_start=120294
-  _VB2V4L2BUFDONEFTRACEEVENT._serialized_end=120663
-  _VB2V4L2QBUFFTRACEEVENT._serialized_start=120666
-  _VB2V4L2QBUFFTRACEEVENT._serialized_end=121032
-  _VB2V4L2DQBUFFTRACEEVENT._serialized_start=121035
-  _VB2V4L2DQBUFFTRACEEVENT._serialized_end=121402
-  _VIRTIOGPUCMDQUEUEFTRACEEVENT._serialized_start=121405
-  _VIRTIOGPUCMDQUEUEFTRACEEVENT._serialized_end=121570
-  _VIRTIOGPUCMDRESPONSEFTRACEEVENT._serialized_start=121573
-  _VIRTIOGPUCMDRESPONSEFTRACEEVENT._serialized_end=121741
-  _VIRTIOVIDEOCMDFTRACEEVENT._serialized_start=121743
-  _VIRTIOVIDEOCMDFTRACEEVENT._serialized_end=121803
-  _VIRTIOVIDEOCMDDONEFTRACEEVENT._serialized_start=121805
-  _VIRTIOVIDEOCMDDONEFTRACEEVENT._serialized_end=121869
-  _VIRTIOVIDEORESOURCEQUEUEFTRACEEVENT._serialized_start=121872
-  _VIRTIOVIDEORESOURCEQUEUEFTRACEEVENT._serialized_end=122068
-  _VIRTIOVIDEORESOURCEQUEUEDONEFTRACEEVENT._serialized_start=122071
-  _VIRTIOVIDEORESOURCEQUEUEDONEFTRACEEVENT._serialized_end=122271
-  _MMVMSCANDIRECTRECLAIMBEGINFTRACEEVENT._serialized_start=122273
-  _MMVMSCANDIRECTRECLAIMBEGINFTRACEEVENT._serialized_end=122369
-  _MMVMSCANDIRECTRECLAIMENDFTRACEEVENT._serialized_start=122371
-  _MMVMSCANDIRECTRECLAIMENDFTRACEEVENT._serialized_end=122430
-  _MMVMSCANKSWAPDWAKEFTRACEEVENT._serialized_start=122432
-  _MMVMSCANKSWAPDWAKEFTRACEEVENT._serialized_end=122504
-  _MMVMSCANKSWAPDSLEEPFTRACEEVENT._serialized_start=122506
-  _MMVMSCANKSWAPDSLEEPFTRACEEVENT._serialized_end=122551
-  _MMSHRINKSLABSTARTFTRACEEVENT._serialized_start=122554
-  _MMSHRINKSLABSTARTFTRACEEVENT._serialized_end=122787
-  _MMSHRINKSLABENDFTRACEEVENT._serialized_start=122790
-  _MMSHRINKSLABENDFTRACEEVENT._serialized_end=122935
-  _WORKQUEUEACTIVATEWORKFTRACEEVENT._serialized_start=122937
-  _WORKQUEUEACTIVATEWORKFTRACEEVENT._serialized_end=123003
-  _WORKQUEUEEXECUTEENDFTRACEEVENT._serialized_start=123005
-  _WORKQUEUEEXECUTEENDFTRACEEVENT._serialized_end=123069
-  _WORKQUEUEEXECUTESTARTFTRACEEVENT._serialized_start=123071
-  _WORKQUEUEEXECUTESTARTFTRACEEVENT._serialized_end=123137
-  _WORKQUEUEQUEUEWORKFTRACEEVENT._serialized_start=123139
-  _WORKQUEUEQUEUEWORKFTRACEEVENT._serialized_end=123251
-  _FTRACEEVENT._serialized_start=123255
-  _FTRACEEVENT._serialized_end=168486
-  _FTRACECPUSTATS._serialized_start=168489
-  _FTRACECPUSTATS._serialized_end=168682
-  _FTRACEKPROBESTATS._serialized_start=168684
-  _FTRACEKPROBESTATS._serialized_end=168733
-  _FTRACESTATS._serialized_start=168736
-  _FTRACESTATS._serialized_end=169319
-  _FTRACESTATS_PHASE._serialized_start=169257
-  _FTRACESTATS_PHASE._serialized_end=169319
-  _FTRACEEVENTBUNDLE._serialized_start=169322
-  _FTRACEEVENTBUNDLE._serialized_end=170402
-  _FTRACEEVENTBUNDLE_COMPACTSCHED._serialized_start=169860
-  _FTRACEEVENTBUNDLE_COMPACTSCHED._serialized_end=170226
-  _FTRACEEVENTBUNDLE_FTRACEERROR._serialized_start=170228
-  _FTRACEEVENTBUNDLE_FTRACEERROR._serialized_end=170312
-  _FTRACEEVENTBUNDLE_GENERICEVENTDESCRIPTOR._serialized_start=170314
-  _FTRACEEVENTBUNDLE_GENERICEVENTDESCRIPTOR._serialized_end=170402
-  _GENERICKERNELCPUFREQUENCYEVENT._serialized_start=170404
-  _GENERICKERNELCPUFREQUENCYEVENT._serialized_end=170466
-  _GENERICKERNELTASKSTATEEVENT._serialized_start=170469
-  _GENERICKERNELTASKSTATEEVENT._serialized_end=170887
-  _GENERICKERNELTASKSTATEEVENT_TASKSTATEENUM._serialized_start=170630
-  _GENERICKERNELTASKSTATEEVENT_TASKSTATEENUM._serialized_end=170887
-  _GENERICKERNELTASKRENAMEEVENT._serialized_start=170889
-  _GENERICKERNELTASKRENAMEEVENT._serialized_end=170946
-  _GENERICKERNELPROCESSTREE._serialized_start=170949
-  _GENERICKERNELPROCESSTREE._serialized_end=171241
-  _GENERICKERNELPROCESSTREE_THREAD._serialized_start=171114
-  _GENERICKERNELPROCESSTREE_THREAD._serialized_end=171186
-  _GENERICKERNELPROCESSTREE_PROCESS._serialized_start=171188
-  _GENERICKERNELPROCESSTREE_PROCESS._serialized_end=171241
-  _GPUCOUNTEREVENT._serialized_start=171244
-  _GPUCOUNTEREVENT._serialized_end=171495
-  _GPUCOUNTEREVENT_GPUCOUNTER._serialized_start=171409
-  _GPUCOUNTEREVENT_GPUCOUNTER._serialized_end=171495
-  _GPULOG._serialized_start=171498
-  _GPULOG._serialized_end=171758
-  _GPULOG_SEVERITY._serialized_start=171595
-  _GPULOG_SEVERITY._serialized_end=171758
-  _GPURENDERSTAGEEVENT._serialized_start=171761
-  _GPURENDERSTAGEEVENT._serialized_end=172680
-  _GPURENDERSTAGEEVENT_EXTRADATA._serialized_start=172270
-  _GPURENDERSTAGEEVENT_EXTRADATA._serialized_end=172310
-  _GPURENDERSTAGEEVENT_SPECIFICATIONS._serialized_start=172313
-  _GPURENDERSTAGEEVENT_SPECIFICATIONS._serialized_end=172674
-  _GPURENDERSTAGEEVENT_SPECIFICATIONS_CONTEXTSPEC._serialized_start=172581
-  _GPURENDERSTAGEEVENT_SPECIFICATIONS_CONTEXTSPEC._serialized_end=172624
-  _GPURENDERSTAGEEVENT_SPECIFICATIONS_DESCRIPTION._serialized_start=172626
-  _GPURENDERSTAGEEVENT_SPECIFICATIONS_DESCRIPTION._serialized_end=172674
-  _INTERNEDGRAPHICSCONTEXT._serialized_start=172683
-  _INTERNEDGRAPHICSCONTEXT._serialized_end=172853
-  _INTERNEDGRAPHICSCONTEXT_API._serialized_start=172795
-  _INTERNEDGRAPHICSCONTEXT_API._serialized_end=172853
-  _INTERNEDGPURENDERSTAGESPECIFICATION._serialized_start=172856
-  _INTERNEDGPURENDERSTAGESPECIFICATION._serialized_end=173094
-  _INTERNEDGPURENDERSTAGESPECIFICATION_RENDERSTAGECATEGORY._serialized_start=173035
-  _INTERNEDGPURENDERSTAGESPECIFICATION_RENDERSTAGECATEGORY._serialized_end=173094
-  _VULKANAPIEVENT._serialized_start=173097
-  _VULKANAPIEVENT._serialized_end=173540
-  _VULKANAPIEVENT_VKDEBUGUTILSOBJECTNAME._serialized_start=173283
-  _VULKANAPIEVENT_VKDEBUGUTILSOBJECTNAME._serialized_end=173397
-  _VULKANAPIEVENT_VKQUEUESUBMIT._serialized_start=173400
-  _VULKANAPIEVENT_VKQUEUESUBMIT._serialized_end=173531
-  _VULKANMEMORYEVENTANNOTATION._serialized_start=173542
-  _VULKANMEMORYEVENTANNOTATION._serialized_end=173664
-  _VULKANMEMORYEVENT._serialized_start=173667
-  _VULKANMEMORYEVENT._serialized_end=174539
-  _VULKANMEMORYEVENT_SOURCE._serialized_start=174152
-  _VULKANMEMORYEVENT_SOURCE._serialized_end=174285
-  _VULKANMEMORYEVENT_OPERATION._serialized_start=174287
-  _VULKANMEMORYEVENT_OPERATION._serialized_end=174404
-  _VULKANMEMORYEVENT_ALLOCATIONSCOPE._serialized_start=174407
-  _VULKANMEMORYEVENT_ALLOCATIONSCOPE._serialized_end=174539
-  _INTERNEDSTRING._serialized_start=174541
-  _INTERNEDSTRING._serialized_end=174583
-  _LINE._serialized_start=174585
-  _LINE._serialized_end=174661
-  _ADDRESSSYMBOLS._serialized_start=174663
-  _ADDRESSSYMBOLS._serialized_end=174734
-  _MODULESYMBOLS._serialized_start=174736
-  _MODULESYMBOLS._serialized_end=174841
-  _MAPPING._serialized_start=174844
-  _MAPPING._serialized_end=175000
-  _FRAME._serialized_start=175003
-  _FRAME._serialized_end=175131
-  _CALLSTACK._serialized_start=175133
-  _CALLSTACK._serialized_end=175176
-  _HISTOGRAMNAME._serialized_start=175178
-  _HISTOGRAMNAME._serialized_end=175220
-  _CHROMEHISTOGRAMSAMPLE._serialized_start=175222
-  _CHROMEHISTOGRAMSAMPLE._serialized_end=175312
-  _DEBUGANNOTATION._serialized_start=175315
-  _DEBUGANNOTATION._serialized_end=176255
-  _DEBUGANNOTATION_NESTEDVALUE._serialized_start=175827
-  _DEBUGANNOTATION_NESTEDVALUE._serialized_end=176207
-  _DEBUGANNOTATION_NESTEDVALUE_NESTEDTYPE._serialized_start=176157
-  _DEBUGANNOTATION_NESTEDVALUE_NESTEDTYPE._serialized_end=176207
-  _DEBUGANNOTATIONNAME._serialized_start=176257
-  _DEBUGANNOTATIONNAME._serialized_end=176305
-  _DEBUGANNOTATIONVALUETYPENAME._serialized_start=176307
-  _DEBUGANNOTATIONVALUETYPENAME._serialized_end=176364
-  _LOGMESSAGE._serialized_start=176367
-  _LOGMESSAGE._serialized_end=176626
-  _LOGMESSAGE_PRIORITY._serialized_start=176481
-  _LOGMESSAGE_PRIORITY._serialized_end=176626
-  _LOGMESSAGEBODY._serialized_start=176628
-  _LOGMESSAGEBODY._serialized_end=176671
-  _UNSYMBOLIZEDSOURCELOCATION._serialized_start=176673
-  _UNSYMBOLIZEDSOURCELOCATION._serialized_end=176750
-  _SOURCELOCATION._serialized_start=176752
-  _SOURCELOCATION._serialized_end=176844
-  _CHROMEACTIVEPROCESSES._serialized_start=176846
-  _CHROMEACTIVEPROCESSES._serialized_end=176882
-  _CHROMEAPPLICATIONSTATEINFO._serialized_start=176885
-  _CHROMEAPPLICATIONSTATEINFO._serialized_end=177251
-  _CHROMEAPPLICATIONSTATEINFO_CHROMEAPPLICATIONSTATE._serialized_start=177011
-  _CHROMEAPPLICATIONSTATEINFO_CHROMEAPPLICATIONSTATE._serialized_end=177251
-  _CHROMECOMPOSITORSCHEDULERSTATE._serialized_start=177254
-  _CHROMECOMPOSITORSCHEDULERSTATE._serialized_end=178341
-  _CHROMECOMPOSITORSCHEDULERSTATE_BEGINIMPLFRAMEDEADLINEMODE._serialized_start=178145
-  _CHROMECOMPOSITORSCHEDULERSTATE_BEGINIMPLFRAMEDEADLINEMODE._serialized_end=178335
-  _CHROMECOMPOSITORSTATEMACHINE._serialized_start=178344
-  _CHROMECOMPOSITORSTATEMACHINE._serialized_end=182054
-  _CHROMECOMPOSITORSTATEMACHINE_MAJORSTATE._serialized_start=178535
-  _CHROMECOMPOSITORSTATEMACHINE_MAJORSTATE._serialized_end=179834
-  _CHROMECOMPOSITORSTATEMACHINE_MAJORSTATE_BEGINIMPLFRAMESTATE._serialized_start=179074
-  _CHROMECOMPOSITORSTATEMACHINE_MAJORSTATE_BEGINIMPLFRAMESTATE._serialized_end=179235
-  _CHROMECOMPOSITORSTATEMACHINE_MAJORSTATE_BEGINMAINFRAMESTATE._serialized_start=179238
-  _CHROMECOMPOSITORSTATEMACHINE_MAJORSTATE_BEGINMAINFRAMESTATE._serialized_end=179385
-  _CHROMECOMPOSITORSTATEMACHINE_MAJORSTATE_LAYERTREEFRAMESINKSTATE._serialized_start=179388
-  _CHROMECOMPOSITORSTATEMACHINE_MAJORSTATE_LAYERTREEFRAMESINKSTATE._serialized_end=179632
-  _CHROMECOMPOSITORSTATEMACHINE_MAJORSTATE_FORCEDREDRAWONTIMEOUTSTATE._serialized_start=179635
-  _CHROMECOMPOSITORSTATEMACHINE_MAJORSTATE_FORCEDREDRAWONTIMEOUTSTATE._serialized_end=179834
-  _CHROMECOMPOSITORSTATEMACHINE_MINORSTATE._serialized_start=179837
-  _CHROMECOMPOSITORSTATEMACHINE_MINORSTATE._serialized_end=182054
-  _CHROMECOMPOSITORSTATEMACHINE_MINORSTATE_TREEPRIORITY._serialized_start=181731
-  _CHROMECOMPOSITORSTATEMACHINE_MINORSTATE_TREEPRIORITY._serialized_end=181915
-  _CHROMECOMPOSITORSTATEMACHINE_MINORSTATE_SCROLLHANDLERSTATE._serialized_start=181918
-  _CHROMECOMPOSITORSTATEMACHINE_MINORSTATE_SCROLLHANDLERSTATE._serialized_end=182048
-  _BEGINFRAMEARGS._serialized_start=182057
-  _BEGINFRAMEARGS._serialized_end=182611
-  _BEGINFRAMEARGS_BEGINFRAMEARGSTYPE._serialized_start=182433
-  _BEGINFRAMEARGS_BEGINFRAMEARGSTYPE._serialized_end=182595
-  _BEGINIMPLFRAMEARGS._serialized_start=182614
-  _BEGINIMPLFRAMEARGS._serialized_end=183190
-  _BEGINIMPLFRAMEARGS_TIMESTAMPSINUS._serialized_start=182931
-  _BEGINIMPLFRAMEARGS_TIMESTAMPSINUS._serialized_end=183124
-  _BEGINIMPLFRAMEARGS_STATE._serialized_start=183126
-  _BEGINIMPLFRAMEARGS_STATE._serialized_end=183182
-  _BEGINFRAMEOBSERVERSTATE._serialized_start=183192
-  _BEGINFRAMEOBSERVERSTATE._serialized_end=183315
-  _BEGINFRAMESOURCESTATE._serialized_start=183318
-  _BEGINFRAMESOURCESTATE._serialized_end=183463
-  _COMPOSITORTIMINGHISTORY._serialized_start=183466
-  _COMPOSITORTIMINGHISTORY._serialized_end=183846
-  _CHROMECONTENTSETTINGSEVENTINFO._serialized_start=183848
-  _CHROMECONTENTSETTINGSEVENTINFO._serialized_end=183910
-  _CHROMEFRAMEREPORTER._serialized_start=183913
-  _CHROMEFRAMEREPORTER._serialized_end=185033
-  _CHROMEFRAMEREPORTER_STATE._serialized_start=184628
-  _CHROMEFRAMEREPORTER_STATE._serialized_end=184737
-  _CHROMEFRAMEREPORTER_FRAMEDROPREASON._serialized_start=184739
-  _CHROMEFRAMEREPORTER_FRAMEDROPREASON._serialized_end=184865
-  _CHROMEFRAMEREPORTER_SCROLLSTATE._serialized_start=184867
-  _CHROMEFRAMEREPORTER_SCROLLSTATE._serialized_end=184990
-  _CHROMEFRAMEREPORTER_FRAMETYPE._serialized_start=184992
-  _CHROMEFRAMEREPORTER_FRAMETYPE._serialized_end=185029
-  _CHROMEKEYEDSERVICE._serialized_start=185035
-  _CHROMEKEYEDSERVICE._serialized_end=185069
-  _CHROMELATENCYINFO._serialized_start=185072
-  _CHROMELATENCYINFO._serialized_end=186854
-  _CHROMELATENCYINFO_COMPONENTINFO._serialized_start=185401
-  _CHROMELATENCYINFO_COMPONENTINFO._serialized_end=185514
-  _CHROMELATENCYINFO_STEP._serialized_start=185517
-  _CHROMELATENCYINFO_STEP._serialized_end=185919
-  _CHROMELATENCYINFO_LATENCYCOMPONENTTYPE._serialized_start=185922
-  _CHROMELATENCYINFO_LATENCYCOMPONENTTYPE._serialized_end=186679
-  _CHROMELATENCYINFO_INPUTTYPE._serialized_start=186682
-  _CHROMELATENCYINFO_INPUTTYPE._serialized_end=186854
-  _CHROMELEGACYIPC._serialized_start=186857
-  _CHROMELEGACYIPC._serialized_end=187831
-  _CHROMELEGACYIPC_MESSAGECLASS._serialized_start=186969
-  _CHROMELEGACYIPC_MESSAGECLASS._serialized_end=187831
-  _CHROMEMESSAGEPUMP._serialized_start=187833
-  _CHROMEMESSAGEPUMP._serialized_end=187917
-  _CHROMEMOJOEVENTINFO._serialized_start=187920
-  _CHROMEMOJOEVENTINFO._serialized_end=188124
-  _CHROMERENDERERSCHEDULERSTATE._serialized_start=188126
-  _CHROMERENDERERSCHEDULERSTATE._serialized_end=188252
-  _CHROMEUSEREVENT._serialized_start=188254
-  _CHROMEUSEREVENT._serialized_end=188308
-  _CHROMEWINDOWHANDLEEVENTINFO._serialized_start=188310
-  _CHROMEWINDOWHANDLEEVENTINFO._serialized_end=188390
-  _SCREENSHOT._serialized_start=188392
-  _SCREENSHOT._serialized_end=188423
-  _TASKEXECUTION._serialized_start=188425
-  _TASKEXECUTION._serialized_end=188465
-  _TRACKEVENT._serialized_start=188468
-  _TRACKEVENT._serialized_end=191888
-  _TRACKEVENT_CALLSTACK._serialized_start=190742
-  _TRACKEVENT_CALLSTACK._serialized_end=190888
-  _TRACKEVENT_CALLSTACK_FRAME._serialized_start=190816
-  _TRACKEVENT_CALLSTACK_FRAME._serialized_end=190888
-  _TRACKEVENT_LEGACYEVENT._serialized_start=190891
-  _TRACKEVENT_LEGACYEVENT._serialized_end=191573
-  _TRACKEVENT_LEGACYEVENT_FLOWDIRECTION._serialized_start=191382
-  _TRACKEVENT_LEGACYEVENT_FLOWDIRECTION._serialized_end=191462
-  _TRACKEVENT_LEGACYEVENT_INSTANTEVENTSCOPE._serialized_start=191464
-  _TRACKEVENT_LEGACYEVENT_INSTANTEVENTSCOPE._serialized_end=191561
-  _TRACKEVENT_TYPE._serialized_start=191575
-  _TRACKEVENT_TYPE._serialized_end=191681
-  _TRACKEVENTDEFAULTS._serialized_start=191890
-  _TRACKEVENTDEFAULTS._serialized_end=192007
-  _EVENTCATEGORY._serialized_start=192009
-  _EVENTCATEGORY._serialized_end=192051
-  _EVENTNAME._serialized_start=192053
-  _EVENTNAME._serialized_end=192091
-  _INTERNEDDATA._serialized_start=192094
-  _INTERNEDDATA._serialized_end=194209
-  _MEMORYTRACKERSNAPSHOT._serialized_start=194212
-  _MEMORYTRACKERSNAPSHOT._serialized_end=195220
-  _MEMORYTRACKERSNAPSHOT_PROCESSSNAPSHOT._serialized_start=194427
-  _MEMORYTRACKERSNAPSHOT_PROCESSSNAPSHOT._serialized_end=195145
-  _MEMORYTRACKERSNAPSHOT_PROCESSSNAPSHOT_MEMORYNODE._serialized_start=194641
-  _MEMORYTRACKERSNAPSHOT_PROCESSSNAPSHOT_MEMORYNODE._serialized_end=195052
-  _MEMORYTRACKERSNAPSHOT_PROCESSSNAPSHOT_MEMORYNODE_MEMORYNODEENTRY._serialized_start=194825
-  _MEMORYTRACKERSNAPSHOT_PROCESSSNAPSHOT_MEMORYNODE_MEMORYNODEENTRY._serialized_end=195052
-  _MEMORYTRACKERSNAPSHOT_PROCESSSNAPSHOT_MEMORYNODE_MEMORYNODEENTRY_UNITS._serialized_start=195006
-  _MEMORYTRACKERSNAPSHOT_PROCESSSNAPSHOT_MEMORYNODE_MEMORYNODEENTRY_UNITS._serialized_end=195052
-  _MEMORYTRACKERSNAPSHOT_PROCESSSNAPSHOT_MEMORYEDGE._serialized_start=195054
-  _MEMORYTRACKERSNAPSHOT_PROCESSSNAPSHOT_MEMORYEDGE._serialized_end=195145
-  _MEMORYTRACKERSNAPSHOT_LEVELOFDETAIL._serialized_start=195147
-  _MEMORYTRACKERSNAPSHOT_LEVELOFDETAIL._serialized_end=195220
-  _PERFETTOMETATRACE._serialized_start=195223
-  _PERFETTOMETATRACE._serialized_end=195768
-  _PERFETTOMETATRACE_ARG._serialized_start=195580
-  _PERFETTOMETATRACE_ARG._serialized_end=195707
-  _PERFETTOMETATRACE_INTERNEDSTRING._serialized_start=195709
-  _PERFETTOMETATRACE_INTERNEDSTRING._serialized_end=195753
-  _TRACINGSERVICEEVENT._serialized_start=195771
-  _TRACINGSERVICEEVENT._serialized_end=196421
-  _TRACINGSERVICEEVENT_DATASOURCES._serialized_start=196249
-  _TRACINGSERVICEEVENT_DATASOURCES._serialized_end=196407
-  _TRACINGSERVICEEVENT_DATASOURCES_DATASOURCE._serialized_start=196346
-  _TRACINGSERVICEEVENT_DATASOURCES_DATASOURCE._serialized_end=196407
-  _ANDROIDENERGYCONSUMER._serialized_start=196423
-  _ANDROIDENERGYCONSUMER._serialized_end=196519
-  _ANDROIDENERGYCONSUMERDESCRIPTOR._serialized_start=196521
-  _ANDROIDENERGYCONSUMERDESCRIPTOR._serialized_end=196620
-  _ANDROIDENERGYESTIMATIONBREAKDOWN._serialized_start=196623
-  _ANDROIDENERGYESTIMATIONBREAKDOWN._serialized_end=196943
-  _ANDROIDENERGYESTIMATIONBREAKDOWN_ENERGYUIDBREAKDOWN._serialized_start=196890
-  _ANDROIDENERGYESTIMATIONBREAKDOWN_ENERGYUIDBREAKDOWN._serialized_end=196943
-  _ENTITYSTATERESIDENCY._serialized_start=196946
-  _ENTITYSTATERESIDENCY._serialized_end=197389
-  _ENTITYSTATERESIDENCY_POWERENTITYSTATE._serialized_start=197127
-  _ENTITYSTATERESIDENCY_POWERENTITYSTATE._serialized_end=197229
-  _ENTITYSTATERESIDENCY_STATERESIDENCY._serialized_start=197232
-  _ENTITYSTATERESIDENCY_STATERESIDENCY._serialized_end=197389
-  _BATTERYCOUNTERS._serialized_start=197392
-  _BATTERYCOUNTERS._serialized_end=197569
-  _POWERRAILS._serialized_start=197572
-  _POWERRAILS._serialized_end=197899
-  _POWERRAILS_RAILDESCRIPTOR._serialized_start=197738
-  _POWERRAILS_RAILDESCRIPTOR._serialized_end=197832
-  _POWERRAILS_ENERGYDATA._serialized_start=197834
-  _POWERRAILS_ENERGYDATA._serialized_end=197899
-  _OBFUSCATEDMEMBER._serialized_start=197901
-  _OBFUSCATEDMEMBER._serialized_end=197971
-  _OBFUSCATEDCLASS._serialized_start=197974
-  _OBFUSCATEDCLASS._serialized_end=198169
-  _DEOBFUSCATIONMAPPING._serialized_start=198172
-  _DEOBFUSCATIONMAPPING._serialized_end=198300
-  _HEAPGRAPHROOT._serialized_start=198303
-  _HEAPGRAPHROOT._serialized_end=198741
-  _HEAPGRAPHROOT_TYPE._serialized_start=198401
-  _HEAPGRAPHROOT_TYPE._serialized_end=198741
-  _HEAPGRAPHTYPE._serialized_start=198744
-  _HEAPGRAPHTYPE._serialized_end=199228
-  _HEAPGRAPHTYPE_KIND._serialized_start=198966
-  _HEAPGRAPHTYPE_KIND._serialized_end=199228
-  _HEAPGRAPHOBJECT._serialized_start=199231
-  _HEAPGRAPHOBJECT._serialized_end=199687
-  _HEAPGRAPHOBJECT_HEAPTYPE._serialized_start=199573
-  _HEAPGRAPHOBJECT_HEAPTYPE._serialized_end=199673
-  _HEAPGRAPH._serialized_start=199690
-  _HEAPGRAPH._serialized_end=200010
-  _PROFILEPACKET._serialized_start=200013
-  _PROFILEPACKET._serialized_end=201481
-  _PROFILEPACKET_HEAPSAMPLE._serialized_start=200321
-  _PROFILEPACKET_HEAPSAMPLE._serialized_end=200507
-  _PROFILEPACKET_HISTOGRAM._serialized_start=200510
-  _PROFILEPACKET_HISTOGRAM._serialized_end=200653
-  _PROFILEPACKET_HISTOGRAM_BUCKET._serialized_start=200589
-  _PROFILEPACKET_HISTOGRAM_BUCKET._serialized_end=200653
-  _PROFILEPACKET_PROCESSSTATS._serialized_start=200656
-  _PROFILEPACKET_PROCESSSTATS._serialized_end=200878
-  _PROFILEPACKET_PROCESSHEAPSAMPLES._serialized_start=200881
-  _PROFILEPACKET_PROCESSHEAPSAMPLES._serialized_end=201481
-  _PROFILEPACKET_PROCESSHEAPSAMPLES_CLIENTERROR._serialized_start=201376
-  _PROFILEPACKET_PROCESSHEAPSAMPLES_CLIENTERROR._serialized_end=201481
-  _STREAMINGALLOCATION._serialized_start=201484
-  _STREAMINGALLOCATION._serialized_end=201641
-  _STREAMINGFREE._serialized_start=201643
-  _STREAMINGFREE._serialized_end=201717
-  _STREAMINGPROFILEPACKET._serialized_start=201719
-  _STREAMINGPROFILEPACKET._serialized_end=201820
-  _PROFILING._serialized_start=201823
-  _PROFILING._serialized_end=202479
-  _PROFILING_CPUMODE._serialized_start=201836
-  _PROFILING_CPUMODE._serialized_end=201960
-  _PROFILING_STACKUNWINDERROR._serialized_start=201963
-  _PROFILING_STACKUNWINDERROR._serialized_end=202479
-  _PERFSAMPLE._serialized_start=202482
-  _PERFSAMPLE._serialized_end=203361
-  _PERFSAMPLE_PRODUCEREVENT._serialized_start=202906
-  _PERFSAMPLE_PRODUCEREVENT._serialized_end=203126
-  _PERFSAMPLE_PRODUCEREVENT_DATASOURCESTOPREASON._serialized_start=203017
-  _PERFSAMPLE_PRODUCEREVENT_DATASOURCESTOPREASON._serialized_end=203095
-  _PERFSAMPLE_SAMPLESKIPREASON._serialized_start=203129
-  _PERFSAMPLE_SAMPLESKIPREASON._serialized_end=203302
-  _PERFSAMPLEDEFAULTS._serialized_start=203364
-  _PERFSAMPLEDEFAULTS._serialized_end=203550
-  _SMAPSENTRY._serialized_start=203553
-  _SMAPSENTRY._serialized_end=203940
-  _SMAPSPACKET._serialized_start=203942
-  _SMAPSPACKET._serialized_end=204014
-  _PROCESSSTATS._serialized_start=204017
-  _PROCESSSTATS._serialized_end=204844
-  _PROCESSSTATS_THREAD._serialized_start=204125
-  _PROCESSSTATS_THREAD._serialized_end=204164
-  _PROCESSSTATS_FDINFO._serialized_start=204166
-  _PROCESSSTATS_FDINFO._serialized_end=204200
-  _PROCESSSTATS_PROCESS._serialized_start=204203
-  _PROCESSSTATS_PROCESS._serialized_end=204844
-  _PROCESSTREE._serialized_start=204847
-  _PROCESSTREE._serialized_end=205239
-  _PROCESSTREE_THREAD._serialized_start=205007
-  _PROCESSTREE_THREAD._serialized_end=205071
-  _PROCESSTREE_PROCESS._serialized_start=205074
-  _PROCESSTREE_PROCESS._serialized_end=205239
-  _REMOTECLOCKSYNC._serialized_start=205242
-  _REMOTECLOCKSYNC._serialized_end=205453
-  _REMOTECLOCKSYNC_SYNCEDCLOCKS._serialized_start=205331
-  _REMOTECLOCKSYNC_SYNCEDCLOCKS._serialized_end=205453
-  _ATOM._serialized_start=205455
-  _ATOM._serialized_end=205461
-  _STATSDATOM._serialized_start=205463
-  _STATSDATOM._serialized_end=205537
-  _SYSSTATS._serialized_start=205540
-  _SYSSTATS._serialized_end=207564
-  _SYSSTATS_MEMINFOVALUE._serialized_start=206328
-  _SYSSTATS_MEMINFOVALUE._serialized_end=206404
-  _SYSSTATS_VMSTATVALUE._serialized_start=206406
-  _SYSSTATS_VMSTATVALUE._serialized_end=206480
-  _SYSSTATS_CPUTIMES._serialized_start=206483
-  _SYSSTATS_CPUTIMES._serialized_end=206663
-  _SYSSTATS_INTERRUPTCOUNT._serialized_start=206665
-  _SYSSTATS_INTERRUPTCOUNT._serialized_end=206709
-  _SYSSTATS_DEVFREQVALUE._serialized_start=206711
-  _SYSSTATS_DEVFREQVALUE._serialized_end=206753
-  _SYSSTATS_BUDDYINFO._serialized_start=206755
-  _SYSSTATS_BUDDYINFO._serialized_end=206815
-  _SYSSTATS_DISKSTAT._serialized_start=206818
-  _SYSSTATS_DISKSTAT._serialized_end=207033
-  _SYSSTATS_PSISAMPLE._serialized_start=207036
-  _SYSSTATS_PSISAMPLE._serialized_end=207344
-  _SYSSTATS_PSISAMPLE_PSIRESOURCE._serialized_start=207135
-  _SYSSTATS_PSISAMPLE_PSIRESOURCE._serialized_end=207344
-  _SYSSTATS_THERMALZONE._serialized_start=207346
-  _SYSSTATS_THERMALZONE._serialized_end=207401
-  _SYSSTATS_CPUIDLESTATEENTRY._serialized_start=207403
-  _SYSSTATS_CPUIDLESTATEENTRY._serialized_end=207458
-  _SYSSTATS_CPUIDLESTATE._serialized_start=207460
-  _SYSSTATS_CPUIDLESTATE._serialized_end=207564
-  _CPUINFO._serialized_start=207567
-  _CPUINFO._serialized_end=207899
-  _CPUINFO_ARMCPUIDENTIFIER._serialized_start=207622
-  _CPUINFO_ARMCPUIDENTIFIER._serialized_end=207732
-  _CPUINFO_CPU._serialized_start=207735
-  _CPUINFO_CPU._serialized_end=207899
-  _TESTEVENT._serialized_start=207902
-  _TESTEVENT._serialized_end=208281
-  _TESTEVENT_TESTPAYLOAD._serialized_start=208039
-  _TESTEVENT_TESTPAYLOAD._serialized_end=208281
-  _TRACEPACKETDEFAULTS._serialized_start=208284
-  _TRACEPACKETDEFAULTS._serialized_end=208526
-  _TRACEUUID._serialized_start=208528
-  _TRACEUUID._serialized_end=208565
-  _PROCESSDESCRIPTOR._serialized_start=208568
-  _PROCESSDESCRIPTOR._serialized_end=209055
-  _PROCESSDESCRIPTOR_CHROMEPROCESSTYPE._serialized_start=208830
-  _PROCESSDESCRIPTOR_CHROMEPROCESSTYPE._serialized_end=209055
-  _TRACKEVENTRANGEOFINTEREST._serialized_start=209057
-  _TRACKEVENTRANGEOFINTEREST._serialized_end=209102
-  _THREADDESCRIPTOR._serialized_start=209105
-  _THREADDESCRIPTOR._serialized_end=209861
-  _THREADDESCRIPTOR_CHROMETHREADTYPE._serialized_start=209390
-  _THREADDESCRIPTOR_CHROMETHREADTYPE._serialized_end=209861
-  _CHROMEPROCESSDESCRIPTOR._serialized_start=209864
-  _CHROMEPROCESSDESCRIPTOR._serialized_end=210019
-  _CHROMETHREADDESCRIPTOR._serialized_start=210021
-  _CHROMETHREADDESCRIPTOR._serialized_end=210119
-  _COUNTERDESCRIPTOR._serialized_start=210122
-  _COUNTERDESCRIPTOR._serialized_end=210577
-  _COUNTERDESCRIPTOR_BUILTINCOUNTERTYPE._serialized_start=210381
-  _COUNTERDESCRIPTOR_BUILTINCOUNTERTYPE._serialized_end=210492
-  _COUNTERDESCRIPTOR_UNIT._serialized_start=210494
-  _COUNTERDESCRIPTOR_UNIT._serialized_end=210577
-  _TRACKDESCRIPTOR._serialized_start=210580
-  _TRACKDESCRIPTOR._serialized_end=211632
-  _TRACKDESCRIPTOR_CHILDTRACKSORDERING._serialized_start=211304
-  _TRACKDESCRIPTOR_CHILDTRACKSORDERING._serialized_end=211390
-  _TRACKDESCRIPTOR_SIBLINGMERGEBEHAVIOR._serialized_start=211393
-  _TRACKDESCRIPTOR_SIBLINGMERGEBEHAVIOR._serialized_end=211579
-  _TRANSLATIONTABLE._serialized_start=211635
-  _TRANSLATIONTABLE._serialized_end=212128
-  _CHROMEHISTORGRAMTRANSLATIONTABLE._serialized_start=212131
-  _CHROMEHISTORGRAMTRANSLATIONTABLE._serialized_end=212305
-  _CHROMEHISTORGRAMTRANSLATIONTABLE_HASHTONAMEENTRY._serialized_start=212256
-  _CHROMEHISTORGRAMTRANSLATIONTABLE_HASHTONAMEENTRY._serialized_end=212305
-  _CHROMEUSEREVENTTRANSLATIONTABLE._serialized_start=212308
-  _CHROMEUSEREVENTTRANSLATIONTABLE._serialized_end=212499
-  _CHROMEUSEREVENTTRANSLATIONTABLE_ACTIONHASHTONAMEENTRY._serialized_start=212444
-  _CHROMEUSEREVENTTRANSLATIONTABLE_ACTIONHASHTONAMEENTRY._serialized_end=212499
-  _CHROMEPERFORMANCEMARKTRANSLATIONTABLE._serialized_start=212502
-  _CHROMEPERFORMANCEMARKTRANSLATIONTABLE._serialized_end=212857
-  _CHROMEPERFORMANCEMARKTRANSLATIONTABLE_SITEHASHTONAMEENTRY._serialized_start=212749
-  _CHROMEPERFORMANCEMARKTRANSLATIONTABLE_SITEHASHTONAMEENTRY._serialized_end=212802
-  _CHROMEPERFORMANCEMARKTRANSLATIONTABLE_MARKHASHTONAMEENTRY._serialized_start=212804
-  _CHROMEPERFORMANCEMARKTRANSLATIONTABLE_MARKHASHTONAMEENTRY._serialized_end=212857
-  _SLICENAMETRANSLATIONTABLE._serialized_start=212860
-  _SLICENAMETRANSLATIONTABLE._serialized_end=213054
-  _SLICENAMETRANSLATIONTABLE_RAWTODEOBFUSCATEDNAMEENTRY._serialized_start=212994
-  _SLICENAMETRANSLATIONTABLE_RAWTODEOBFUSCATEDNAMEENTRY._serialized_end=213054
-  _PROCESSTRACKNAMETRANSLATIONTABLE._serialized_start=213057
-  _PROCESSTRACKNAMETRANSLATIONTABLE._serialized_end=213265
-  _PROCESSTRACKNAMETRANSLATIONTABLE_RAWTODEOBFUSCATEDNAMEENTRY._serialized_start=212994
-  _PROCESSTRACKNAMETRANSLATIONTABLE_RAWTODEOBFUSCATEDNAMEENTRY._serialized_end=213054
-  _CHROMESTUDYTRANSLATIONTABLE._serialized_start=213268
-  _CHROMESTUDYTRANSLATIONTABLE._serialized_end=213432
-  _CHROMESTUDYTRANSLATIONTABLE_HASHTONAMEENTRY._serialized_start=212256
-  _CHROMESTUDYTRANSLATIONTABLE_HASHTONAMEENTRY._serialized_end=212305
-  _TRIGGER._serialized_start=213434
-  _TRIGGER._serialized_end=213541
-  _UISTATE._serialized_start=213544
-  _UISTATE._serialized_end=213741
-  _UISTATE_HIGHLIGHTPROCESS._serialized_start=213677
-  _UISTATE_HIGHLIGHTPROCESS._serialized_end=213741
-  _TRACEPACKET._serialized_start=213744
-  _TRACEPACKET._serialized_end=219983
-  _TRACEPACKET_SEQUENCEFLAGS._serialized_start=219796
-  _TRACEPACKET_SEQUENCEFLAGS._serialized_end=219900
-  _TRACE._serialized_start=219985
-  _TRACE._serialized_end=220038
+  _FILEIODIRENUMETWEVENT._serialized_end=58889
+  _FILEIOINFOETWEVENT._serialized_start=58892
+  _FILEIOINFOETWEVENT._serialized_end=59038
+  _FILEIOREADWRITEETWEVENT._serialized_start=59041
+  _FILEIOREADWRITEETWEVENT._serialized_end=59203
+  _FILEIOSIMPLEOPETWEVENT._serialized_start=59205
+  _FILEIOSIMPLEOPETWEVENT._serialized_end=59315
+  _FILEIOOPENDETWEVENT._serialized_start=59317
+  _FILEIOOPENDETWEVENT._serialized_end=59394
+  _ETWTRACEEVENT._serialized_start=59397
+  _ETWTRACEEVENT._serialized_end=60042
+  _ETWTRACEEVENTBUNDLE._serialized_start=60044
+  _ETWTRACEEVENTBUNDLE._serialized_end=60125
+  _EVDEVEVENT._serialized_start=60128
+  _EVDEVEVENT._serialized_end=60314
+  _EVDEVEVENT_INPUTEVENT._serialized_start=60224
+  _EVDEVEVENT_INPUTEVENT._serialized_end=60305
+  _FILEDESCRIPTORSET._serialized_start=60316
+  _FILEDESCRIPTORSET._serialized_end=60387
+  _FILEDESCRIPTORPROTO._serialized_start=60390
+  _FILEDESCRIPTORPROTO._serialized_end=60709
+  _DESCRIPTORPROTO._serialized_start=60712
+  _DESCRIPTORPROTO._serialized_end=61178
+  _DESCRIPTORPROTO_RESERVEDRANGE._serialized_start=61123
+  _DESCRIPTORPROTO_RESERVEDRANGE._serialized_end=61166
+  _UNINTERPRETEDOPTION._serialized_start=61181
+  _UNINTERPRETEDOPTION._serialized_end=61467
+  _UNINTERPRETEDOPTION_NAMEPART._serialized_start=61416
+  _UNINTERPRETEDOPTION_NAMEPART._serialized_end=61467
+  _FIELDOPTIONS._serialized_start=61469
+  _FIELDOPTIONS._serialized_end=61568
+  _FIELDDESCRIPTORPROTO._serialized_start=61571
+  _FIELDDESCRIPTORPROTO._serialized_end=62258
+  _FIELDDESCRIPTORPROTO_TYPE._serialized_start=61873
+  _FIELDDESCRIPTORPROTO_TYPE._serialized_end=62183
+  _FIELDDESCRIPTORPROTO_LABEL._serialized_start=62185
+  _FIELDDESCRIPTORPROTO_LABEL._serialized_end=62252
+  _ONEOFDESCRIPTORPROTO._serialized_start=62260
+  _ONEOFDESCRIPTORPROTO._serialized_end=62344
+  _ENUMDESCRIPTORPROTO._serialized_start=62347
+  _ENUMDESCRIPTORPROTO._serialized_end=62475
+  _ENUMVALUEDESCRIPTORPROTO._serialized_start=62477
+  _ENUMVALUEDESCRIPTORPROTO._serialized_end=62539
+  _ONEOFOPTIONS._serialized_start=62541
+  _ONEOFOPTIONS._serialized_end=62574
+  _EXTENSIONDESCRIPTOR._serialized_start=62576
+  _EXTENSIONDESCRIPTOR._serialized_end=62656
+  _INODEFILEMAP._serialized_start=62659
+  _INODEFILEMAP._serialized_end=62923
+  _INODEFILEMAP_ENTRY._serialized_start=62777
+  _INODEFILEMAP_ENTRY._serialized_end=62923
+  _INODEFILEMAP_ENTRY_TYPE._serialized_start=62879
+  _INODEFILEMAP_ENTRY_TYPE._serialized_end=62923
+  _ANDROIDFSDATAREADENDFTRACEEVENT._serialized_start=62925
+  _ANDROIDFSDATAREADENDFTRACEEVENT._serialized_end=63002
+  _ANDROIDFSDATAREADSTARTFTRACEEVENT._serialized_start=63005
+  _ANDROIDFSDATAREADSTARTFTRACEEVENT._serialized_end=63147
+  _ANDROIDFSDATAWRITEENDFTRACEEVENT._serialized_start=63149
+  _ANDROIDFSDATAWRITEENDFTRACEEVENT._serialized_end=63227
+  _ANDROIDFSDATAWRITESTARTFTRACEEVENT._serialized_start=63230
+  _ANDROIDFSDATAWRITESTARTFTRACEEVENT._serialized_end=63373
+  _ANDROIDFSFSYNCENDFTRACEEVENT._serialized_start=63375
+  _ANDROIDFSFSYNCENDFTRACEEVENT._serialized_end=63449
+  _ANDROIDFSFSYNCSTARTFTRACEEVENT._serialized_start=63451
+  _ANDROIDFSFSYNCSTARTFTRACEEVENT._serialized_end=63559
+  _BCLIRQTRIGGERFTRACEEVENT._serialized_start=63562
+  _BCLIRQTRIGGERFTRACEEVENT._serialized_end=63751
+  _BINDERTRANSACTIONFTRACEEVENT._serialized_start=63754
+  _BINDERTRANSACTIONFTRACEEVENT._serialized_end=63903
+  _BINDERTRANSACTIONRECEIVEDFTRACEEVENT._serialized_start=63905
+  _BINDERTRANSACTIONRECEIVEDFTRACEEVENT._serialized_end=63961
+  _BINDERSETPRIORITYFTRACEEVENT._serialized_start=63963
+  _BINDERSETPRIORITYFTRACEEVENT._serialized_end=64081
+  _BINDERLOCKFTRACEEVENT._serialized_start=64083
+  _BINDERLOCKFTRACEEVENT._serialized_end=64119
+  _BINDERLOCKEDFTRACEEVENT._serialized_start=64121
+  _BINDERLOCKEDFTRACEEVENT._serialized_end=64159
+  _BINDERUNLOCKFTRACEEVENT._serialized_start=64161
+  _BINDERUNLOCKFTRACEEVENT._serialized_end=64199
+  _BINDERTRANSACTIONALLOCBUFFTRACEEVENT._serialized_start=64201
+  _BINDERTRANSACTIONALLOCBUFFTRACEEVENT._serialized_end=64326
+  _BINDERCOMMANDFTRACEEVENT._serialized_start=64328
+  _BINDERCOMMANDFTRACEEVENT._serialized_end=64367
+  _BINDERRETURNFTRACEEVENT._serialized_start=64369
+  _BINDERRETURNFTRACEEVENT._serialized_end=64407
+  _BLOCKRQISSUEFTRACEEVENT._serialized_start=64410
+  _BLOCKRQISSUEFTRACEEVENT._serialized_end=64539
+  _BLOCKBIOBACKMERGEFTRACEEVENT._serialized_start=64541
+  _BLOCKBIOBACKMERGEFTRACEEVENT._serialized_end=64647
+  _BLOCKBIOBOUNCEFTRACEEVENT._serialized_start=64649
+  _BLOCKBIOBOUNCEFTRACEEVENT._serialized_end=64752
+  _BLOCKBIOCOMPLETEFTRACEEVENT._serialized_start=64754
+  _BLOCKBIOCOMPLETEFTRACEEVENT._serialized_end=64860
+  _BLOCKBIOFRONTMERGEFTRACEEVENT._serialized_start=64862
+  _BLOCKBIOFRONTMERGEFTRACEEVENT._serialized_end=64969
+  _BLOCKBIOQUEUEFTRACEEVENT._serialized_start=64971
+  _BLOCKBIOQUEUEFTRACEEVENT._serialized_end=65073
+  _BLOCKBIOREMAPFTRACEEVENT._serialized_start=65075
+  _BLOCKBIOREMAPFTRACEEVENT._serialized_end=65200
+  _BLOCKDIRTYBUFFERFTRACEEVENT._serialized_start=65202
+  _BLOCKDIRTYBUFFERFTRACEEVENT._serialized_end=65274
+  _BLOCKGETRQFTRACEEVENT._serialized_start=65276
+  _BLOCKGETRQFTRACEEVENT._serialized_end=65375
+  _BLOCKPLUGFTRACEEVENT._serialized_start=65377
+  _BLOCKPLUGFTRACEEVENT._serialized_end=65413
+  _BLOCKRQABORTFTRACEEVENT._serialized_start=65415
+  _BLOCKRQABORTFTRACEEVENT._serialized_end=65531
+  _BLOCKRQCOMPLETEFTRACEEVENT._serialized_start=65534
+  _BLOCKRQCOMPLETEFTRACEEVENT._serialized_end=65668
+  _BLOCKRQINSERTFTRACEEVENT._serialized_start=65671
+  _BLOCKRQINSERTFTRACEEVENT._serialized_end=65801
+  _BLOCKRQREMAPFTRACEEVENT._serialized_start=65804
+  _BLOCKRQREMAPFTRACEEVENT._serialized_end=65945
+  _BLOCKRQREQUEUEFTRACEEVENT._serialized_start=65947
+  _BLOCKRQREQUEUEFTRACEEVENT._serialized_end=66065
+  _BLOCKSLEEPRQFTRACEEVENT._serialized_start=66067
+  _BLOCKSLEEPRQFTRACEEVENT._serialized_end=66168
+  _BLOCKSPLITFTRACEEVENT._serialized_start=66170
+  _BLOCKSPLITFTRACEEVENT._serialized_end=66270
+  _BLOCKTOUCHBUFFERFTRACEEVENT._serialized_start=66272
+  _BLOCKTOUCHBUFFERFTRACEEVENT._serialized_end=66344
+  _BLOCKUNPLUGFTRACEEVENT._serialized_start=66346
+  _BLOCKUNPLUGFTRACEEVENT._serialized_end=66399
+  _BLOCKIOSTARTFTRACEEVENT._serialized_start=66402
+  _BLOCKIOSTARTFTRACEEVENT._serialized_end=66547
+  _BLOCKIODONEFTRACEEVENT._serialized_start=66550
+  _BLOCKIODONEFTRACEEVENT._serialized_end=66694
+  _CGROUPATTACHTASKFTRACEEVENT._serialized_start=66697
+  _CGROUPATTACHTASKFTRACEEVENT._serialized_end=66839
+  _CGROUPMKDIRFTRACEEVENT._serialized_start=66841
+  _CGROUPMKDIRFTRACEEVENT._serialized_end=66935
+  _CGROUPREMOUNTFTRACEEVENT._serialized_start=66937
+  _CGROUPREMOUNTFTRACEEVENT._serialized_end=67008
+  _CGROUPRMDIRFTRACEEVENT._serialized_start=67010
+  _CGROUPRMDIRFTRACEEVENT._serialized_end=67104
+  _CGROUPTRANSFERTASKSFTRACEEVENT._serialized_start=67107
+  _CGROUPTRANSFERTASKSFTRACEEVENT._serialized_end=67252
+  _CGROUPDESTROYROOTFTRACEEVENT._serialized_start=67254
+  _CGROUPDESTROYROOTFTRACEEVENT._serialized_end=67329
+  _CGROUPRELEASEFTRACEEVENT._serialized_start=67331
+  _CGROUPRELEASEFTRACEEVENT._serialized_end=67427
+  _CGROUPRENAMEFTRACEEVENT._serialized_start=67429
+  _CGROUPRENAMEFTRACEEVENT._serialized_end=67524
+  _CGROUPSETUPROOTFTRACEEVENT._serialized_start=67526
+  _CGROUPSETUPROOTFTRACEEVENT._serialized_end=67599
+  _CLKENABLEFTRACEEVENT._serialized_start=67601
+  _CLKENABLEFTRACEEVENT._serialized_end=67637
+  _CLKDISABLEFTRACEEVENT._serialized_start=67639
+  _CLKDISABLEFTRACEEVENT._serialized_end=67676
+  _CLKSETRATEFTRACEEVENT._serialized_start=67678
+  _CLKSETRATEFTRACEEVENT._serialized_end=67729
+  _CMAALLOCSTARTFTRACEEVENT._serialized_start=67731
+  _CMAALLOCSTARTFTRACEEVENT._serialized_end=67801
+  _CMAALLOCINFOFTRACEEVENT._serialized_start=67804
+  _CMAALLOCINFOFTRACEEVENT._serialized_end=68000
+  _CMAALLOCFINISHFTRACEEVENT._serialized_start=68002
+  _CMAALLOCFINISHFTRACEEVENT._serialized_end=68117
+  _MMCOMPACTIONBEGINFTRACEEVENT._serialized_start=68119
+  _MMCOMPACTIONBEGINFTRACEEVENT._serialized_end=68240
+  _MMCOMPACTIONDEFERCOMPACTIONFTRACEEVENT._serialized_start=68243
+  _MMCOMPACTIONDEFERCOMPACTIONFTRACEEVENT._serialized_end=68387
+  _MMCOMPACTIONDEFERREDFTRACEEVENT._serialized_start=68390
+  _MMCOMPACTIONDEFERREDFTRACEEVENT._serialized_end=68527
+  _MMCOMPACTIONDEFERRESETFTRACEEVENT._serialized_start=68530
+  _MMCOMPACTIONDEFERRESETFTRACEEVENT._serialized_end=68669
+  _MMCOMPACTIONENDFTRACEEVENT._serialized_start=68672
+  _MMCOMPACTIONENDFTRACEEVENT._serialized_end=68807
+  _MMCOMPACTIONFINISHEDFTRACEEVENT._serialized_start=68809
+  _MMCOMPACTIONFINISHEDFTRACEEVENT._serialized_end=68896
+  _MMCOMPACTIONISOLATEFREEPAGESFTRACEEVENT._serialized_start=68898
+  _MMCOMPACTIONISOLATEFREEPAGESFTRACEEVENT._serialized_end=69013
+  _MMCOMPACTIONISOLATEMIGRATEPAGESFTRACEEVENT._serialized_start=69015
+  _MMCOMPACTIONISOLATEMIGRATEPAGESFTRACEEVENT._serialized_end=69133
+  _MMCOMPACTIONKCOMPACTDSLEEPFTRACEEVENT._serialized_start=69135
+  _MMCOMPACTIONKCOMPACTDSLEEPFTRACEEVENT._serialized_end=69187
+  _MMCOMPACTIONKCOMPACTDWAKEFTRACEEVENT._serialized_start=69189
+  _MMCOMPACTIONKCOMPACTDWAKEFTRACEEVENT._serialized_end=69303
+  _MMCOMPACTIONMIGRATEPAGESFTRACEEVENT._serialized_start=69305
+  _MMCOMPACTIONMIGRATEPAGESFTRACEEVENT._serialized_end=69382
+  _MMCOMPACTIONSUITABLEFTRACEEVENT._serialized_start=69384
+  _MMCOMPACTIONSUITABLEFTRACEEVENT._serialized_end=69471
+  _MMCOMPACTIONTRYTOCOMPACTPAGESFTRACEEVENT._serialized_start=69473
+  _MMCOMPACTIONTRYTOCOMPACTPAGESFTRACEEVENT._serialized_end=69576
+  _MMCOMPACTIONWAKEUPKCOMPACTDFTRACEEVENT._serialized_start=69578
+  _MMCOMPACTIONWAKEUPKCOMPACTDFTRACEEVENT._serialized_end=69694
+  _PARAMSETVALUECPMFTRACEEVENT._serialized_start=69696
+  _PARAMSETVALUECPMFTRACEEVENT._serialized_end=69773
+  _CPUHPEXITFTRACEEVENT._serialized_start=69775
+  _CPUHPEXITFTRACEEVENT._serialized_end=69851
+  _CPUHPMULTIENTERFTRACEEVENT._serialized_start=69853
+  _CPUHPMULTIENTERFTRACEEVENT._serialized_end=69936
+  _CPUHPENTERFTRACEEVENT._serialized_start=69938
+  _CPUHPENTERFTRACEEVENT._serialized_end=70016
+  _CPUHPLATENCYFTRACEEVENT._serialized_start=70018
+  _CPUHPLATENCYFTRACEEVENT._serialized_end=70098
+  _CPUHPPAUSEFTRACEEVENT._serialized_start=70100
+  _CPUHPPAUSEFTRACEEVENT._serialized_end=70187
+  _CROSECSENSORHUBDATAFTRACEEVENT._serialized_start=70190
+  _CROSECSENSORHUBDATAFTRACEEVENT._serialized_end=70360
+  _DCVSHFREQFTRACEEVENT._serialized_start=70362
+  _DCVSHFREQFTRACEEVENT._serialized_end=70411
+  _DEVFREQFREQUENCYFTRACEEVENT._serialized_start=70413
+  _DEVFREQFREQUENCYFTRACEEVENT._serialized_end=70532
+  _DMAFENCEINITFTRACEEVENT._serialized_start=70534
+  _DMAFENCEINITFTRACEEVENT._serialized_end=70625
+  _DMAFENCEEMITFTRACEEVENT._serialized_start=70627
+  _DMAFENCEEMITFTRACEEVENT._serialized_end=70718
+  _DMAFENCESIGNALEDFTRACEEVENT._serialized_start=70720
+  _DMAFENCESIGNALEDFTRACEEVENT._serialized_end=70815
+  _DMAFENCEWAITSTARTFTRACEEVENT._serialized_start=70817
+  _DMAFENCEWAITSTARTFTRACEEVENT._serialized_end=70913
+  _DMAFENCEWAITENDFTRACEEVENT._serialized_start=70915
+  _DMAFENCEWAITENDFTRACEEVENT._serialized_end=71009
+  _DMAHEAPSTATFTRACEEVENT._serialized_start=71011
+  _DMAHEAPSTATFTRACEEVENT._serialized_end=71088
+  _DPUTRACINGMARKWRITEFTRACEEVENT._serialized_start=71091
+  _DPUTRACINGMARKWRITEFTRACEEVENT._serialized_end=71220
+  _DPUDSICMDFIFOSTATUSFTRACEEVENT._serialized_start=71222
+  _DPUDSICMDFIFOSTATUSFTRACEEVENT._serialized_end=71287
+  _DPUDSIRXFTRACEEVENT._serialized_start=71289
+  _DPUDSIRXFTRACEEVENT._serialized_end=71339
+  _DPUDSITXFTRACEEVENT._serialized_start=71341
+  _DPUDSITXFTRACEEVENT._serialized_end=71424
+  _DPUDISPDPUUNDERRUNFTRACEEVENT._serialized_start=71426
+  _DPUDISPDPUUNDERRUNFTRACEEVENT._serialized_end=71514
+  _DPUDISPVBLANKIRQENABLEFTRACEEVENT._serialized_start=71516
+  _DPUDISPVBLANKIRQENABLEFTRACEEVENT._serialized_end=71598
+  _DRMVBLANKEVENTFTRACEEVENT._serialized_start=71600
+  _DRMVBLANKEVENTFTRACEEVENT._serialized_end=71687
+  _DRMVBLANKEVENTDELIVEREDFTRACEEVENT._serialized_start=71689
+  _DRMVBLANKEVENTDELIVEREDFTRACEEVENT._serialized_end=71766
+  _DWC3ALLOCREQUESTFTRACEEVENT._serialized_start=71769
+  _DWC3ALLOCREQUESTFTRACEEVENT._serialized_end=71931
+  _DWC3COMPLETETRBFTRACEEVENT._serialized_start=71934
+  _DWC3COMPLETETRBFTRACEEVENT._serialized_end=72126
+  _DWC3CTRLREQFTRACEEVENT._serialized_start=72128
+  _DWC3CTRLREQFTRACEEVENT._serialized_end=72254
+  _DWC3EPDEQUEUEFTRACEEVENT._serialized_start=72257
+  _DWC3EPDEQUEUEFTRACEEVENT._serialized_end=72416
+  _DWC3EPQUEUEFTRACEEVENT._serialized_start=72419
+  _DWC3EPQUEUEFTRACEEVENT._serialized_end=72576
+  _DWC3EVENTFTRACEEVENT._serialized_start=72578
+  _DWC3EVENTFTRACEEVENT._serialized_end=72646
+  _DWC3FREEREQUESTFTRACEEVENT._serialized_start=72649
+  _DWC3FREEREQUESTFTRACEEVENT._serialized_end=72810
+  _DWC3GADGETEPCMDFTRACEEVENT._serialized_start=72812
+  _DWC3GADGETEPCMDFTRACEEVENT._serialized_end=72935
+  _DWC3GADGETEPDISABLEFTRACEEVENT._serialized_start=72938
+  _DWC3GADGETEPDISABLEFTRACEEVENT._serialized_end=73143
+  _DWC3GADGETEPENABLEFTRACEEVENT._serialized_start=73146
+  _DWC3GADGETEPENABLEFTRACEEVENT._serialized_end=73350
+  _DWC3GADGETGENERICCMDFTRACEEVENT._serialized_start=73352
+  _DWC3GADGETGENERICCMDFTRACEEVENT._serialized_end=73429
+  _DWC3GADGETGIVEBACKFTRACEEVENT._serialized_start=73432
+  _DWC3GADGETGIVEBACKFTRACEEVENT._serialized_end=73596
+  _DWC3PREPARETRBFTRACEEVENT._serialized_start=73599
+  _DWC3PREPARETRBFTRACEEVENT._serialized_end=73790
+  _DWC3READLFTRACEEVENT._serialized_start=73792
+  _DWC3READLFTRACEEVENT._serialized_end=73872
+  _DWC3WRITELFTRACEEVENT._serialized_start=73874
+  _DWC3WRITELFTRACEEVENT._serialized_end=73955
+  _EXT4DAWRITEBEGINFTRACEEVENT._serialized_start=73957
+  _EXT4DAWRITEBEGINFTRACEEVENT._serialized_end=74053
+  _EXT4DAWRITEENDFTRACEEVENT._serialized_start=74055
+  _EXT4DAWRITEENDFTRACEEVENT._serialized_end=74150
+  _EXT4SYNCFILEENTERFTRACEEVENT._serialized_start=74152
+  _EXT4SYNCFILEENTERFTRACEEVENT._serialized_end=74242
+  _EXT4SYNCFILEEXITFTRACEEVENT._serialized_start=74244
+  _EXT4SYNCFILEEXITFTRACEEVENT._serialized_end=74312
+  _EXT4ALLOCDABLOCKSFTRACEEVENT._serialized_start=74314
+  _EXT4ALLOCDABLOCKSFTRACEEVENT._serialized_end=74412
+  _EXT4ALLOCATEBLOCKSFTRACEEVENT._serialized_start=74415
+  _EXT4ALLOCATEBLOCKSFTRACEEVENT._serialized_end=74608
+  _EXT4ALLOCATEINODEFTRACEEVENT._serialized_start=74610
+  _EXT4ALLOCATEINODEFTRACEEVENT._serialized_end=74693
+  _EXT4BEGINORDEREDTRUNCATEFTRACEEVENT._serialized_start=74695
+  _EXT4BEGINORDEREDTRUNCATEFTRACEEVENT._serialized_end=74776
+  _EXT4COLLAPSERANGEFTRACEEVENT._serialized_start=74778
+  _EXT4COLLAPSERANGEFTRACEEVENT._serialized_end=74863
+  _EXT4DARELEASESPACEFTRACEEVENT._serialized_start=74866
+  _EXT4DARELEASESPACEFTRACEEVENT._serialized_end=75068
+  _EXT4DARESERVESPACEFTRACEEVENT._serialized_start=75071
+  _EXT4DARESERVESPACEFTRACEEVENT._serialized_end=75239
+  _EXT4DAUPDATERESERVESPACEFTRACEEVENT._serialized_start=75242
+  _EXT4DAUPDATERESERVESPACEFTRACEEVENT._serialized_end=75470
+  _EXT4DAWRITEPAGESFTRACEEVENT._serialized_start=75473
+  _EXT4DAWRITEPAGESFTRACEEVENT._serialized_end=75680
+  _EXT4DAWRITEPAGESEXTENTFTRACEEVENT._serialized_start=75682
+  _EXT4DAWRITEPAGESEXTENTFTRACEEVENT._serialized_end=75785
+  _EXT4DIRECTIOENTERFTRACEEVENT._serialized_start=75787
+  _EXT4DIRECTIOENTERFTRACEEVENT._serialized_end=75881
+  _EXT4DIRECTIOEXITFTRACEEVENT._serialized_start=75883
+  _EXT4DIRECTIOEXITFTRACEEVENT._serialized_end=75989
+  _EXT4DISCARDBLOCKSFTRACEEVENT._serialized_start=75991
+  _EXT4DISCARDBLOCKSFTRACEEVENT._serialized_end=76062
+  _EXT4DISCARDPREALLOCATIONSFTRACEEVENT._serialized_start=76064
+  _EXT4DISCARDPREALLOCATIONSFTRACEEVENT._serialized_end=76157
+  _EXT4DROPINODEFTRACEEVENT._serialized_start=76159
+  _EXT4DROPINODEFTRACEEVENT._serialized_end=76225
+  _EXT4ESCACHEEXTENTFTRACEEVENT._serialized_start=76227
+  _EXT4ESCACHEEXTENTFTRACEEVENT._serialized_end=76340
+  _EXT4ESFINDDELAYEDEXTENTRANGEENTERFTRACEEVENT._serialized_start=76342
+  _EXT4ESFINDDELAYEDEXTENTRANGEENTERFTRACEEVENT._serialized_end=76428
+  _EXT4ESFINDDELAYEDEXTENTRANGEEXITFTRACEEVENT._serialized_start=76431
+  _EXT4ESFINDDELAYEDEXTENTRANGEEXITFTRACEEVENT._serialized_end=76559
+  _EXT4ESINSERTEXTENTFTRACEEVENT._serialized_start=76561
+  _EXT4ESINSERTEXTENTFTRACEEVENT._serialized_end=76675
+  _EXT4ESLOOKUPEXTENTENTERFTRACEEVENT._serialized_start=76677
+  _EXT4ESLOOKUPEXTENTENTERFTRACEEVENT._serialized_end=76753
+  _EXT4ESLOOKUPEXTENTEXITFTRACEEVENT._serialized_start=76756
+  _EXT4ESLOOKUPEXTENTEXITFTRACEEVENT._serialized_end=76889
+  _EXT4ESREMOVEEXTENTFTRACEEVENT._serialized_start=76891
+  _EXT4ESREMOVEEXTENTFTRACEEVENT._serialized_end=76975
+  _EXT4ESSHRINKFTRACEEVENT._serialized_start=76977
+  _EXT4ESSHRINKFTRACEEVENT._serialized_end=77090
+  _EXT4ESSHRINKCOUNTFTRACEEVENT._serialized_start=77092
+  _EXT4ESSHRINKCOUNTFTRACEEVENT._serialized_end=77174
+  _EXT4ESSHRINKSCANENTERFTRACEEVENT._serialized_start=77176
+  _EXT4ESSHRINKSCANENTERFTRACEEVENT._serialized_end=77262
+  _EXT4ESSHRINKSCANEXITFTRACEEVENT._serialized_start=77264
+  _EXT4ESSHRINKSCANEXITFTRACEEVENT._serialized_end=77348
+  _EXT4EVICTINODEFTRACEEVENT._serialized_start=77350
+  _EXT4EVICTINODEFTRACEEVENT._serialized_end=77418
+  _EXT4EXTCONVERTTOINITIALIZEDENTERFTRACEEVENT._serialized_start=77421
+  _EXT4EXTCONVERTTOINITIALIZEDENTERFTRACEEVENT._serialized_end=77570
+  _EXT4EXTCONVERTTOINITIALIZEDFASTPATHFTRACEEVENT._serialized_start=77573
+  _EXT4EXTCONVERTTOINITIALIZEDFASTPATHFTRACEEVENT._serialized_end=77772
+  _EXT4EXTHANDLEUNWRITTENEXTENTSFTRACEEVENT._serialized_start=77775
+  _EXT4EXTHANDLEUNWRITTENEXTENTSFTRACEEVENT._serialized_end=77934
+  _EXT4EXTINCACHEFTRACEEVENT._serialized_start=77936
+  _EXT4EXTINCACHEFTRACEEVENT._serialized_end=78016
+  _EXT4EXTLOADEXTENTFTRACEEVENT._serialized_start=78018
+  _EXT4EXTLOADEXTENTFTRACEEVENT._serialized_end=78102
+  _EXT4EXTMAPBLOCKSENTERFTRACEEVENT._serialized_start=78104
+  _EXT4EXTMAPBLOCKSENTERFTRACEEVENT._serialized_end=78206
+  _EXT4EXTMAPBLOCKSEXITFTRACEEVENT._serialized_start=78209
+  _EXT4EXTMAPBLOCKSEXITFTRACEEVENT._serialized_end=78353
+  _EXT4EXTPUTINCACHEFTRACEEVENT._serialized_start=78355
+  _EXT4EXTPUTINCACHEFTRACEEVENT._serialized_end=78453
+  _EXT4EXTREMOVESPACEFTRACEEVENT._serialized_start=78455
+  _EXT4EXTREMOVESPACEFTRACEEVENT._serialized_end=78555
+  _EXT4EXTREMOVESPACEDONEFTRACEEVENT._serialized_start=78558
+  _EXT4EXTREMOVESPACEDONEFTRACEEVENT._serialized_end=78751
+  _EXT4EXTRMIDXFTRACEEVENT._serialized_start=78753
+  _EXT4EXTRMIDXFTRACEEVENT._serialized_end=78818
+  _EXT4EXTRMLEAFFTRACEEVENT._serialized_start=78821
+  _EXT4EXTRMLEAFFTRACEEVENT._serialized_end=79007
+  _EXT4EXTSHOWEXTENTFTRACEEVENT._serialized_start=79009
+  _EXT4EXTSHOWEXTENTFTRACEEVENT._serialized_end=79106
+  _EXT4FALLOCATEENTERFTRACEEVENT._serialized_start=79108
+  _EXT4FALLOCATEENTERFTRACEEVENT._serialized_end=79221
+  _EXT4FALLOCATEEXITFTRACEEVENT._serialized_start=79223
+  _EXT4FALLOCATEEXITFTRACEEVENT._serialized_end=79321
+  _EXT4FINDDELALLOCRANGEFTRACEEVENT._serialized_start=79324
+  _EXT4FINDDELALLOCRANGEFTRACEEVENT._serialized_end=79461
+  _EXT4FORGETFTRACEEVENT._serialized_start=79463
+  _EXT4FORGETFTRACEEVENT._serialized_end=79562
+  _EXT4FREEBLOCKSFTRACEEVENT._serialized_start=79564
+  _EXT4FREEBLOCKSFTRACEEVENT._serialized_end=79676
+  _EXT4FREEINODEFTRACEEVENT._serialized_start=79678
+  _EXT4FREEINODEFTRACEEVENT._serialized_end=79786
+  _EXT4GETIMPLIEDCLUSTERALLOCEXITFTRACEEVENT._serialized_start=79788
+  _EXT4GETIMPLIEDCLUSTERALLOCEXITFTRACEEVENT._serialized_end=79913
+  _EXT4GETRESERVEDCLUSTERALLOCFTRACEEVENT._serialized_start=79915
+  _EXT4GETRESERVEDCLUSTERALLOCFTRACEEVENT._serialized_end=80008
+  _EXT4INDMAPBLOCKSENTERFTRACEEVENT._serialized_start=80010
+  _EXT4INDMAPBLOCKSENTERFTRACEEVENT._serialized_end=80112
+  _EXT4INDMAPBLOCKSEXITFTRACEEVENT._serialized_start=80115
+  _EXT4INDMAPBLOCKSEXITFTRACEEVENT._serialized_end=80259
+  _EXT4INSERTRANGEFTRACEEVENT._serialized_start=80261
+  _EXT4INSERTRANGEFTRACEEVENT._serialized_end=80344
+  _EXT4INVALIDATEPAGEFTRACEEVENT._serialized_start=80346
+  _EXT4INVALIDATEPAGEFTRACEEVENT._serialized_end=80450
+  _EXT4JOURNALSTARTFTRACEEVENT._serialized_start=80453
+  _EXT4JOURNALSTARTFTRACEEVENT._serialized_end=80582
+  _EXT4JOURNALSTARTRESERVEDFTRACEEVENT._serialized_start=80584
+  _EXT4JOURNALSTARTRESERVEDFTRACEEVENT._serialized_end=80662
+  _EXT4JOURNALLEDINVALIDATEPAGEFTRACEEVENT._serialized_start=80664
+  _EXT4JOURNALLEDINVALIDATEPAGEFTRACEEVENT._serialized_end=80778
+  _EXT4JOURNALLEDWRITEENDFTRACEEVENT._serialized_start=80780
+  _EXT4JOURNALLEDWRITEENDFTRACEEVENT._serialized_end=80883
+  _EXT4LOADINODEFTRACEEVENT._serialized_start=80885
+  _EXT4LOADINODEFTRACEEVENT._serialized_end=80937
+  _EXT4LOADINODEBITMAPFTRACEEVENT._serialized_start=80939
+  _EXT4LOADINODEBITMAPFTRACEEVENT._serialized_end=80999
+  _EXT4MARKINODEDIRTYFTRACEEVENT._serialized_start=81001
+  _EXT4MARKINODEDIRTYFTRACEEVENT._serialized_end=81070
+  _EXT4MBBITMAPLOADFTRACEEVENT._serialized_start=81072
+  _EXT4MBBITMAPLOADFTRACEEVENT._serialized_end=81129
+  _EXT4MBBUDDYBITMAPLOADFTRACEEVENT._serialized_start=81131
+  _EXT4MBBUDDYBITMAPLOADFTRACEEVENT._serialized_end=81193
+  _EXT4MBDISCARDPREALLOCATIONSFTRACEEVENT._serialized_start=81195
+  _EXT4MBDISCARDPREALLOCATIONSFTRACEEVENT._serialized_end=81264
+  _EXT4MBNEWGROUPPAFTRACEEVENT._serialized_start=81266
+  _EXT4MBNEWGROUPPAFTRACEEVENT._serialized_end=81375
+  _EXT4MBNEWINODEPAFTRACEEVENT._serialized_start=81377
+  _EXT4MBNEWINODEPAFTRACEEVENT._serialized_end=81486
+  _EXT4MBRELEASEGROUPPAFTRACEEVENT._serialized_start=81488
+  _EXT4MBRELEASEGROUPPAFTRACEEVENT._serialized_end=81569
+  _EXT4MBRELEASEINODEPAFTRACEEVENT._serialized_start=81571
+  _EXT4MBRELEASEINODEPAFTRACEEVENT._serialized_end=81660
+  _EXT4MBALLOCALLOCFTRACEEVENT._serialized_start=81663
+  _EXT4MBALLOCALLOCFTRACEEVENT._serialized_end=82053
+  _EXT4MBALLOCDISCARDFTRACEEVENT._serialized_start=82055
+  _EXT4MBALLOCDISCARDFTRACEEVENT._serialized_end=82176
+  _EXT4MBALLOCFREEFTRACEEVENT._serialized_start=82178
+  _EXT4MBALLOCFREEFTRACEEVENT._serialized_end=82296
+  _EXT4MBALLOCPREALLOCFTRACEEVENT._serialized_start=82299
+  _EXT4MBALLOCPREALLOCFTRACEEVENT._serialized_end=82525
+  _EXT4OTHERINODEUPDATETIMEFTRACEEVENT._serialized_start=82527
+  _EXT4OTHERINODEUPDATETIMEFTRACEEVENT._serialized_end=82648
+  _EXT4PUNCHHOLEFTRACEEVENT._serialized_start=82650
+  _EXT4PUNCHHOLEFTRACEEVENT._serialized_end=82745
+  _EXT4READBLOCKBITMAPLOADFTRACEEVENT._serialized_start=82747
+  _EXT4READBLOCKBITMAPLOADFTRACEEVENT._serialized_end=82829
+  _EXT4READPAGEFTRACEEVENT._serialized_start=82831
+  _EXT4READPAGEFTRACEEVENT._serialized_end=82897
+  _EXT4RELEASEPAGEFTRACEEVENT._serialized_start=82899
+  _EXT4RELEASEPAGEFTRACEEVENT._serialized_end=82968
+  _EXT4REMOVEBLOCKSFTRACEEVENT._serialized_start=82971
+  _EXT4REMOVEBLOCKSFTRACEEVENT._serialized_end=83171
+  _EXT4REQUESTBLOCKSFTRACEEVENT._serialized_start=83174
+  _EXT4REQUESTBLOCKSFTRACEEVENT._serialized_end=83351
+  _EXT4REQUESTINODEFTRACEEVENT._serialized_start=83353
+  _EXT4REQUESTINODEFTRACEEVENT._serialized_end=83422
+  _EXT4SYNCFSFTRACEEVENT._serialized_start=83424
+  _EXT4SYNCFSFTRACEEVENT._serialized_end=83474
+  _EXT4TRIMALLFREEFTRACEEVENT._serialized_start=83476
+  _EXT4TRIMALLFREEFTRACEEVENT._serialized_end=83585
+  _EXT4TRIMEXTENTFTRACEEVENT._serialized_start=83587
+  _EXT4TRIMEXTENTFTRACEEVENT._serialized_end=83695
+  _EXT4TRUNCATEENTERFTRACEEVENT._serialized_start=83697
+  _EXT4TRUNCATEENTERFTRACEEVENT._serialized_end=83769
+  _EXT4TRUNCATEEXITFTRACEEVENT._serialized_start=83771
+  _EXT4TRUNCATEEXITFTRACEEVENT._serialized_end=83842
+  _EXT4UNLINKENTERFTRACEEVENT._serialized_start=83844
+  _EXT4UNLINKENTERFTRACEEVENT._serialized_end=83928
+  _EXT4UNLINKEXITFTRACEEVENT._serialized_start=83930
+  _EXT4UNLINKEXITFTRACEEVENT._serialized_end=83996
+  _EXT4WRITEBEGINFTRACEEVENT._serialized_start=83998
+  _EXT4WRITEBEGINFTRACEEVENT._serialized_end=84092
+  _EXT4WRITEENDFTRACEEVENT._serialized_start=84094
+  _EXT4WRITEENDFTRACEEVENT._serialized_end=84187
+  _EXT4WRITEPAGEFTRACEEVENT._serialized_start=84189
+  _EXT4WRITEPAGEFTRACEEVENT._serialized_end=84256
+  _EXT4WRITEPAGESFTRACEEVENT._serialized_start=84259
+  _EXT4WRITEPAGESFTRACEEVENT._serialized_end=84483
+  _EXT4WRITEPAGESRESULTFTRACEEVENT._serialized_start=84486
+  _EXT4WRITEPAGESRESULTFTRACEEVENT._serialized_end=84648
+  _EXT4ZERORANGEFTRACEEVENT._serialized_start=84650
+  _EXT4ZERORANGEFTRACEEVENT._serialized_end=84745
+  _F2FSDOSUBMITBIOFTRACEEVENT._serialized_start=84747
+  _F2FSDOSUBMITBIOFTRACEEVENT._serialized_end=84847
+  _F2FSEVICTINODEFTRACEEVENT._serialized_start=84850
+  _F2FSEVICTINODEFTRACEEVENT._serialized_end=84992
+  _F2FSFALLOCATEFTRACEEVENT._serialized_start=84995
+  _F2FSFALLOCATEFTRACEEVENT._serialized_end=85133
+  _F2FSGETDATABLOCKFTRACEEVENT._serialized_start=85135
+  _F2FSGETDATABLOCKFTRACEEVENT._serialized_end=85254
+  _F2FSGETVICTIMFTRACEEVENT._serialized_start=85257
+  _F2FSGETVICTIMFTRACEEVENT._serialized_end=85463
+  _F2FSIGETFTRACEEVENT._serialized_start=85466
+  _F2FSIGETFTRACEEVENT._serialized_end=85602
+  _F2FSIGETEXITFTRACEEVENT._serialized_start=85604
+  _F2FSIGETEXITFTRACEEVENT._serialized_end=85668
+  _F2FSNEWINODEFTRACEEVENT._serialized_start=85670
+  _F2FSNEWINODEFTRACEEVENT._serialized_end=85734
+  _F2FSREADPAGEFTRACEEVENT._serialized_start=85737
+  _F2FSREADPAGEFTRACEEVENT._serialized_end=85880
+  _F2FSRESERVENEWBLOCKFTRACEEVENT._serialized_start=85882
+  _F2FSRESERVENEWBLOCKFTRACEEVENT._serialized_end=85961
+  _F2FSSETPAGEDIRTYFTRACEEVENT._serialized_start=85964
+  _F2FSSETPAGEDIRTYFTRACEEVENT._serialized_end=86094
+  _F2FSSUBMITWRITEPAGEFTRACEEVENT._serialized_start=86096
+  _F2FSSUBMITWRITEPAGEFTRACEEVENT._serialized_end=86198
+  _F2FSSYNCFILEENTERFTRACEEVENT._serialized_start=86201
+  _F2FSSYNCFILEENTERFTRACEEVENT._serialized_end=86346
+  _F2FSSYNCFILEEXITFTRACEEVENT._serialized_start=86348
+  _F2FSSYNCFILEEXITFTRACEEVENT._serialized_end=86470
+  _F2FSSYNCFSFTRACEEVENT._serialized_start=86472
+  _F2FSSYNCFSFTRACEEVENT._serialized_end=86537
+  _F2FSTRUNCATEFTRACEEVENT._serialized_start=86540
+  _F2FSTRUNCATEFTRACEEVENT._serialized_end=86680
+  _F2FSTRUNCATEBLOCKSENTERFTRACEEVENT._serialized_start=86682
+  _F2FSTRUNCATEBLOCKSENTERFTRACEEVENT._serialized_end=86788
+  _F2FSTRUNCATEBLOCKSEXITFTRACEEVENT._serialized_start=86790
+  _F2FSTRUNCATEBLOCKSEXITFTRACEEVENT._serialized_end=86864
+  _F2FSTRUNCATEDATABLOCKSRANGEFTRACEEVENT._serialized_start=86866
+  _F2FSTRUNCATEDATABLOCKSRANGEFTRACEEVENT._serialized_end=86972
+  _F2FSTRUNCATEINODEBLOCKSENTERFTRACEEVENT._serialized_start=86974
+  _F2FSTRUNCATEINODEBLOCKSENTERFTRACEEVENT._serialized_end=87085
+  _F2FSTRUNCATEINODEBLOCKSEXITFTRACEEVENT._serialized_start=87087
+  _F2FSTRUNCATEINODEBLOCKSEXITFTRACEEVENT._serialized_end=87166
+  _F2FSTRUNCATENODEFTRACEEVENT._serialized_start=87168
+  _F2FSTRUNCATENODEFTRACEEVENT._serialized_end=87254
+  _F2FSTRUNCATENODESENTERFTRACEEVENT._serialized_start=87256
+  _F2FSTRUNCATENODESENTERFTRACEEVENT._serialized_end=87348
+  _F2FSTRUNCATENODESEXITFTRACEEVENT._serialized_start=87350
+  _F2FSTRUNCATENODESEXITFTRACEEVENT._serialized_end=87423
+  _F2FSTRUNCATEPARTIALNODESFTRACEEVENT._serialized_start=87425
+  _F2FSTRUNCATEPARTIALNODESFTRACEEVENT._serialized_end=87529
+  _F2FSUNLINKENTERFTRACEEVENT._serialized_start=87531
+  _F2FSUNLINKENTERFTRACEEVENT._serialized_end=87629
+  _F2FSUNLINKEXITFTRACEEVENT._serialized_start=87631
+  _F2FSUNLINKEXITFTRACEEVENT._serialized_end=87697
+  _F2FSVMPAGEMKWRITEFTRACEEVENT._serialized_start=87700
+  _F2FSVMPAGEMKWRITEFTRACEEVENT._serialized_end=87831
+  _F2FSWRITEBEGINFTRACEEVENT._serialized_start=87833
+  _F2FSWRITEBEGINFTRACEEVENT._serialized_end=87927
+  _F2FSWRITECHECKPOINTFTRACEEVENT._serialized_start=87929
+  _F2FSWRITECHECKPOINTFTRACEEVENT._serialized_end=88022
+  _F2FSWRITEENDFTRACEEVENT._serialized_start=88024
+  _F2FSWRITEENDFTRACEEVENT._serialized_end=88117
+  _F2FSIOSTATFTRACEEVENT._serialized_start=88120
+  _F2FSIOSTATFTRACEEVENT._serialized_end=88545
+  _F2FSIOSTATLATENCYFTRACEEVENT._serialized_start=88548
+  _F2FSIOSTATLATENCYFTRACEEVENT._serialized_end=89131
+  _F2FSBACKGROUNDGCFTRACEEVENT._serialized_start=89133
+  _F2FSBACKGROUNDGCFTRACEEVENT._serialized_end=89223
+  _F2FSGCBEGINFTRACEEVENT._serialized_start=89226
+  _F2FSGCBEGINFTRACEEVENT._serialized_end=89496
+  _F2FSGCENDFTRACEEVENT._serialized_start=89499
+  _F2FSGCENDFTRACEEVENT._serialized_end=89727
+  _FASTRPCDMASTATFTRACEEVENT._serialized_start=89729
+  _FASTRPCDMASTATFTRACEEVENT._serialized_end=89807
+  _FASTRPCDMAFREEFTRACEEVENT._serialized_start=89809
+  _FASTRPCDMAFREEFTRACEEVENT._serialized_end=89877
+  _FASTRPCDMAALLOCFTRACEEVENT._serialized_start=89879
+  _FASTRPCDMAALLOCFTRACEEVENT._serialized_end=89978
+  _FASTRPCDMAUNMAPFTRACEEVENT._serialized_start=89980
+  _FASTRPCDMAUNMAPFTRACEEVENT._serialized_end=90049
+  _FASTRPCDMAMAPFTRACEEVENT._serialized_start=90051
+  _FASTRPCDMAMAPFTRACEEVENT._serialized_end=90173
+  _FENCEINITFTRACEEVENT._serialized_start=90175
+  _FENCEINITFTRACEEVENT._serialized_end=90263
+  _FENCEDESTROYFTRACEEVENT._serialized_start=90265
+  _FENCEDESTROYFTRACEEVENT._serialized_end=90356
+  _FENCEENABLESIGNALFTRACEEVENT._serialized_start=90358
+  _FENCEENABLESIGNALFTRACEEVENT._serialized_end=90454
+  _FENCESIGNALEDFTRACEEVENT._serialized_start=90456
+  _FENCESIGNALEDFTRACEEVENT._serialized_end=90548
+  _MMFILEMAPADDTOPAGECACHEFTRACEEVENT._serialized_start=90550
+  _MMFILEMAPADDTOPAGECACHEFTRACEEVENT._serialized_end=90658
+  _MMFILEMAPDELETEFROMPAGECACHEFTRACEEVENT._serialized_start=90660
+  _MMFILEMAPDELETEFROMPAGECACHEFTRACEEVENT._serialized_end=90773
+  _DOSYSOPENFTRACEEVENT._serialized_start=90775
+  _DOSYSOPENFTRACEEVENT._serialized_end=90844
+  _OPENEXECFTRACEEVENT._serialized_start=90846
+  _OPENEXECFTRACEEVENT._serialized_end=90885
+  _PRINTFTRACEEVENT._serialized_start=90887
+  _PRINTFTRACEEVENT._serialized_end=90930
+  _FUNCGRAPHENTRYFTRACEEVENT._serialized_start=90932
+  _FUNCGRAPHENTRYFTRACEEVENT._serialized_end=90988
+  _FUNCGRAPHEXITFTRACEEVENT._serialized_start=90990
+  _FUNCGRAPHEXITFTRACEEVENT._serialized_end=91097
+  _FWTPPERFETTOCOUNTERFTRACEEVENT._serialized_start=91099
+  _FWTPPERFETTOCOUNTERFTRACEEVENT._serialized_end=91215
+  _G2DTRACINGMARKWRITEFTRACEEVENT._serialized_start=91217
+  _G2DTRACINGMARKWRITEFTRACEEVENT._serialized_end=91305
+  _GENERICFTRACEEVENT._serialized_start=91308
+  _GENERICFTRACEEVENT._serialized_end=91502
+  _GENERICFTRACEEVENT_FIELD._serialized_start=91408
+  _GENERICFTRACEEVENT_FIELD._serialized_end=91502
+  _KPROBEEVENT._serialized_start=91505
+  _KPROBEEVENT._serialized_end=91695
+  _KPROBEEVENT_KPROBETYPE._serialized_start=91589
+  _KPROBEEVENT_KPROBETYPE._serialized_end=91695
+  _GOOGLEICCEVENTFTRACEEVENT._serialized_start=91697
+  _GOOGLEICCEVENTFTRACEEVENT._serialized_end=91758
+  _GOOGLEIRMEVENTFTRACEEVENT._serialized_start=91760
+  _GOOGLEIRMEVENTFTRACEEVENT._serialized_end=91821
+  _GPUMEMTOTALFTRACEEVENT._serialized_start=91823
+  _GPUMEMTOTALFTRACEEVENT._serialized_end=91890
+  _DRMSCHEDJOBFTRACEEVENT._serialized_start=91892
+  _DRMSCHEDJOBFTRACEEVENT._serialized_end=92014
+  _DRMRUNJOBFTRACEEVENT._serialized_start=92016
+  _DRMRUNJOBFTRACEEVENT._serialized_end=92136
+  _DRMSCHEDPROCESSJOBFTRACEEVENT._serialized_start=92138
+  _DRMSCHEDPROCESSJOBFTRACEEVENT._serialized_end=92184
+  _DRMSCHEDJOBADDDEPFTRACEEVENT._serialized_start=92186
+  _DRMSCHEDJOBADDDEPFTRACEEVENT._serialized_end=92288
+  _DRMSCHEDJOBDONEFTRACEEVENT._serialized_start=92290
+  _DRMSCHEDJOBDONEFTRACEEVENT._serialized_end=92362
+  _DRMSCHEDJOBQUEUEFTRACEEVENT._serialized_start=92365
+  _DRMSCHEDJOBQUEUEFTRACEEVENT._serialized_end=92525
+  _DRMSCHEDJOBRUNFTRACEEVENT._serialized_start=92528
+  _DRMSCHEDJOBRUNFTRACEEVENT._serialized_end=92686
+  _DRMSCHEDJOBUNSCHEDULABLEFTRACEEVENT._serialized_start=92688
+  _DRMSCHEDJOBUNSCHEDULABLEFTRACEEVENT._serialized_end=92797
+  _HYPENTERFTRACEEVENT._serialized_start=92799
+  _HYPENTERFTRACEEVENT._serialized_end=92820
+  _HYPEXITFTRACEEVENT._serialized_start=92822
+  _HYPEXITFTRACEEVENT._serialized_end=92842
+  _HOSTHCALLFTRACEEVENT._serialized_start=92844
+  _HOSTHCALLFTRACEEVENT._serialized_end=92895
+  _HOSTSMCFTRACEEVENT._serialized_start=92897
+  _HOSTSMCFTRACEEVENT._serialized_end=92948
+  _HOSTMEMABORTFTRACEEVENT._serialized_start=92950
+  _HOSTMEMABORTFTRACEEVENT._serialized_end=93002
+  _HOSTFFACALLFTRACEEVENT._serialized_start=93005
+  _HOSTFFACALLFTRACEEVENT._serialized_end=93140
+  _IOMMUIDMAPFTRACEEVENT._serialized_start=93142
+  _IOMMUIDMAPFTRACEEVENT._serialized_end=93205
+  _PSCIMEMPROTECTFTRACEEVENT._serialized_start=93207
+  _PSCIMEMPROTECTFTRACEEVENT._serialized_end=93262
+  _HYPERVISORHOSTHCALLFTRACEEVENT._serialized_start=93264
+  _HYPERVISORHOSTHCALLFTRACEEVENT._serialized_end=93325
+  _HYPERVISORHOSTSMCFTRACEEVENT._serialized_start=93327
+  _HYPERVISORHOSTSMCFTRACEEVENT._serialized_end=93388
+  _HYPERVISORHYPEXITFTRACEEVENT._serialized_start=93390
+  _HYPERVISORHYPEXITFTRACEEVENT._serialized_end=93420
+  _HYPERVISORIOMMUIDMAPFTRACEEVENT._serialized_start=93422
+  _HYPERVISORIOMMUIDMAPFTRACEEVENT._serialized_end=93495
+  _HYPERVISORPSCIMEMPROTECTFTRACEEVENT._serialized_start=93497
+  _HYPERVISORPSCIMEMPROTECTFTRACEEVENT._serialized_end=93562
+  _HYPERVISORHOSTMEMABORTFTRACEEVENT._serialized_start=93564
+  _HYPERVISORHOSTMEMABORTFTRACEEVENT._serialized_end=93626
+  _HYPERVISORHYPENTERFTRACEEVENT._serialized_start=93628
+  _HYPERVISORHYPENTERFTRACEEVENT._serialized_end=93659
+  _HYPERVISORIOMMUIDMAPCOMPLETEFTRACEEVENT._serialized_start=93661
+  _HYPERVISORIOMMUIDMAPCOMPLETEFTRACEEVENT._serialized_end=93715
+  _HYPERVISORVCPUILLEGALTRAPFTRACEEVENT._serialized_start=93717
+  _HYPERVISORVCPUILLEGALTRAPFTRACEEVENT._serialized_end=93768
+  _I2CREADFTRACEEVENT._serialized_start=93770
+  _I2CREADFTRACEEVENT._serialized_end=93868
+  _I2CWRITEFTRACEEVENT._serialized_start=93870
+  _I2CWRITEFTRACEEVENT._serialized_end=93982
+  _I2CRESULTFTRACEEVENT._serialized_start=93984
+  _I2CRESULTFTRACEEVENT._serialized_end=94056
+  _I2CREPLYFTRACEEVENT._serialized_start=94058
+  _I2CREPLYFTRACEEVENT._serialized_end=94170
+  _SMBUSREADFTRACEEVENT._serialized_start=94172
+  _SMBUSREADFTRACEEVENT._serialized_end=94278
+  _SMBUSWRITEFTRACEEVENT._serialized_start=94280
+  _SMBUSWRITEFTRACEEVENT._serialized_end=94400
+  _SMBUSRESULTFTRACEEVENT._serialized_start=94403
+  _SMBUSRESULTFTRACEEVENT._serialized_end=94544
+  _SMBUSREPLYFTRACEEVENT._serialized_start=94546
+  _SMBUSREPLYFTRACEEVENT._serialized_end=94666
+  _IONSTATFTRACEEVENT._serialized_start=94668
+  _IONSTATFTRACEEVENT._serialized_end=94745
+  _IPIENTRYFTRACEEVENT._serialized_start=94747
+  _IPIENTRYFTRACEEVENT._serialized_end=94784
+  _IPIEXITFTRACEEVENT._serialized_start=94786
+  _IPIEXITFTRACEEVENT._serialized_end=94822
+  _IPIRAISEFTRACEEVENT._serialized_start=94824
+  _IPIRAISEFTRACEEVENT._serialized_end=94882
+  _SOFTIRQENTRYFTRACEEVENT._serialized_start=94884
+  _SOFTIRQENTRYFTRACEEVENT._serialized_end=94922
+  _SOFTIRQEXITFTRACEEVENT._serialized_start=94924
+  _SOFTIRQEXITFTRACEEVENT._serialized_end=94961
+  _SOFTIRQRAISEFTRACEEVENT._serialized_start=94963
+  _SOFTIRQRAISEFTRACEEVENT._serialized_end=95001
+  _IRQHANDLERENTRYFTRACEEVENT._serialized_start=95003
+  _IRQHANDLERENTRYFTRACEEVENT._serialized_end=95075
+  _IRQHANDLEREXITFTRACEEVENT._serialized_start=95077
+  _IRQHANDLEREXITFTRACEEVENT._serialized_end=95130
+  _LOCALTIMERENTRYFTRACEEVENT._serialized_start=95132
+  _LOCALTIMERENTRYFTRACEEVENT._serialized_end=95176
+  _LOCALTIMEREXITFTRACEEVENT._serialized_start=95178
+  _LOCALTIMEREXITFTRACEEVENT._serialized_end=95221
+  _KGSLGPUFREQUENCYFTRACEEVENT._serialized_start=95223
+  _KGSLGPUFREQUENCYFTRACEEVENT._serialized_end=95286
+  _KGSLADRENOCMDBATCHQUEUEDFTRACEEVENT._serialized_start=95288
+  _KGSLADRENOCMDBATCHQUEUEDFTRACEEVENT._serialized_end=95401
+  _KGSLADRENOCMDBATCHSUBMITTEDFTRACEEVENT._serialized_start=95404
+  _KGSLADRENOCMDBATCHSUBMITTEDFTRACEEVENT._serialized_end=95653
+  _KGSLADRENOCMDBATCHSYNCFTRACEEVENT._serialized_start=95655
+  _KGSLADRENOCMDBATCHSYNCFTRACEEVENT._serialized_end=95750
+  _KGSLADRENOCMDBATCHRETIREDFTRACEEVENT._serialized_start=95753
+  _KGSLADRENOCMDBATCHRETIREDFTRACEEVENT._serialized_end=96094
+  _ALLOCPAGESIOMMUENDFTRACEEVENT._serialized_start=96096
+  _ALLOCPAGESIOMMUENDFTRACEEVENT._serialized_end=96161
+  _ALLOCPAGESIOMMUFAILFTRACEEVENT._serialized_start=96163
+  _ALLOCPAGESIOMMUFAILFTRACEEVENT._serialized_end=96229
+  _ALLOCPAGESIOMMUSTARTFTRACEEVENT._serialized_start=96231
+  _ALLOCPAGESIOMMUSTARTFTRACEEVENT._serialized_end=96298
+  _ALLOCPAGESSYSENDFTRACEEVENT._serialized_start=96300
+  _ALLOCPAGESSYSENDFTRACEEVENT._serialized_end=96363
+  _ALLOCPAGESSYSFAILFTRACEEVENT._serialized_start=96365
+  _ALLOCPAGESSYSFAILFTRACEEVENT._serialized_end=96429
+  _ALLOCPAGESSYSSTARTFTRACEEVENT._serialized_start=96431
+  _ALLOCPAGESSYSSTARTFTRACEEVENT._serialized_end=96496
+  _DMAALLOCCONTIGUOUSRETRYFTRACEEVENT._serialized_start=96498
+  _DMAALLOCCONTIGUOUSRETRYFTRACEEVENT._serialized_end=96549
+  _IOMMUMAPRANGEFTRACEEVENT._serialized_start=96551
+  _IOMMUMAPRANGEFTRACEEVENT._serialized_end=96634
+  _IOMMUSECPTBLMAPRANGEENDFTRACEEVENT._serialized_start=96636
+  _IOMMUSECPTBLMAPRANGEENDFTRACEEVENT._serialized_end=96738
+  _IOMMUSECPTBLMAPRANGESTARTFTRACEEVENT._serialized_start=96740
+  _IOMMUSECPTBLMAPRANGESTARTFTRACEEVENT._serialized_end=96844
+  _IONALLOCBUFFERENDFTRACEEVENT._serialized_start=96846
+  _IONALLOCBUFFERENDFTRACEEVENT._serialized_end=96958
+  _IONALLOCBUFFERFAILFTRACEEVENT._serialized_start=96961
+  _IONALLOCBUFFERFAILFTRACEEVENT._serialized_end=97089
+  _IONALLOCBUFFERFALLBACKFTRACEEVENT._serialized_start=97092
+  _IONALLOCBUFFERFALLBACKFTRACEEVENT._serialized_end=97224
+  _IONALLOCBUFFERSTARTFTRACEEVENT._serialized_start=97226
+  _IONALLOCBUFFERSTARTFTRACEEVENT._serialized_end=97340
+  _IONCPALLOCRETRYFTRACEEVENT._serialized_start=97342
+  _IONCPALLOCRETRYFTRACEEVENT._serialized_end=97385
+  _IONCPSECUREBUFFERENDFTRACEEVENT._serialized_start=97387
+  _IONCPSECUREBUFFERENDFTRACEEVENT._serialized_end=97482
+  _IONCPSECUREBUFFERSTARTFTRACEEVENT._serialized_start=97484
+  _IONCPSECUREBUFFERSTARTFTRACEEVENT._serialized_end=97581
+  _IONPREFETCHINGFTRACEEVENT._serialized_start=97583
+  _IONPREFETCHINGFTRACEEVENT._serialized_end=97623
+  _IONSECURECMAADDTOPOOLENDFTRACEEVENT._serialized_start=97625
+  _IONSECURECMAADDTOPOOLENDFTRACEEVENT._serialized_end=97716
+  _IONSECURECMAADDTOPOOLSTARTFTRACEEVENT._serialized_start=97718
+  _IONSECURECMAADDTOPOOLSTARTFTRACEEVENT._serialized_end=97811
+  _IONSECURECMAALLOCATEENDFTRACEEVENT._serialized_start=97813
+  _IONSECURECMAALLOCATEENDFTRACEEVENT._serialized_end=97911
+  _IONSECURECMAALLOCATESTARTFTRACEEVENT._serialized_start=97913
+  _IONSECURECMAALLOCATESTARTFTRACEEVENT._serialized_end=98013
+  _IONSECURECMASHRINKPOOLENDFTRACEEVENT._serialized_start=98015
+  _IONSECURECMASHRINKPOOLENDFTRACEEVENT._serialized_end=98097
+  _IONSECURECMASHRINKPOOLSTARTFTRACEEVENT._serialized_start=98099
+  _IONSECURECMASHRINKPOOLSTARTFTRACEEVENT._serialized_end=98183
+  _KFREEFTRACEEVENT._serialized_start=98185
+  _KFREEFTRACEEVENT._serialized_end=98235
+  _KMALLOCFTRACEEVENT._serialized_start=98237
+  _KMALLOCFTRACEEVENT._serialized_end=98348
+  _KMALLOCNODEFTRACEEVENT._serialized_start=98351
+  _KMALLOCNODEFTRACEEVENT._serialized_end=98480
+  _KMEMCACHEALLOCFTRACEEVENT._serialized_start=98482
+  _KMEMCACHEALLOCFTRACEEVENT._serialized_end=98600
+  _KMEMCACHEALLOCNODEFTRACEEVENT._serialized_start=98603
+  _KMEMCACHEALLOCNODEFTRACEEVENT._serialized_end=98739
+  _KMEMCACHEFREEFTRACEEVENT._serialized_start=98741
+  _KMEMCACHEFREEFTRACEEVENT._serialized_end=98799
+  _MIGRATEPAGESENDFTRACEEVENT._serialized_start=98801
+  _MIGRATEPAGESENDFTRACEEVENT._serialized_end=98843
+  _MIGRATEPAGESSTARTFTRACEEVENT._serialized_start=98845
+  _MIGRATEPAGESSTARTFTRACEEVENT._serialized_end=98889
+  _MIGRATERETRYFTRACEEVENT._serialized_start=98891
+  _MIGRATERETRYFTRACEEVENT._serialized_end=98931
+  _MMPAGEALLOCFTRACEEVENT._serialized_start=98933
+  _MMPAGEALLOCFTRACEEVENT._serialized_end=99039
+  _MMPAGEALLOCEXTFRAGFTRACEEVENT._serialized_start=99042
+  _MMPAGEALLOCEXTFRAGFTRACEEVENT._serialized_end=99228
+  _MMPAGEALLOCZONELOCKEDFTRACEEVENT._serialized_start=99230
+  _MMPAGEALLOCZONELOCKEDFTRACEEVENT._serialized_end=99327
+  _MMPAGEFREEFTRACEEVENT._serialized_start=99329
+  _MMPAGEFREEFTRACEEVENT._serialized_end=99394
+  _MMPAGEFREEBATCHEDFTRACEEVENT._serialized_start=99396
+  _MMPAGEFREEBATCHEDFTRACEEVENT._serialized_end=99467
+  _MMPAGEPCPUDRAINFTRACEEVENT._serialized_start=99469
+  _MMPAGEPCPUDRAINFTRACEEVENT._serialized_end=99560
+  _RSSSTATFTRACEEVENT._serialized_start=99562
+  _RSSSTATFTRACEEVENT._serialized_end=99641
+  _IONHEAPSHRINKFTRACEEVENT._serialized_start=99643
+  _IONHEAPSHRINKFTRACEEVENT._serialized_end=99726
+  _IONHEAPGROWFTRACEEVENT._serialized_start=99728
+  _IONHEAPGROWFTRACEEVENT._serialized_end=99809
+  _IONBUFFERCREATEFTRACEEVENT._serialized_start=99811
+  _IONBUFFERCREATEFTRACEEVENT._serialized_end=99866
+  _IONBUFFERDESTROYFTRACEEVENT._serialized_start=99868
+  _IONBUFFERDESTROYFTRACEEVENT._serialized_end=99924
+  _MMALLOCCONTIGMIGRATERANGEINFOFTRACEEVENT._serialized_start=99927
+  _MMALLOCCONTIGMIGRATERANGEINFOFTRACEEVENT._serialized_end=100080
+  _DMABUFRSSSTATFTRACEEVENT._serialized_start=100082
+  _DMABUFRSSSTATFTRACEEVENT._serialized_end=100155
+  _KVMACCESSFAULTFTRACEEVENT._serialized_start=100157
+  _KVMACCESSFAULTFTRACEEVENT._serialized_end=100197
+  _KVMACKIRQFTRACEEVENT._serialized_start=100199
+  _KVMACKIRQFTRACEEVENT._serialized_end=100251
+  _KVMAGEHVAFTRACEEVENT._serialized_start=100253
+  _KVMAGEHVAFTRACEEVENT._serialized_end=100303
+  _KVMAGEPAGEFTRACEEVENT._serialized_start=100305
+  _KVMAGEPAGEFTRACEEVENT._serialized_end=100389
+  _KVMARMCLEARDEBUGFTRACEEVENT._serialized_start=100391
+  _KVMARMCLEARDEBUGFTRACEEVENT._serialized_end=100441
+  _KVMARMSETDREG32FTRACEEVENT._serialized_start=100443
+  _KVMARMSETDREG32FTRACEEVENT._serialized_end=100500
+  _KVMARMSETREGSETFTRACEEVENT._serialized_start=100502
+  _KVMARMSETREGSETFTRACEEVENT._serialized_end=100557
+  _KVMARMSETUPDEBUGFTRACEEVENT._serialized_start=100559
+  _KVMARMSETUPDEBUGFTRACEEVENT._serialized_end=100623
+  _KVMENTRYFTRACEEVENT._serialized_start=100625
+  _KVMENTRYFTRACEEVENT._serialized_end=100663
+  _KVMEXITFTRACEEVENT._serialized_start=100665
+  _KVMEXITFTRACEEVENT._serialized_end=100731
+  _KVMFPUFTRACEEVENT._serialized_start=100733
+  _KVMFPUFTRACEEVENT._serialized_end=100766
+  _KVMGETTIMERMAPFTRACEEVENT._serialized_start=100768
+  _KVMGETTIMERMAPFTRACEEVENT._serialized_end=100879
+  _KVMGUESTFAULTFTRACEEVENT._serialized_start=100881
+  _KVMGUESTFAULTFTRACEEVENT._serialized_end=100965
+  _KVMHANDLESYSREGFTRACEEVENT._serialized_start=100967
+  _KVMHANDLESYSREGFTRACEEVENT._serialized_end=101008
+  _KVMHVCARM64FTRACEEVENT._serialized_start=101010
+  _KVMHVCARM64FTRACEEVENT._serialized_end=101076
+  _KVMIRQLINEFTRACEEVENT._serialized_start=101078
+  _KVMIRQLINEFTRACEEVENT._serialized_end=101165
+  _KVMMMIOFTRACEEVENT._serialized_start=101167
+  _KVMMMIOFTRACEEVENT._serialized_end=101240
+  _KVMMMIOEMULATEFTRACEEVENT._serialized_start=101242
+  _KVMMMIOEMULATEFTRACEEVENT._serialized_end=101315
+  _KVMSETGUESTDEBUGFTRACEEVENT._serialized_start=101317
+  _KVMSETGUESTDEBUGFTRACEEVENT._serialized_end=101381
+  _KVMSETIRQFTRACEEVENT._serialized_start=101383
+  _KVMSETIRQFTRACEEVENT._serialized_end=101456
+  _KVMSETSPTEHVAFTRACEEVENT._serialized_start=101458
+  _KVMSETSPTEHVAFTRACEEVENT._serialized_end=101497
+  _KVMSETWAYFLUSHFTRACEEVENT._serialized_start=101499
+  _KVMSETWAYFLUSHFTRACEEVENT._serialized_end=101558
+  _KVMSYSACCESSFTRACEEVENT._serialized_start=101561
+  _KVMSYSACCESSFTRACEEVENT._serialized_end=101700
+  _KVMTESTAGEHVAFTRACEEVENT._serialized_start=101702
+  _KVMTESTAGEHVAFTRACEEVENT._serialized_end=101741
+  _KVMTIMEREMULATEFTRACEEVENT._serialized_start=101743
+  _KVMTIMEREMULATEFTRACEEVENT._serialized_end=101811
+  _KVMTIMERHRTIMEREXPIREFTRACEEVENT._serialized_start=101813
+  _KVMTIMERHRTIMEREXPIREFTRACEEVENT._serialized_end=101866
+  _KVMTIMERRESTORESTATEFTRACEEVENT._serialized_start=101868
+  _KVMTIMERRESTORESTATEFTRACEEVENT._serialized_end=101947
+  _KVMTIMERSAVESTATEFTRACEEVENT._serialized_start=101949
+  _KVMTIMERSAVESTATEFTRACEEVENT._serialized_end=102025
+  _KVMTIMERUPDATEIRQFTRACEEVENT._serialized_start=102027
+  _KVMTIMERUPDATEIRQFTRACEEVENT._serialized_end=102102
+  _KVMTOGGLECACHEFTRACEEVENT._serialized_start=102104
+  _KVMTOGGLECACHEFTRACEEVENT._serialized_end=102174
+  _KVMUNMAPHVARANGEFTRACEEVENT._serialized_start=102176
+  _KVMUNMAPHVARANGEFTRACEEVENT._serialized_end=102233
+  _KVMUSERSPACEEXITFTRACEEVENT._serialized_start=102235
+  _KVMUSERSPACEEXITFTRACEEVENT._serialized_end=102280
+  _KVMVCPUWAKEUPFTRACEEVENT._serialized_start=102282
+  _KVMVCPUWAKEUPFTRACEEVENT._serialized_end=102351
+  _KVMWFXARM64FTRACEEVENT._serialized_start=102353
+  _KVMWFXARM64FTRACEEVENT._serialized_end=102410
+  _TRAPREGFTRACEEVENT._serialized_start=102412
+  _TRAPREGFTRACEEVENT._serialized_end=102496
+  _VGICUPDATEIRQPENDINGFTRACEEVENT._serialized_start=102498
+  _VGICUPDATEIRQPENDINGFTRACEEVENT._serialized_end=102576
+  _LOWMEMORYKILLFTRACEEVENT._serialized_start=102578
+  _LOWMEMORYKILLFTRACEEVENT._serialized_end=102694
+  _LWISTRACINGMARKWRITEFTRACEEVENT._serialized_start=102696
+  _LWISTRACINGMARKWRITEFTRACEEVENT._serialized_end=102809
+  _MALITRACINGMARKWRITEFTRACEEVENT._serialized_start=102811
+  _MALITRACINGMARKWRITEFTRACEEVENT._serialized_end=102900
+  _MALIMALIKCPUCQSSETFTRACEEVENT._serialized_start=102902
+  _MALIMALIKCPUCQSSETFTRACEEVENT._serialized_end=103019
+  _MALIMALIKCPUCQSWAITSTARTFTRACEEVENT._serialized_start=103021
+  _MALIMALIKCPUCQSWAITSTARTFTRACEEVENT._serialized_end=103144
+  _MALIMALIKCPUCQSWAITENDFTRACEEVENT._serialized_start=103146
+  _MALIMALIKCPUCQSWAITENDFTRACEEVENT._serialized_end=103267
+  _MALIMALIKCPUFENCESIGNALFTRACEEVENT._serialized_start=103269
+  _MALIMALIKCPUFENCESIGNALFTRACEEVENT._serialized_end=103391
+  _MALIMALIKCPUFENCEWAITSTARTFTRACEEVENT._serialized_start=103393
+  _MALIMALIKCPUFENCEWAITSTARTFTRACEEVENT._serialized_end=103518
+  _MALIMALIKCPUFENCEWAITENDFTRACEEVENT._serialized_start=103520
+  _MALIMALIKCPUFENCEWAITENDFTRACEEVENT._serialized_end=103643
+  _MALIMALICSFINTERRUPTSTARTFTRACEEVENT._serialized_start=103645
+  _MALIMALICSFINTERRUPTSTARTFTRACEEVENT._serialized_end=103737
+  _MALIMALICSFINTERRUPTENDFTRACEEVENT._serialized_start=103739
+  _MALIMALICSFINTERRUPTENDFTRACEEVENT._serialized_end=103829
+  _MALIMALIPMMCUHCTLCORESDOWNSCALENOTIFYPENDFTRACEEVENT._serialized_start=103831
+  _MALIMALIPMMCUHCTLCORESDOWNSCALENOTIFYPENDFTRACEEVENT._serialized_end=103939
+  _MALIMALIPMMCUHCTLCORESNOTIFYPENDFTRACEEVENT._serialized_start=103941
+  _MALIMALIPMMCUHCTLCORESNOTIFYPENDFTRACEEVENT._serialized_end=104040
+  _MALIMALIPMMCUHCTLCOREINACTIVEPENDFTRACEEVENT._serialized_start=104042
+  _MALIMALIPMMCUHCTLCOREINACTIVEPENDFTRACEEVENT._serialized_end=104142
+  _MALIMALIPMMCUHCTLMCUONRECHECKFTRACEEVENT._serialized_start=104144
+  _MALIMALIPMMCUHCTLMCUONRECHECKFTRACEEVENT._serialized_end=104240
+  _MALIMALIPMMCUHCTLSHADERSCOREOFFPENDFTRACEEVENT._serialized_start=104242
+  _MALIMALIPMMCUHCTLSHADERSCOREOFFPENDFTRACEEVENT._serialized_end=104344
+  _MALIMALIPMMCUHCTLSHADERSPENDOFFFTRACEEVENT._serialized_start=104346
+  _MALIMALIPMMCUHCTLSHADERSPENDOFFFTRACEEVENT._serialized_end=104444
+  _MALIMALIPMMCUHCTLSHADERSPENDONFTRACEEVENT._serialized_start=104446
+  _MALIMALIPMMCUHCTLSHADERSPENDONFTRACEEVENT._serialized_end=104543
+  _MALIMALIPMMCUHCTLSHADERSREADYOFFFTRACEEVENT._serialized_start=104545
+  _MALIMALIPMMCUHCTLSHADERSREADYOFFFTRACEEVENT._serialized_end=104644
+  _MALIMALIPMMCUINSLEEPFTRACEEVENT._serialized_start=104646
+  _MALIMALIPMMCUINSLEEPFTRACEEVENT._serialized_end=104733
+  _MALIMALIPMMCUOFFFTRACEEVENT._serialized_start=104735
+  _MALIMALIPMMCUOFFFTRACEEVENT._serialized_end=104818
+  _MALIMALIPMMCUONFTRACEEVENT._serialized_start=104820
+  _MALIMALIPMMCUONFTRACEEVENT._serialized_end=104902
+  _MALIMALIPMMCUONCOREATTRUPDATEPENDFTRACEEVENT._serialized_start=104904
+  _MALIMALIPMMCUONCOREATTRUPDATEPENDFTRACEEVENT._serialized_end=105004
+  _MALIMALIPMMCUONGLBREINITPENDFTRACEEVENT._serialized_start=105006
+  _MALIMALIPMMCUONGLBREINITPENDFTRACEEVENT._serialized_end=105101
+  _MALIMALIPMMCUONHALTFTRACEEVENT._serialized_start=105103
+  _MALIMALIPMMCUONHALTFTRACEEVENT._serialized_end=105189
+  _MALIMALIPMMCUONHWCNTDISABLEFTRACEEVENT._serialized_start=105191
+  _MALIMALIPMMCUONHWCNTDISABLEFTRACEEVENT._serialized_end=105285
+  _MALIMALIPMMCUONHWCNTENABLEFTRACEEVENT._serialized_start=105287
+  _MALIMALIPMMCUONHWCNTENABLEFTRACEEVENT._serialized_end=105380
+  _MALIMALIPMMCUONPENDHALTFTRACEEVENT._serialized_start=105382
+  _MALIMALIPMMCUONPENDHALTFTRACEEVENT._serialized_end=105472
+  _MALIMALIPMMCUONPENDSLEEPFTRACEEVENT._serialized_start=105474
+  _MALIMALIPMMCUONPENDSLEEPFTRACEEVENT._serialized_end=105565
+  _MALIMALIPMMCUONSLEEPINITIATEFTRACEEVENT._serialized_start=105567
+  _MALIMALIPMMCUONSLEEPINITIATEFTRACEEVENT._serialized_end=105662
+  _MALIMALIPMMCUPENDOFFFTRACEEVENT._serialized_start=105664
+  _MALIMALIPMMCUPENDOFFFTRACEEVENT._serialized_end=105751
+  _MALIMALIPMMCUPENDONRELOADFTRACEEVENT._serialized_start=105753
+  _MALIMALIPMMCUPENDONRELOADFTRACEEVENT._serialized_end=105845
+  _MALIMALIPMMCUPOWERDOWNFTRACEEVENT._serialized_start=105847
+  _MALIMALIPMMCUPOWERDOWNFTRACEEVENT._serialized_end=105936
+  _MALIMALIPMMCURESETWAITFTRACEEVENT._serialized_start=105938
+  _MALIMALIPMMCURESETWAITFTRACEEVENT._serialized_end=106027
+  _MALIGPUPOWERSTATEFTRACEEVENT._serialized_start=106029
+  _MALIGPUPOWERSTATEFTRACEEVENT._serialized_end=106116
+  _MDPCMDKICKOFFFTRACEEVENT._serialized_start=106118
+  _MDPCMDKICKOFFFTRACEEVENT._serialized_end=106182
+  _MDPCOMMITFTRACEEVENT._serialized_start=106184
+  _MDPCOMMITFTRACEEVENT._serialized_end=106274
+  _MDPPERFSETOTFTRACEEVENT._serialized_start=106276
+  _MDPPERFSETOTFTRACEEVENT._serialized_end=106367
+  _MDPSSPPCHANGEFTRACEEVENT._serialized_start=106370
+  _MDPSSPPCHANGEFTRACEEVENT._serialized_end=106638
+  _TRACINGMARKWRITEFTRACEEVENT._serialized_start=106640
+  _TRACINGMARKWRITEFTRACEEVENT._serialized_end=106723
+  _MDPCMDPINGPONGDONEFTRACEEVENT._serialized_start=106725
+  _MDPCMDPINGPONGDONEFTRACEEVENT._serialized_end=106825
+  _MDPCOMPAREBWFTRACEEVENT._serialized_start=106828
+  _MDPCOMPAREBWFTRACEEVENT._serialized_end=106992
+  _MDPPERFSETPANICLUTSFTRACEEVENT._serialized_start=106994
+  _MDPPERFSETPANICLUTSFTRACEEVENT._serialized_end=107106
+  _MDPSSPPSETFTRACEEVENT._serialized_start=107109
+  _MDPSSPPSETFTRACEEVENT._serialized_end=107374
+  _MDPCMDREADPTRDONEFTRACEEVENT._serialized_start=107376
+  _MDPCMDREADPTRDONEFTRACEEVENT._serialized_end=107441
+  _MDPMISRCRCFTRACEEVENT._serialized_start=107443
+  _MDPMISRCRCFTRACEEVENT._serialized_end=107516
+  _MDPPERFSETQOSLUTSFTRACEEVENT._serialized_start=107518
+  _MDPPERFSETQOSLUTSFTRACEEVENT._serialized_end=107643
+  _MDPTRACECOUNTERFTRACEEVENT._serialized_start=107645
+  _MDPTRACECOUNTERFTRACEEVENT._serialized_end=107723
+  _MDPCMDRELEASEBWFTRACEEVENT._serialized_start=107725
+  _MDPCMDRELEASEBWFTRACEEVENT._serialized_end=107770
+  _MDPMIXERUPDATEFTRACEEVENT._serialized_start=107772
+  _MDPMIXERUPDATEFTRACEEVENT._serialized_end=107818
+  _MDPPERFSETWMLEVELSFTRACEEVENT._serialized_start=107821
+  _MDPPERFSETWMLEVELSFTRACEEVENT._serialized_end=107981
+  _MDPVIDEOUNDERRUNDONEFTRACEEVENT._serialized_start=107983
+  _MDPVIDEOUNDERRUNDONEFTRACEEVENT._serialized_end=108055
+  _MDPCMDWAITPINGPONGFTRACEEVENT._serialized_start=108057
+  _MDPCMDWAITPINGPONGFTRACEEVENT._serialized_end=108126
+  _MDPPERFPREFILLCALCFTRACEEVENT._serialized_start=108129
+  _MDPPERFPREFILLCALCFTRACEEVENT._serialized_end=108335
+  _MDPPERFUPDATEBUSFTRACEEVENT._serialized_start=108337
+  _MDPPERFUPDATEBUSFTRACEEVENT._serialized_end=108418
+  _ROTATORBWAOASCONTEXTFTRACEEVENT._serialized_start=108420
+  _ROTATORBWAOASCONTEXTFTRACEEVENT._serialized_end=108468
+  _MMEVENTRECORDFTRACEEVENT._serialized_start=108470
+  _MMEVENTRECORDFTRACEEVENT._serialized_end=108559
+  _NETIFRECEIVESKBFTRACEEVENT._serialized_start=108561
+  _NETIFRECEIVESKBFTRACEEVENT._serialized_end=108633
+  _NETDEVXMITFTRACEEVENT._serialized_start=108635
+  _NETDEVXMITFTRACEEVENT._serialized_end=108714
+  _NAPIGRORECEIVEENTRYFTRACEEVENT._serialized_start=108717
+  _NAPIGRORECEIVEENTRYFTRACEEVENT._serialized_end=109096
+  _NAPIGRORECEIVEEXITFTRACEEVENT._serialized_start=109098
+  _NAPIGRORECEIVEEXITFTRACEEVENT._serialized_end=109142
+  _OOMSCOREADJUPDATEFTRACEEVENT._serialized_start=109144
+  _OOMSCOREADJUPDATEFTRACEEVENT._serialized_end=109224
+  _MARKVICTIMFTRACEEVENT._serialized_start=109226
+  _MARKVICTIMFTRACEEVENT._serialized_end=109262
+  _DSICMDFIFOSTATUSFTRACEEVENT._serialized_start=109264
+  _DSICMDFIFOSTATUSFTRACEEVENT._serialized_end=109326
+  _DSIRXFTRACEEVENT._serialized_start=109328
+  _DSIRXFTRACEEVENT._serialized_end=109375
+  _DSITXFTRACEEVENT._serialized_start=109377
+  _DSITXFTRACEEVENT._serialized_end=109439
+  _PANELWRITEGENERICFTRACEEVENT._serialized_start=109441
+  _PANELWRITEGENERICFTRACEEVENT._serialized_end=109568
+  _SCHEDSWITCHWITHCTRSFTRACEEVENT._serialized_start=109571
+  _SCHEDSWITCHWITHCTRSFTRACEEVENT._serialized_end=109959
+  _PIXELMMKSWAPDWAKEFTRACEEVENT._serialized_start=109961
+  _PIXELMMKSWAPDWAKEFTRACEEVENT._serialized_end=110009
+  _PIXELMMKSWAPDDONEFTRACEEVENT._serialized_start=110012
+  _PIXELMMKSWAPDDONEFTRACEEVENT._serialized_end=110145
+  _CPUFREQUENCYFTRACEEVENT._serialized_start=110147
+  _CPUFREQUENCYFTRACEEVENT._serialized_end=110203
+  _CPUFREQUENCYLIMITSFTRACEEVENT._serialized_start=110205
+  _CPUFREQUENCYLIMITSFTRACEEVENT._serialized_end=110288
+  _CPUIDLEFTRACEEVENT._serialized_start=110290
+  _CPUIDLEFTRACEEVENT._serialized_end=110341
+  _CLOCKENABLEFTRACEEVENT._serialized_start=110343
+  _CLOCKENABLEFTRACEEVENT._serialized_end=110412
+  _CLOCKDISABLEFTRACEEVENT._serialized_start=110414
+  _CLOCKDISABLEFTRACEEVENT._serialized_end=110484
+  _CLOCKSETRATEFTRACEEVENT._serialized_start=110486
+  _CLOCKSETRATEFTRACEEVENT._serialized_end=110556
+  _SUSPENDRESUMEFTRACEEVENT._serialized_start=110558
+  _SUSPENDRESUMEFTRACEEVENT._serialized_end=110628
+  _GPUFREQUENCYFTRACEEVENT._serialized_start=110630
+  _GPUFREQUENCYFTRACEEVENT._serialized_end=110686
+  _WAKEUPSOURCEACTIVATEFTRACEEVENT._serialized_start=110688
+  _WAKEUPSOURCEACTIVATEFTRACEEVENT._serialized_end=110750
+  _WAKEUPSOURCEDEACTIVATEFTRACEEVENT._serialized_start=110752
+  _WAKEUPSOURCEDEACTIVATEFTRACEEVENT._serialized_end=110816
+  _GPUWORKPERIODFTRACEEVENT._serialized_start=110819
+  _GPUWORKPERIODFTRACEEVENT._serialized_end=110952
+  _DEVICEPMCALLBACKSTARTFTRACEEVENT._serialized_start=110954
+  _DEVICEPMCALLBACKSTARTFTRACEEVENT._serialized_end=111067
+  _DEVICEPMCALLBACKENDFTRACEEVENT._serialized_start=111069
+  _DEVICEPMCALLBACKENDFTRACEEVENT._serialized_end=111148
+  _CONSOLEFTRACEEVENT._serialized_start=111150
+  _CONSOLEFTRACEEVENT._serialized_end=111183
+  _SYSENTERFTRACEEVENT._serialized_start=111185
+  _SYSENTERFTRACEEVENT._serialized_end=111232
+  _SYSEXITFTRACEEVENT._serialized_start=111234
+  _SYSEXITFTRACEEVENT._serialized_end=111279
+  _REGULATORDISABLEFTRACEEVENT._serialized_start=111281
+  _REGULATORDISABLEFTRACEEVENT._serialized_end=111324
+  _REGULATORDISABLECOMPLETEFTRACEEVENT._serialized_start=111326
+  _REGULATORDISABLECOMPLETEFTRACEEVENT._serialized_end=111377
+  _REGULATORENABLEFTRACEEVENT._serialized_start=111379
+  _REGULATORENABLEFTRACEEVENT._serialized_end=111421
+  _REGULATORENABLECOMPLETEFTRACEEVENT._serialized_start=111423
+  _REGULATORENABLECOMPLETEFTRACEEVENT._serialized_end=111473
+  _REGULATORENABLEDELAYFTRACEEVENT._serialized_start=111475
+  _REGULATORENABLEDELAYFTRACEEVENT._serialized_end=111522
+  _REGULATORSETVOLTAGEFTRACEEVENT._serialized_start=111524
+  _REGULATORSETVOLTAGEFTRACEEVENT._serialized_end=111596
+  _REGULATORSETVOLTAGECOMPLETEFTRACEEVENT._serialized_start=111598
+  _REGULATORSETVOLTAGECOMPLETEFTRACEEVENT._serialized_end=111665
+  _RPMSTATUSFTRACEEVENT._serialized_start=111667
+  _RPMSTATUSFTRACEEVENT._serialized_end=111719
+  _SAMSUNGTRACINGMARKWRITEFTRACEEVENT._serialized_start=111721
+  _SAMSUNGTRACINGMARKWRITEFTRACEEVENT._serialized_end=111846
+  _SCHEDSWITCHFTRACEEVENT._serialized_start=111849
+  _SCHEDSWITCHFTRACEEVENT._serialized_end=112005
+  _SCHEDWAKEUPFTRACEEVENT._serialized_start=112007
+  _SCHEDWAKEUPFTRACEEVENT._serialized_end=112109
+  _SCHEDBLOCKEDREASONFTRACEEVENT._serialized_start=112111
+  _SCHEDBLOCKEDREASONFTRACEEVENT._serialized_end=112188
+  _SCHEDCPUHOTPLUGFTRACEEVENT._serialized_start=112190
+  _SCHEDCPUHOTPLUGFTRACEEVENT._serialized_end=112271
+  _SCHEDWAKINGFTRACEEVENT._serialized_start=112273
+  _SCHEDWAKINGFTRACEEVENT._serialized_end=112375
+  _SCHEDWAKEUPNEWFTRACEEVENT._serialized_start=112377
+  _SCHEDWAKEUPNEWFTRACEEVENT._serialized_end=112482
+  _SCHEDPROCESSEXECFTRACEEVENT._serialized_start=112484
+  _SCHEDPROCESSEXECFTRACEEVENT._serialized_end=112561
+  _SCHEDPROCESSEXITFTRACEEVENT._serialized_start=112563
+  _SCHEDPROCESSEXITFTRACEEVENT._serialized_end=112647
+  _SCHEDPROCESSFORKFTRACEEVENT._serialized_start=112649
+  _SCHEDPROCESSFORKFTRACEEVENT._serialized_end=112758
+  _SCHEDPROCESSFREEFTRACEEVENT._serialized_start=112760
+  _SCHEDPROCESSFREEFTRACEEVENT._serialized_end=112830
+  _SCHEDPROCESSHANGFTRACEEVENT._serialized_start=112832
+  _SCHEDPROCESSHANGFTRACEEVENT._serialized_end=112888
+  _SCHEDPROCESSWAITFTRACEEVENT._serialized_start=112890
+  _SCHEDPROCESSWAITFTRACEEVENT._serialized_end=112960
+  _SCHEDPISETPRIOFTRACEEVENT._serialized_start=112962
+  _SCHEDPISETPRIOFTRACEEVENT._serialized_end=113050
+  _SCHEDCPUUTILCFSFTRACEEVENT._serialized_start=113053
+  _SCHEDCPUUTILCFSFTRACEEVENT._serialized_end=113381
+  _SCHEDMIGRATETASKFTRACEEVENT._serialized_start=113384
+  _SCHEDMIGRATETASKFTRACEEVENT._serialized_end=113521
+  _SCHEDWAKEUPTASKATTRFTRACEEVENT._serialized_start=113523
+  _SCHEDWAKEUPTASKATTRFTRACEEVENT._serialized_end=113647
+  _SCMCALLSTARTFTRACEEVENT._serialized_start=113649
+  _SCMCALLSTARTFTRACEEVENT._serialized_end=113715
+  _SCMCALLENDFTRACEEVENT._serialized_start=113717
+  _SCMCALLENDFTRACEEVENT._serialized_end=113740
+  _SCSIDISPATCHCMDERRORFTRACEEVENT._serialized_start=113743
+  _SCSIDISPATCHCMDERRORFTRACEEVENT._serialized_end=113995
+  _SCSIDISPATCHCMDTIMEOUTFTRACEEVENT._serialized_start=113998
+  _SCSIDISPATCHCMDTIMEOUTFTRACEEVENT._serialized_end=114301
+  _SCSIEHWAKEUPFTRACEEVENT._serialized_start=114303
+  _SCSIEHWAKEUPFTRACEEVENT._serialized_end=114345
+  _SDETRACINGMARKWRITEFTRACEEVENT._serialized_start=114347
+  _SDETRACINGMARKWRITEFTRACEEVENT._serialized_end=114468
+  _SDESDEEVTLOGFTRACEEVENT._serialized_start=114470
+  _SDESDEEVTLOGFTRACEEVENT._serialized_end=114544
+  _SDESDEPERFCALCCRTCFTRACEEVENT._serialized_start=114547
+  _SDESDEPERFCALCCRTCFTRACEEVENT._serialized_end=114727
+  _SDESDEPERFCRTCUPDATEFTRACEEVENT._serialized_start=114730
+  _SDESDEPERFCRTCUPDATEFTRACEEVENT._serialized_end=115013
+  _SDESDEPERFSETQOSLUTSFTRACEEVENT._serialized_start=115015
+  _SDESDEPERFSETQOSLUTSFTRACEEVENT._serialized_end=115131
+  _SDESDEPERFUPDATEBUSFTRACEEVENT._serialized_start=115133
+  _SDESDEPERFUPDATEBUSFTRACEEVENT._serialized_end=115233
+  _SIGNALDELIVERFTRACEEVENT._serialized_start=115235
+  _SIGNALDELIVERFTRACEEVENT._serialized_end=115306
+  _SIGNALGENERATEFTRACEEVENT._serialized_start=115308
+  _SIGNALGENERATEFTRACEEVENT._serialized_end=115420
+  _KFREESKBFTRACEEVENT._serialized_start=115422
+  _KFREESKBFTRACEEVENT._serialized_end=115496
+  _INETSOCKSETSTATEFTRACEEVENT._serialized_start=115499
+  _INETSOCKSETSTATEFTRACEEVENT._serialized_end=115674
+  _SYNCPTFTRACEEVENT._serialized_start=115676
+  _SYNCPTFTRACEEVENT._serialized_end=115728
+  _SYNCTIMELINEFTRACEEVENT._serialized_start=115730
+  _SYNCTIMELINEFTRACEEVENT._serialized_end=115784
+  _SYNCWAITFTRACEEVENT._serialized_start=115786
+  _SYNCWAITFTRACEEVENT._serialized_end=115852
+  _RSSSTATTHROTTLEDFTRACEEVENT._serialized_start=115854
+  _RSSSTATTHROTTLEDFTRACEEVENT._serialized_end=115942
+  _SUSPENDRESUMEMINIMALFTRACEEVENT._serialized_start=115944
+  _SUSPENDRESUMEMINIMALFTRACEEVENT._serialized_end=115992
+  _ZEROFTRACEEVENT._serialized_start=115994
+  _ZEROFTRACEEVENT._serialized_end=116067
+  _TASKNEWTASKFTRACEEVENT._serialized_start=116069
+  _TASKNEWTASKFTRACEEVENT._serialized_end=116164
+  _TASKRENAMEFTRACEEVENT._serialized_start=116166
+  _TASKRENAMEFTRACEEVENT._serialized_end=116259
+  _TCPRETRANSMITSKBFTRACEEVENT._serialized_start=116262
+  _TCPRETRANSMITSKBFTRACEEVENT._serialized_end=116399
+  _THERMALTEMPERATUREFTRACEEVENT._serialized_start=116401
+  _THERMALTEMPERATUREFTRACEEVENT._serialized_end=116499
+  _CDEVUPDATEFTRACEEVENT._serialized_start=116501
+  _CDEVUPDATEFTRACEEVENT._serialized_end=116554
+  _THERMALEXYNOSACPMBULKFTRACEEVENT._serialized_start=116557
+  _THERMALEXYNOSACPMBULKFTRACEEVENT._serialized_end=116785
+  _THERMALEXYNOSACPMHIGHOVERHEADFTRACEEVENT._serialized_start=116788
+  _THERMALEXYNOSACPMHIGHOVERHEADFTRACEEVENT._serialized_end=116950
+  _HRTIMERSTARTFTRACEEVENT._serialized_start=116952
+  _HRTIMERSTARTFTRACEEVENT._serialized_end=117064
+  _HRTIMERCANCELFTRACEEVENT._serialized_start=117066
+  _HRTIMERCANCELFTRACEEVENT._serialized_end=117109
+  _HRTIMEREXPIREENTRYFTRACEEVENT._serialized_start=117111
+  _HRTIMEREXPIREENTRYFTRACEEVENT._serialized_end=117190
+  _HRTIMEREXPIREEXITFTRACEEVENT._serialized_start=117192
+  _HRTIMEREXPIREEXITFTRACEEVENT._serialized_end=117239
+  _TIMERSTARTFTRACEEVENT._serialized_start=117242
+  _TIMERSTARTFTRACEEVENT._serialized_end=117386
+  _TIMERCANCELFTRACEEVENT._serialized_start=117388
+  _TIMERCANCELFTRACEEVENT._serialized_end=117427
+  _TIMEREXPIREENTRYFTRACEEVENT._serialized_start=117429
+  _TIMEREXPIREENTRYFTRACEEVENT._serialized_end=117521
+  _TIMEREXPIREEXITFTRACEEVENT._serialized_start=117523
+  _TIMEREXPIREEXITFTRACEEVENT._serialized_end=117566
+  _TRUSTYSMCFTRACEEVENT._serialized_start=117568
+  _TRUSTYSMCFTRACEEVENT._serialized_end=117638
+  _TRUSTYSMCDONEFTRACEEVENT._serialized_start=117640
+  _TRUSTYSMCDONEFTRACEEVENT._serialized_end=117679
+  _TRUSTYSTDCALL32FTRACEEVENT._serialized_start=117681
+  _TRUSTYSTDCALL32FTRACEEVENT._serialized_end=117757
+  _TRUSTYSTDCALL32DONEFTRACEEVENT._serialized_start=117759
+  _TRUSTYSTDCALL32DONEFTRACEEVENT._serialized_end=117804
+  _TRUSTYSHAREMEMORYFTRACEEVENT._serialized_start=117806
+  _TRUSTYSHAREMEMORYFTRACEEVENT._serialized_end=117878
+  _TRUSTYSHAREMEMORYDONEFTRACEEVENT._serialized_start=117880
+  _TRUSTYSHAREMEMORYDONEFTRACEEVENT._serialized_end=117985
+  _TRUSTYRECLAIMMEMORYFTRACEEVENT._serialized_start=117987
+  _TRUSTYRECLAIMMEMORYFTRACEEVENT._serialized_end=118031
+  _TRUSTYRECLAIMMEMORYDONEFTRACEEVENT._serialized_start=118033
+  _TRUSTYRECLAIMMEMORYDONEFTRACEEVENT._serialized_end=118094
+  _TRUSTYIRQFTRACEEVENT._serialized_start=118096
+  _TRUSTYIRQFTRACEEVENT._serialized_end=118131
+  _TRUSTYIPCHANDLEEVENTFTRACEEVENT._serialized_start=118133
+  _TRUSTYIPCHANDLEEVENTFTRACEEVENT._serialized_end=118216
+  _TRUSTYIPCCONNECTFTRACEEVENT._serialized_start=118218
+  _TRUSTYIPCCONNECTFTRACEEVENT._serialized_end=118290
+  _TRUSTYIPCCONNECTENDFTRACEEVENT._serialized_start=118292
+  _TRUSTYIPCCONNECTENDFTRACEEVENT._serialized_end=118366
+  _TRUSTYIPCWRITEFTRACEEVENT._serialized_start=118369
+  _TRUSTYIPCWRITEFTRACEEVENT._serialized_end=118499
+  _TRUSTYIPCPOLLFTRACEEVENT._serialized_start=118501
+  _TRUSTYIPCPOLLFTRACEEVENT._serialized_end=118578
+  _TRUSTYIPCREADFTRACEEVENT._serialized_start=118580
+  _TRUSTYIPCREADFTRACEEVENT._serialized_end=118638
+  _TRUSTYIPCREADENDFTRACEEVENT._serialized_start=118640
+  _TRUSTYIPCREADENDFTRACEEVENT._serialized_end=118754
+  _TRUSTYIPCRXFTRACEEVENT._serialized_start=118756
+  _TRUSTYIPCRXFTRACEEVENT._serialized_end=118828
+  _TRUSTYENQUEUENOPFTRACEEVENT._serialized_start=118830
+  _TRUSTYENQUEUENOPFTRACEEVENT._serialized_end=118901
+  _UFSHCDCOMMANDFTRACEEVENT._serialized_start=118904
+  _UFSHCDCOMMANDFTRACEEVENT._serialized_end=119090
+  _UFSHCDCLKGATINGFTRACEEVENT._serialized_start=119092
+  _UFSHCDCLKGATINGFTRACEEVENT._serialized_end=119153
+  _V4L2QBUFFTRACEEVENT._serialized_start=119156
+  _V4L2QBUFFTRACEEVENT._serialized_end=119567
+  _V4L2DQBUFFTRACEEVENT._serialized_start=119570
+  _V4L2DQBUFFTRACEEVENT._serialized_end=119982
+  _VB2V4L2BUFQUEUEFTRACEEVENT._serialized_start=119985
+  _VB2V4L2BUFQUEUEFTRACEEVENT._serialized_end=120355
+  _VB2V4L2BUFDONEFTRACEEVENT._serialized_start=120358
+  _VB2V4L2BUFDONEFTRACEEVENT._serialized_end=120727
+  _VB2V4L2QBUFFTRACEEVENT._serialized_start=120730
+  _VB2V4L2QBUFFTRACEEVENT._serialized_end=121096
+  _VB2V4L2DQBUFFTRACEEVENT._serialized_start=121099
+  _VB2V4L2DQBUFFTRACEEVENT._serialized_end=121466
+  _VIRTIOGPUCMDQUEUEFTRACEEVENT._serialized_start=121469
+  _VIRTIOGPUCMDQUEUEFTRACEEVENT._serialized_end=121634
+  _VIRTIOGPUCMDRESPONSEFTRACEEVENT._serialized_start=121637
+  _VIRTIOGPUCMDRESPONSEFTRACEEVENT._serialized_end=121805
+  _VIRTIOVIDEOCMDFTRACEEVENT._serialized_start=121807
+  _VIRTIOVIDEOCMDFTRACEEVENT._serialized_end=121867
+  _VIRTIOVIDEOCMDDONEFTRACEEVENT._serialized_start=121869
+  _VIRTIOVIDEOCMDDONEFTRACEEVENT._serialized_end=121933
+  _VIRTIOVIDEORESOURCEQUEUEFTRACEEVENT._serialized_start=121936
+  _VIRTIOVIDEORESOURCEQUEUEFTRACEEVENT._serialized_end=122132
+  _VIRTIOVIDEORESOURCEQUEUEDONEFTRACEEVENT._serialized_start=122135
+  _VIRTIOVIDEORESOURCEQUEUEDONEFTRACEEVENT._serialized_end=122335
+  _MMVMSCANDIRECTRECLAIMBEGINFTRACEEVENT._serialized_start=122337
+  _MMVMSCANDIRECTRECLAIMBEGINFTRACEEVENT._serialized_end=122433
+  _MMVMSCANDIRECTRECLAIMENDFTRACEEVENT._serialized_start=122435
+  _MMVMSCANDIRECTRECLAIMENDFTRACEEVENT._serialized_end=122494
+  _MMVMSCANKSWAPDWAKEFTRACEEVENT._serialized_start=122496
+  _MMVMSCANKSWAPDWAKEFTRACEEVENT._serialized_end=122568
+  _MMVMSCANKSWAPDSLEEPFTRACEEVENT._serialized_start=122570
+  _MMVMSCANKSWAPDSLEEPFTRACEEVENT._serialized_end=122615
+  _MMSHRINKSLABSTARTFTRACEEVENT._serialized_start=122618
+  _MMSHRINKSLABSTARTFTRACEEVENT._serialized_end=122851
+  _MMSHRINKSLABENDFTRACEEVENT._serialized_start=122854
+  _MMSHRINKSLABENDFTRACEEVENT._serialized_end=122999
+  _WORKQUEUEACTIVATEWORKFTRACEEVENT._serialized_start=123001
+  _WORKQUEUEACTIVATEWORKFTRACEEVENT._serialized_end=123067
+  _WORKQUEUEEXECUTEENDFTRACEEVENT._serialized_start=123069
+  _WORKQUEUEEXECUTEENDFTRACEEVENT._serialized_end=123133
+  _WORKQUEUEEXECUTESTARTFTRACEEVENT._serialized_start=123135
+  _WORKQUEUEEXECUTESTARTFTRACEEVENT._serialized_end=123201
+  _WORKQUEUEQUEUEWORKFTRACEEVENT._serialized_start=123203
+  _WORKQUEUEQUEUEWORKFTRACEEVENT._serialized_end=123315
+  _FTRACEEVENT._serialized_start=123319
+  _FTRACEEVENT._serialized_end=168550
+  _FTRACECPUSTATS._serialized_start=168553
+  _FTRACECPUSTATS._serialized_end=168746
+  _FTRACEKPROBESTATS._serialized_start=168748
+  _FTRACEKPROBESTATS._serialized_end=168797
+  _FTRACESTATS._serialized_start=168800
+  _FTRACESTATS._serialized_end=169383
+  _FTRACESTATS_PHASE._serialized_start=169321
+  _FTRACESTATS_PHASE._serialized_end=169383
+  _FTRACEEVENTBUNDLE._serialized_start=169386
+  _FTRACEEVENTBUNDLE._serialized_end=170466
+  _FTRACEEVENTBUNDLE_COMPACTSCHED._serialized_start=169924
+  _FTRACEEVENTBUNDLE_COMPACTSCHED._serialized_end=170290
+  _FTRACEEVENTBUNDLE_FTRACEERROR._serialized_start=170292
+  _FTRACEEVENTBUNDLE_FTRACEERROR._serialized_end=170376
+  _FTRACEEVENTBUNDLE_GENERICEVENTDESCRIPTOR._serialized_start=170378
+  _FTRACEEVENTBUNDLE_GENERICEVENTDESCRIPTOR._serialized_end=170466
+  _GENERICKERNELCPUFREQUENCYEVENT._serialized_start=170468
+  _GENERICKERNELCPUFREQUENCYEVENT._serialized_end=170530
+  _GENERICKERNELTASKSTATEEVENT._serialized_start=170533
+  _GENERICKERNELTASKSTATEEVENT._serialized_end=170951
+  _GENERICKERNELTASKSTATEEVENT_TASKSTATEENUM._serialized_start=170694
+  _GENERICKERNELTASKSTATEEVENT_TASKSTATEENUM._serialized_end=170951
+  _GENERICKERNELTASKRENAMEEVENT._serialized_start=170953
+  _GENERICKERNELTASKRENAMEEVENT._serialized_end=171010
+  _GENERICKERNELPROCESSTREE._serialized_start=171013
+  _GENERICKERNELPROCESSTREE._serialized_end=171305
+  _GENERICKERNELPROCESSTREE_THREAD._serialized_start=171178
+  _GENERICKERNELPROCESSTREE_THREAD._serialized_end=171250
+  _GENERICKERNELPROCESSTREE_PROCESS._serialized_start=171252
+  _GENERICKERNELPROCESSTREE_PROCESS._serialized_end=171305
+  _GPUCOUNTEREVENT._serialized_start=171308
+  _GPUCOUNTEREVENT._serialized_end=171559
+  _GPUCOUNTEREVENT_GPUCOUNTER._serialized_start=171473
+  _GPUCOUNTEREVENT_GPUCOUNTER._serialized_end=171559
+  _GPULOG._serialized_start=171562
+  _GPULOG._serialized_end=171822
+  _GPULOG_SEVERITY._serialized_start=171659
+  _GPULOG_SEVERITY._serialized_end=171822
+  _GPURENDERSTAGEEVENT._serialized_start=171825
+  _GPURENDERSTAGEEVENT._serialized_end=172744
+  _GPURENDERSTAGEEVENT_EXTRADATA._serialized_start=172334
+  _GPURENDERSTAGEEVENT_EXTRADATA._serialized_end=172374
+  _GPURENDERSTAGEEVENT_SPECIFICATIONS._serialized_start=172377
+  _GPURENDERSTAGEEVENT_SPECIFICATIONS._serialized_end=172738
+  _GPURENDERSTAGEEVENT_SPECIFICATIONS_CONTEXTSPEC._serialized_start=172645
+  _GPURENDERSTAGEEVENT_SPECIFICATIONS_CONTEXTSPEC._serialized_end=172688
+  _GPURENDERSTAGEEVENT_SPECIFICATIONS_DESCRIPTION._serialized_start=172690
+  _GPURENDERSTAGEEVENT_SPECIFICATIONS_DESCRIPTION._serialized_end=172738
+  _INTERNEDGRAPHICSCONTEXT._serialized_start=172747
+  _INTERNEDGRAPHICSCONTEXT._serialized_end=172917
+  _INTERNEDGRAPHICSCONTEXT_API._serialized_start=172859
+  _INTERNEDGRAPHICSCONTEXT_API._serialized_end=172917
+  _INTERNEDGPURENDERSTAGESPECIFICATION._serialized_start=172920
+  _INTERNEDGPURENDERSTAGESPECIFICATION._serialized_end=173158
+  _INTERNEDGPURENDERSTAGESPECIFICATION_RENDERSTAGECATEGORY._serialized_start=173099
+  _INTERNEDGPURENDERSTAGESPECIFICATION_RENDERSTAGECATEGORY._serialized_end=173158
+  _VULKANAPIEVENT._serialized_start=173161
+  _VULKANAPIEVENT._serialized_end=173604
+  _VULKANAPIEVENT_VKDEBUGUTILSOBJECTNAME._serialized_start=173347
+  _VULKANAPIEVENT_VKDEBUGUTILSOBJECTNAME._serialized_end=173461
+  _VULKANAPIEVENT_VKQUEUESUBMIT._serialized_start=173464
+  _VULKANAPIEVENT_VKQUEUESUBMIT._serialized_end=173595
+  _VULKANMEMORYEVENTANNOTATION._serialized_start=173606
+  _VULKANMEMORYEVENTANNOTATION._serialized_end=173728
+  _VULKANMEMORYEVENT._serialized_start=173731
+  _VULKANMEMORYEVENT._serialized_end=174603
+  _VULKANMEMORYEVENT_SOURCE._serialized_start=174216
+  _VULKANMEMORYEVENT_SOURCE._serialized_end=174349
+  _VULKANMEMORYEVENT_OPERATION._serialized_start=174351
+  _VULKANMEMORYEVENT_OPERATION._serialized_end=174468
+  _VULKANMEMORYEVENT_ALLOCATIONSCOPE._serialized_start=174471
+  _VULKANMEMORYEVENT_ALLOCATIONSCOPE._serialized_end=174603
+  _INTERNEDSTRING._serialized_start=174605
+  _INTERNEDSTRING._serialized_end=174647
+  _LINE._serialized_start=174649
+  _LINE._serialized_end=174725
+  _ADDRESSSYMBOLS._serialized_start=174727
+  _ADDRESSSYMBOLS._serialized_end=174798
+  _MODULESYMBOLS._serialized_start=174800
+  _MODULESYMBOLS._serialized_end=174905
+  _MAPPING._serialized_start=174908
+  _MAPPING._serialized_end=175064
+  _FRAME._serialized_start=175067
+  _FRAME._serialized_end=175195
+  _CALLSTACK._serialized_start=175197
+  _CALLSTACK._serialized_end=175240
+  _HISTOGRAMNAME._serialized_start=175242
+  _HISTOGRAMNAME._serialized_end=175284
+  _CHROMEHISTOGRAMSAMPLE._serialized_start=175286
+  _CHROMEHISTOGRAMSAMPLE._serialized_end=175376
+  _DEBUGANNOTATION._serialized_start=175379
+  _DEBUGANNOTATION._serialized_end=176319
+  _DEBUGANNOTATION_NESTEDVALUE._serialized_start=175891
+  _DEBUGANNOTATION_NESTEDVALUE._serialized_end=176271
+  _DEBUGANNOTATION_NESTEDVALUE_NESTEDTYPE._serialized_start=176221
+  _DEBUGANNOTATION_NESTEDVALUE_NESTEDTYPE._serialized_end=176271
+  _DEBUGANNOTATIONNAME._serialized_start=176321
+  _DEBUGANNOTATIONNAME._serialized_end=176369
+  _DEBUGANNOTATIONVALUETYPENAME._serialized_start=176371
+  _DEBUGANNOTATIONVALUETYPENAME._serialized_end=176428
+  _LOGMESSAGE._serialized_start=176431
+  _LOGMESSAGE._serialized_end=176690
+  _LOGMESSAGE_PRIORITY._serialized_start=176545
+  _LOGMESSAGE_PRIORITY._serialized_end=176690
+  _LOGMESSAGEBODY._serialized_start=176692
+  _LOGMESSAGEBODY._serialized_end=176735
+  _UNSYMBOLIZEDSOURCELOCATION._serialized_start=176737
+  _UNSYMBOLIZEDSOURCELOCATION._serialized_end=176814
+  _SOURCELOCATION._serialized_start=176816
+  _SOURCELOCATION._serialized_end=176908
+  _CHROMEACTIVEPROCESSES._serialized_start=176910
+  _CHROMEACTIVEPROCESSES._serialized_end=176946
+  _CHROMEAPPLICATIONSTATEINFO._serialized_start=176949
+  _CHROMEAPPLICATIONSTATEINFO._serialized_end=177315
+  _CHROMEAPPLICATIONSTATEINFO_CHROMEAPPLICATIONSTATE._serialized_start=177075
+  _CHROMEAPPLICATIONSTATEINFO_CHROMEAPPLICATIONSTATE._serialized_end=177315
+  _CHROMECOMPOSITORSCHEDULERSTATE._serialized_start=177318
+  _CHROMECOMPOSITORSCHEDULERSTATE._serialized_end=178405
+  _CHROMECOMPOSITORSCHEDULERSTATE_BEGINIMPLFRAMEDEADLINEMODE._serialized_start=178209
+  _CHROMECOMPOSITORSCHEDULERSTATE_BEGINIMPLFRAMEDEADLINEMODE._serialized_end=178399
+  _CHROMECOMPOSITORSTATEMACHINE._serialized_start=178408
+  _CHROMECOMPOSITORSTATEMACHINE._serialized_end=182118
+  _CHROMECOMPOSITORSTATEMACHINE_MAJORSTATE._serialized_start=178599
+  _CHROMECOMPOSITORSTATEMACHINE_MAJORSTATE._serialized_end=179898
+  _CHROMECOMPOSITORSTATEMACHINE_MAJORSTATE_BEGINIMPLFRAMESTATE._serialized_start=179138
+  _CHROMECOMPOSITORSTATEMACHINE_MAJORSTATE_BEGINIMPLFRAMESTATE._serialized_end=179299
+  _CHROMECOMPOSITORSTATEMACHINE_MAJORSTATE_BEGINMAINFRAMESTATE._serialized_start=179302
+  _CHROMECOMPOSITORSTATEMACHINE_MAJORSTATE_BEGINMAINFRAMESTATE._serialized_end=179449
+  _CHROMECOMPOSITORSTATEMACHINE_MAJORSTATE_LAYERTREEFRAMESINKSTATE._serialized_start=179452
+  _CHROMECOMPOSITORSTATEMACHINE_MAJORSTATE_LAYERTREEFRAMESINKSTATE._serialized_end=179696
+  _CHROMECOMPOSITORSTATEMACHINE_MAJORSTATE_FORCEDREDRAWONTIMEOUTSTATE._serialized_start=179699
+  _CHROMECOMPOSITORSTATEMACHINE_MAJORSTATE_FORCEDREDRAWONTIMEOUTSTATE._serialized_end=179898
+  _CHROMECOMPOSITORSTATEMACHINE_MINORSTATE._serialized_start=179901
+  _CHROMECOMPOSITORSTATEMACHINE_MINORSTATE._serialized_end=182118
+  _CHROMECOMPOSITORSTATEMACHINE_MINORSTATE_TREEPRIORITY._serialized_start=181795
+  _CHROMECOMPOSITORSTATEMACHINE_MINORSTATE_TREEPRIORITY._serialized_end=181979
+  _CHROMECOMPOSITORSTATEMACHINE_MINORSTATE_SCROLLHANDLERSTATE._serialized_start=181982
+  _CHROMECOMPOSITORSTATEMACHINE_MINORSTATE_SCROLLHANDLERSTATE._serialized_end=182112
+  _BEGINFRAMEARGS._serialized_start=182121
+  _BEGINFRAMEARGS._serialized_end=182675
+  _BEGINFRAMEARGS_BEGINFRAMEARGSTYPE._serialized_start=182497
+  _BEGINFRAMEARGS_BEGINFRAMEARGSTYPE._serialized_end=182659
+  _BEGINIMPLFRAMEARGS._serialized_start=182678
+  _BEGINIMPLFRAMEARGS._serialized_end=183254
+  _BEGINIMPLFRAMEARGS_TIMESTAMPSINUS._serialized_start=182995
+  _BEGINIMPLFRAMEARGS_TIMESTAMPSINUS._serialized_end=183188
+  _BEGINIMPLFRAMEARGS_STATE._serialized_start=183190
+  _BEGINIMPLFRAMEARGS_STATE._serialized_end=183246
+  _BEGINFRAMEOBSERVERSTATE._serialized_start=183256
+  _BEGINFRAMEOBSERVERSTATE._serialized_end=183379
+  _BEGINFRAMESOURCESTATE._serialized_start=183382
+  _BEGINFRAMESOURCESTATE._serialized_end=183527
+  _COMPOSITORTIMINGHISTORY._serialized_start=183530
+  _COMPOSITORTIMINGHISTORY._serialized_end=183910
+  _CHROMECONTENTSETTINGSEVENTINFO._serialized_start=183912
+  _CHROMECONTENTSETTINGSEVENTINFO._serialized_end=183974
+  _CHROMEFRAMEREPORTER._serialized_start=183977
+  _CHROMEFRAMEREPORTER._serialized_end=185097
+  _CHROMEFRAMEREPORTER_STATE._serialized_start=184692
+  _CHROMEFRAMEREPORTER_STATE._serialized_end=184801
+  _CHROMEFRAMEREPORTER_FRAMEDROPREASON._serialized_start=184803
+  _CHROMEFRAMEREPORTER_FRAMEDROPREASON._serialized_end=184929
+  _CHROMEFRAMEREPORTER_SCROLLSTATE._serialized_start=184931
+  _CHROMEFRAMEREPORTER_SCROLLSTATE._serialized_end=185054
+  _CHROMEFRAMEREPORTER_FRAMETYPE._serialized_start=185056
+  _CHROMEFRAMEREPORTER_FRAMETYPE._serialized_end=185093
+  _CHROMEKEYEDSERVICE._serialized_start=185099
+  _CHROMEKEYEDSERVICE._serialized_end=185133
+  _CHROMELATENCYINFO._serialized_start=185136
+  _CHROMELATENCYINFO._serialized_end=186918
+  _CHROMELATENCYINFO_COMPONENTINFO._serialized_start=185465
+  _CHROMELATENCYINFO_COMPONENTINFO._serialized_end=185578
+  _CHROMELATENCYINFO_STEP._serialized_start=185581
+  _CHROMELATENCYINFO_STEP._serialized_end=185983
+  _CHROMELATENCYINFO_LATENCYCOMPONENTTYPE._serialized_start=185986
+  _CHROMELATENCYINFO_LATENCYCOMPONENTTYPE._serialized_end=186743
+  _CHROMELATENCYINFO_INPUTTYPE._serialized_start=186746
+  _CHROMELATENCYINFO_INPUTTYPE._serialized_end=186918
+  _CHROMELEGACYIPC._serialized_start=186921
+  _CHROMELEGACYIPC._serialized_end=187895
+  _CHROMELEGACYIPC_MESSAGECLASS._serialized_start=187033
+  _CHROMELEGACYIPC_MESSAGECLASS._serialized_end=187895
+  _CHROMEMESSAGEPUMP._serialized_start=187897
+  _CHROMEMESSAGEPUMP._serialized_end=187981
+  _CHROMEMOJOEVENTINFO._serialized_start=187984
+  _CHROMEMOJOEVENTINFO._serialized_end=188188
+  _CHROMERENDERERSCHEDULERSTATE._serialized_start=188190
+  _CHROMERENDERERSCHEDULERSTATE._serialized_end=188316
+  _CHROMEUSEREVENT._serialized_start=188318
+  _CHROMEUSEREVENT._serialized_end=188372
+  _CHROMEWINDOWHANDLEEVENTINFO._serialized_start=188374
+  _CHROMEWINDOWHANDLEEVENTINFO._serialized_end=188454
+  _SCREENSHOT._serialized_start=188456
+  _SCREENSHOT._serialized_end=188487
+  _TASKEXECUTION._serialized_start=188489
+  _TASKEXECUTION._serialized_end=188529
+  _TRACKEVENT._serialized_start=188532
+  _TRACKEVENT._serialized_end=191952
+  _TRACKEVENT_CALLSTACK._serialized_start=190806
+  _TRACKEVENT_CALLSTACK._serialized_end=190952
+  _TRACKEVENT_CALLSTACK_FRAME._serialized_start=190880
+  _TRACKEVENT_CALLSTACK_FRAME._serialized_end=190952
+  _TRACKEVENT_LEGACYEVENT._serialized_start=190955
+  _TRACKEVENT_LEGACYEVENT._serialized_end=191637
+  _TRACKEVENT_LEGACYEVENT_FLOWDIRECTION._serialized_start=191446
+  _TRACKEVENT_LEGACYEVENT_FLOWDIRECTION._serialized_end=191526
+  _TRACKEVENT_LEGACYEVENT_INSTANTEVENTSCOPE._serialized_start=191528
+  _TRACKEVENT_LEGACYEVENT_INSTANTEVENTSCOPE._serialized_end=191625
+  _TRACKEVENT_TYPE._serialized_start=191639
+  _TRACKEVENT_TYPE._serialized_end=191745
+  _TRACKEVENTDEFAULTS._serialized_start=191954
+  _TRACKEVENTDEFAULTS._serialized_end=192071
+  _EVENTCATEGORY._serialized_start=192073
+  _EVENTCATEGORY._serialized_end=192115
+  _EVENTNAME._serialized_start=192117
+  _EVENTNAME._serialized_end=192155
+  _INTERNEDDATA._serialized_start=192158
+  _INTERNEDDATA._serialized_end=194332
+  _ANDROIDJOBNAME._serialized_start=194334
+  _ANDROIDJOBNAME._serialized_end=194377
+  _MEMORYTRACKERSNAPSHOT._serialized_start=194380
+  _MEMORYTRACKERSNAPSHOT._serialized_end=195388
+  _MEMORYTRACKERSNAPSHOT_PROCESSSNAPSHOT._serialized_start=194595
+  _MEMORYTRACKERSNAPSHOT_PROCESSSNAPSHOT._serialized_end=195313
+  _MEMORYTRACKERSNAPSHOT_PROCESSSNAPSHOT_MEMORYNODE._serialized_start=194809
+  _MEMORYTRACKERSNAPSHOT_PROCESSSNAPSHOT_MEMORYNODE._serialized_end=195220
+  _MEMORYTRACKERSNAPSHOT_PROCESSSNAPSHOT_MEMORYNODE_MEMORYNODEENTRY._serialized_start=194993
+  _MEMORYTRACKERSNAPSHOT_PROCESSSNAPSHOT_MEMORYNODE_MEMORYNODEENTRY._serialized_end=195220
+  _MEMORYTRACKERSNAPSHOT_PROCESSSNAPSHOT_MEMORYNODE_MEMORYNODEENTRY_UNITS._serialized_start=195174
+  _MEMORYTRACKERSNAPSHOT_PROCESSSNAPSHOT_MEMORYNODE_MEMORYNODEENTRY_UNITS._serialized_end=195220
+  _MEMORYTRACKERSNAPSHOT_PROCESSSNAPSHOT_MEMORYEDGE._serialized_start=195222
+  _MEMORYTRACKERSNAPSHOT_PROCESSSNAPSHOT_MEMORYEDGE._serialized_end=195313
+  _MEMORYTRACKERSNAPSHOT_LEVELOFDETAIL._serialized_start=195315
+  _MEMORYTRACKERSNAPSHOT_LEVELOFDETAIL._serialized_end=195388
+  _PERFETTOMETATRACE._serialized_start=195391
+  _PERFETTOMETATRACE._serialized_end=195936
+  _PERFETTOMETATRACE_ARG._serialized_start=195748
+  _PERFETTOMETATRACE_ARG._serialized_end=195875
+  _PERFETTOMETATRACE_INTERNEDSTRING._serialized_start=195877
+  _PERFETTOMETATRACE_INTERNEDSTRING._serialized_end=195921
+  _TRACINGSERVICEEVENT._serialized_start=195939
+  _TRACINGSERVICEEVENT._serialized_end=196589
+  _TRACINGSERVICEEVENT_DATASOURCES._serialized_start=196417
+  _TRACINGSERVICEEVENT_DATASOURCES._serialized_end=196575
+  _TRACINGSERVICEEVENT_DATASOURCES_DATASOURCE._serialized_start=196514
+  _TRACINGSERVICEEVENT_DATASOURCES_DATASOURCE._serialized_end=196575
+  _ANDROIDENERGYCONSUMER._serialized_start=196591
+  _ANDROIDENERGYCONSUMER._serialized_end=196687
+  _ANDROIDENERGYCONSUMERDESCRIPTOR._serialized_start=196689
+  _ANDROIDENERGYCONSUMERDESCRIPTOR._serialized_end=196788
+  _ANDROIDENERGYESTIMATIONBREAKDOWN._serialized_start=196791
+  _ANDROIDENERGYESTIMATIONBREAKDOWN._serialized_end=197111
+  _ANDROIDENERGYESTIMATIONBREAKDOWN_ENERGYUIDBREAKDOWN._serialized_start=197058
+  _ANDROIDENERGYESTIMATIONBREAKDOWN_ENERGYUIDBREAKDOWN._serialized_end=197111
+  _ENTITYSTATERESIDENCY._serialized_start=197114
+  _ENTITYSTATERESIDENCY._serialized_end=197557
+  _ENTITYSTATERESIDENCY_POWERENTITYSTATE._serialized_start=197295
+  _ENTITYSTATERESIDENCY_POWERENTITYSTATE._serialized_end=197397
+  _ENTITYSTATERESIDENCY_STATERESIDENCY._serialized_start=197400
+  _ENTITYSTATERESIDENCY_STATERESIDENCY._serialized_end=197557
+  _BATTERYCOUNTERS._serialized_start=197560
+  _BATTERYCOUNTERS._serialized_end=197737
+  _POWERRAILS._serialized_start=197740
+  _POWERRAILS._serialized_end=198067
+  _POWERRAILS_RAILDESCRIPTOR._serialized_start=197906
+  _POWERRAILS_RAILDESCRIPTOR._serialized_end=198000
+  _POWERRAILS_ENERGYDATA._serialized_start=198002
+  _POWERRAILS_ENERGYDATA._serialized_end=198067
+  _OBFUSCATEDMEMBER._serialized_start=198069
+  _OBFUSCATEDMEMBER._serialized_end=198139
+  _OBFUSCATEDCLASS._serialized_start=198142
+  _OBFUSCATEDCLASS._serialized_end=198337
+  _DEOBFUSCATIONMAPPING._serialized_start=198340
+  _DEOBFUSCATIONMAPPING._serialized_end=198468
+  _HEAPGRAPHROOT._serialized_start=198471
+  _HEAPGRAPHROOT._serialized_end=198909
+  _HEAPGRAPHROOT_TYPE._serialized_start=198569
+  _HEAPGRAPHROOT_TYPE._serialized_end=198909
+  _HEAPGRAPHTYPE._serialized_start=198912
+  _HEAPGRAPHTYPE._serialized_end=199396
+  _HEAPGRAPHTYPE_KIND._serialized_start=199134
+  _HEAPGRAPHTYPE_KIND._serialized_end=199396
+  _HEAPGRAPHOBJECT._serialized_start=199399
+  _HEAPGRAPHOBJECT._serialized_end=199855
+  _HEAPGRAPHOBJECT_HEAPTYPE._serialized_start=199741
+  _HEAPGRAPHOBJECT_HEAPTYPE._serialized_end=199841
+  _HEAPGRAPH._serialized_start=199858
+  _HEAPGRAPH._serialized_end=200178
+  _PROFILEPACKET._serialized_start=200181
+  _PROFILEPACKET._serialized_end=201649
+  _PROFILEPACKET_HEAPSAMPLE._serialized_start=200489
+  _PROFILEPACKET_HEAPSAMPLE._serialized_end=200675
+  _PROFILEPACKET_HISTOGRAM._serialized_start=200678
+  _PROFILEPACKET_HISTOGRAM._serialized_end=200821
+  _PROFILEPACKET_HISTOGRAM_BUCKET._serialized_start=200757
+  _PROFILEPACKET_HISTOGRAM_BUCKET._serialized_end=200821
+  _PROFILEPACKET_PROCESSSTATS._serialized_start=200824
+  _PROFILEPACKET_PROCESSSTATS._serialized_end=201046
+  _PROFILEPACKET_PROCESSHEAPSAMPLES._serialized_start=201049
+  _PROFILEPACKET_PROCESSHEAPSAMPLES._serialized_end=201649
+  _PROFILEPACKET_PROCESSHEAPSAMPLES_CLIENTERROR._serialized_start=201544
+  _PROFILEPACKET_PROCESSHEAPSAMPLES_CLIENTERROR._serialized_end=201649
+  _STREAMINGALLOCATION._serialized_start=201652
+  _STREAMINGALLOCATION._serialized_end=201809
+  _STREAMINGFREE._serialized_start=201811
+  _STREAMINGFREE._serialized_end=201885
+  _STREAMINGPROFILEPACKET._serialized_start=201887
+  _STREAMINGPROFILEPACKET._serialized_end=201988
+  _PROFILING._serialized_start=201991
+  _PROFILING._serialized_end=202647
+  _PROFILING_CPUMODE._serialized_start=202004
+  _PROFILING_CPUMODE._serialized_end=202128
+  _PROFILING_STACKUNWINDERROR._serialized_start=202131
+  _PROFILING_STACKUNWINDERROR._serialized_end=202647
+  _PERFSAMPLE._serialized_start=202650
+  _PERFSAMPLE._serialized_end=203529
+  _PERFSAMPLE_PRODUCEREVENT._serialized_start=203074
+  _PERFSAMPLE_PRODUCEREVENT._serialized_end=203294
+  _PERFSAMPLE_PRODUCEREVENT_DATASOURCESTOPREASON._serialized_start=203185
+  _PERFSAMPLE_PRODUCEREVENT_DATASOURCESTOPREASON._serialized_end=203263
+  _PERFSAMPLE_SAMPLESKIPREASON._serialized_start=203297
+  _PERFSAMPLE_SAMPLESKIPREASON._serialized_end=203470
+  _PERFSAMPLEDEFAULTS._serialized_start=203532
+  _PERFSAMPLEDEFAULTS._serialized_end=203718
+  _SMAPSENTRY._serialized_start=203721
+  _SMAPSENTRY._serialized_end=204108
+  _SMAPSPACKET._serialized_start=204110
+  _SMAPSPACKET._serialized_end=204182
+  _PROCESSSTATS._serialized_start=204185
+  _PROCESSSTATS._serialized_end=205012
+  _PROCESSSTATS_THREAD._serialized_start=204293
+  _PROCESSSTATS_THREAD._serialized_end=204332
+  _PROCESSSTATS_FDINFO._serialized_start=204334
+  _PROCESSSTATS_FDINFO._serialized_end=204368
+  _PROCESSSTATS_PROCESS._serialized_start=204371
+  _PROCESSSTATS_PROCESS._serialized_end=205012
+  _PROCESSTREE._serialized_start=205015
+  _PROCESSTREE._serialized_end=205407
+  _PROCESSTREE_THREAD._serialized_start=205175
+  _PROCESSTREE_THREAD._serialized_end=205239
+  _PROCESSTREE_PROCESS._serialized_start=205242
+  _PROCESSTREE_PROCESS._serialized_end=205407
+  _REMOTECLOCKSYNC._serialized_start=205410
+  _REMOTECLOCKSYNC._serialized_end=205621
+  _REMOTECLOCKSYNC_SYNCEDCLOCKS._serialized_start=205499
+  _REMOTECLOCKSYNC_SYNCEDCLOCKS._serialized_end=205621
+  _ATOM._serialized_start=205623
+  _ATOM._serialized_end=205629
+  _STATSDATOM._serialized_start=205631
+  _STATSDATOM._serialized_end=205705
+  _SYSSTATS._serialized_start=205708
+  _SYSSTATS._serialized_end=207732
+  _SYSSTATS_MEMINFOVALUE._serialized_start=206496
+  _SYSSTATS_MEMINFOVALUE._serialized_end=206572
+  _SYSSTATS_VMSTATVALUE._serialized_start=206574
+  _SYSSTATS_VMSTATVALUE._serialized_end=206648
+  _SYSSTATS_CPUTIMES._serialized_start=206651
+  _SYSSTATS_CPUTIMES._serialized_end=206831
+  _SYSSTATS_INTERRUPTCOUNT._serialized_start=206833
+  _SYSSTATS_INTERRUPTCOUNT._serialized_end=206877
+  _SYSSTATS_DEVFREQVALUE._serialized_start=206879
+  _SYSSTATS_DEVFREQVALUE._serialized_end=206921
+  _SYSSTATS_BUDDYINFO._serialized_start=206923
+  _SYSSTATS_BUDDYINFO._serialized_end=206983
+  _SYSSTATS_DISKSTAT._serialized_start=206986
+  _SYSSTATS_DISKSTAT._serialized_end=207201
+  _SYSSTATS_PSISAMPLE._serialized_start=207204
+  _SYSSTATS_PSISAMPLE._serialized_end=207512
+  _SYSSTATS_PSISAMPLE_PSIRESOURCE._serialized_start=207303
+  _SYSSTATS_PSISAMPLE_PSIRESOURCE._serialized_end=207512
+  _SYSSTATS_THERMALZONE._serialized_start=207514
+  _SYSSTATS_THERMALZONE._serialized_end=207569
+  _SYSSTATS_CPUIDLESTATEENTRY._serialized_start=207571
+  _SYSSTATS_CPUIDLESTATEENTRY._serialized_end=207626
+  _SYSSTATS_CPUIDLESTATE._serialized_start=207628
+  _SYSSTATS_CPUIDLESTATE._serialized_end=207732
+  _CPUINFO._serialized_start=207735
+  _CPUINFO._serialized_end=208067
+  _CPUINFO_ARMCPUIDENTIFIER._serialized_start=207790
+  _CPUINFO_ARMCPUIDENTIFIER._serialized_end=207900
+  _CPUINFO_CPU._serialized_start=207903
+  _CPUINFO_CPU._serialized_end=208067
+  _TESTEVENT._serialized_start=208070
+  _TESTEVENT._serialized_end=208449
+  _TESTEVENT_TESTPAYLOAD._serialized_start=208207
+  _TESTEVENT_TESTPAYLOAD._serialized_end=208449
+  _TRACEPACKETDEFAULTS._serialized_start=208452
+  _TRACEPACKETDEFAULTS._serialized_end=208694
+  _TRACEUUID._serialized_start=208696
+  _TRACEUUID._serialized_end=208733
+  _PROCESSDESCRIPTOR._serialized_start=208736
+  _PROCESSDESCRIPTOR._serialized_end=209223
+  _PROCESSDESCRIPTOR_CHROMEPROCESSTYPE._serialized_start=208998
+  _PROCESSDESCRIPTOR_CHROMEPROCESSTYPE._serialized_end=209223
+  _TRACKEVENTRANGEOFINTEREST._serialized_start=209225
+  _TRACKEVENTRANGEOFINTEREST._serialized_end=209270
+  _THREADDESCRIPTOR._serialized_start=209273
+  _THREADDESCRIPTOR._serialized_end=210029
+  _THREADDESCRIPTOR_CHROMETHREADTYPE._serialized_start=209558
+  _THREADDESCRIPTOR_CHROMETHREADTYPE._serialized_end=210029
+  _CHROMEPROCESSDESCRIPTOR._serialized_start=210032
+  _CHROMEPROCESSDESCRIPTOR._serialized_end=210187
+  _CHROMETHREADDESCRIPTOR._serialized_start=210189
+  _CHROMETHREADDESCRIPTOR._serialized_end=210287
+  _COUNTERDESCRIPTOR._serialized_start=210290
+  _COUNTERDESCRIPTOR._serialized_end=210745
+  _COUNTERDESCRIPTOR_BUILTINCOUNTERTYPE._serialized_start=210549
+  _COUNTERDESCRIPTOR_BUILTINCOUNTERTYPE._serialized_end=210660
+  _COUNTERDESCRIPTOR_UNIT._serialized_start=210662
+  _COUNTERDESCRIPTOR_UNIT._serialized_end=210745
+  _TRACKDESCRIPTOR._serialized_start=210748
+  _TRACKDESCRIPTOR._serialized_end=211800
+  _TRACKDESCRIPTOR_CHILDTRACKSORDERING._serialized_start=211472
+  _TRACKDESCRIPTOR_CHILDTRACKSORDERING._serialized_end=211558
+  _TRACKDESCRIPTOR_SIBLINGMERGEBEHAVIOR._serialized_start=211561
+  _TRACKDESCRIPTOR_SIBLINGMERGEBEHAVIOR._serialized_end=211747
+  _TRANSLATIONTABLE._serialized_start=211803
+  _TRANSLATIONTABLE._serialized_end=212296
+  _CHROMEHISTORGRAMTRANSLATIONTABLE._serialized_start=212299
+  _CHROMEHISTORGRAMTRANSLATIONTABLE._serialized_end=212473
+  _CHROMEHISTORGRAMTRANSLATIONTABLE_HASHTONAMEENTRY._serialized_start=212424
+  _CHROMEHISTORGRAMTRANSLATIONTABLE_HASHTONAMEENTRY._serialized_end=212473
+  _CHROMEUSEREVENTTRANSLATIONTABLE._serialized_start=212476
+  _CHROMEUSEREVENTTRANSLATIONTABLE._serialized_end=212667
+  _CHROMEUSEREVENTTRANSLATIONTABLE_ACTIONHASHTONAMEENTRY._serialized_start=212612
+  _CHROMEUSEREVENTTRANSLATIONTABLE_ACTIONHASHTONAMEENTRY._serialized_end=212667
+  _CHROMEPERFORMANCEMARKTRANSLATIONTABLE._serialized_start=212670
+  _CHROMEPERFORMANCEMARKTRANSLATIONTABLE._serialized_end=213025
+  _CHROMEPERFORMANCEMARKTRANSLATIONTABLE_SITEHASHTONAMEENTRY._serialized_start=212917
+  _CHROMEPERFORMANCEMARKTRANSLATIONTABLE_SITEHASHTONAMEENTRY._serialized_end=212970
+  _CHROMEPERFORMANCEMARKTRANSLATIONTABLE_MARKHASHTONAMEENTRY._serialized_start=212972
+  _CHROMEPERFORMANCEMARKTRANSLATIONTABLE_MARKHASHTONAMEENTRY._serialized_end=213025
+  _SLICENAMETRANSLATIONTABLE._serialized_start=213028
+  _SLICENAMETRANSLATIONTABLE._serialized_end=213222
+  _SLICENAMETRANSLATIONTABLE_RAWTODEOBFUSCATEDNAMEENTRY._serialized_start=213162
+  _SLICENAMETRANSLATIONTABLE_RAWTODEOBFUSCATEDNAMEENTRY._serialized_end=213222
+  _PROCESSTRACKNAMETRANSLATIONTABLE._serialized_start=213225
+  _PROCESSTRACKNAMETRANSLATIONTABLE._serialized_end=213433
+  _PROCESSTRACKNAMETRANSLATIONTABLE_RAWTODEOBFUSCATEDNAMEENTRY._serialized_start=213162
+  _PROCESSTRACKNAMETRANSLATIONTABLE_RAWTODEOBFUSCATEDNAMEENTRY._serialized_end=213222
+  _CHROMESTUDYTRANSLATIONTABLE._serialized_start=213436
+  _CHROMESTUDYTRANSLATIONTABLE._serialized_end=213600
+  _CHROMESTUDYTRANSLATIONTABLE_HASHTONAMEENTRY._serialized_start=212424
+  _CHROMESTUDYTRANSLATIONTABLE_HASHTONAMEENTRY._serialized_end=212473
+  _TRIGGER._serialized_start=213602
+  _TRIGGER._serialized_end=213709
+  _UISTATE._serialized_start=213712
+  _UISTATE._serialized_end=213909
+  _UISTATE_HIGHLIGHTPROCESS._serialized_start=213845
+  _UISTATE_HIGHLIGHTPROCESS._serialized_end=213909
+  _TRACEPACKET._serialized_start=213912
+  _TRACEPACKET._serialized_end=220151
+  _TRACEPACKET_SEQUENCEFLAGS._serialized_start=219964
+  _TRACEPACKET_SEQUENCEFLAGS._serialized_end=220068
+  _TRACE._serialized_start=220153
+  _TRACE._serialized_end=220206
 # @@protoc_insertion_point(module_scope)
diff --git a/python/perfetto/protos/perfetto/trace/perfetto_trace_pb2.pyi b/python/perfetto/protos/perfetto/trace/perfetto_trace_pb2.pyi
index 02a2728..7f4c1b6 100644
--- a/python/perfetto/protos/perfetto/trace/perfetto_trace_pb2.pyi
+++ b/python/perfetto/protos/perfetto/trace/perfetto_trace_pb2.pyi
@@ -1841,6 +1841,14 @@
     trace_dispatcher_window_dispatch: bool
     def __init__(self, mode: _Optional[_Union[AndroidInputEventConfig.TraceMode, str]] = ..., rules: _Optional[_Iterable[_Union[AndroidInputEventConfig.TraceRule, _Mapping]]] = ..., trace_dispatcher_input_events: bool = ..., trace_dispatcher_window_dispatch: bool = ...) -> None: ...
 
+class AndroidJobName(_message.Message):
+    __slots__ = ["iid", "name"]
+    IID_FIELD_NUMBER: _ClassVar[int]
+    NAME_FIELD_NUMBER: _ClassVar[int]
+    iid: int
+    name: str
+    def __init__(self, iid: _Optional[int] = ..., name: _Optional[str] = ...) -> None: ...
+
 class AndroidLogConfig(_message.Message):
     __slots__ = ["filter_tags", "log_ids", "min_prio"]
     FILTER_TAGS_FIELD_NUMBER: _ClassVar[int]
@@ -7384,7 +7392,7 @@
     def __init__(self, irp_ptr: _Optional[int] = ..., file_object: _Optional[int] = ..., ttid: _Optional[int] = ..., create_options: _Optional[int] = ..., file_attributes: _Optional[int] = ..., share_access: _Optional[int] = ..., open_path: _Optional[str] = ...) -> None: ...
 
 class FileIoDirEnumEtwEvent(_message.Message):
-    __slots__ = ["file_index", "file_key", "file_name", "file_object", "info_class", "irp_ptr", "length", "ttid"]
+    __slots__ = ["file_index", "file_key", "file_name", "file_object", "info_class", "irp_ptr", "length", "opcode", "ttid"]
     FILE_INDEX_FIELD_NUMBER: _ClassVar[int]
     FILE_KEY_FIELD_NUMBER: _ClassVar[int]
     FILE_NAME_FIELD_NUMBER: _ClassVar[int]
@@ -7392,6 +7400,7 @@
     INFO_CLASS_FIELD_NUMBER: _ClassVar[int]
     IRP_PTR_FIELD_NUMBER: _ClassVar[int]
     LENGTH_FIELD_NUMBER: _ClassVar[int]
+    OPCODE_FIELD_NUMBER: _ClassVar[int]
     TTID_FIELD_NUMBER: _ClassVar[int]
     file_index: int
     file_key: int
@@ -7400,24 +7409,27 @@
     info_class: int
     irp_ptr: int
     length: int
+    opcode: int
     ttid: int
-    def __init__(self, irp_ptr: _Optional[int] = ..., file_object: _Optional[int] = ..., file_key: _Optional[int] = ..., ttid: _Optional[int] = ..., length: _Optional[int] = ..., info_class: _Optional[int] = ..., file_index: _Optional[int] = ..., file_name: _Optional[str] = ...) -> None: ...
+    def __init__(self, irp_ptr: _Optional[int] = ..., file_object: _Optional[int] = ..., file_key: _Optional[int] = ..., ttid: _Optional[int] = ..., length: _Optional[int] = ..., info_class: _Optional[int] = ..., file_index: _Optional[int] = ..., file_name: _Optional[str] = ..., opcode: _Optional[int] = ...) -> None: ...
 
 class FileIoInfoEtwEvent(_message.Message):
-    __slots__ = ["extra_info", "file_key", "file_object", "info_class", "irp_ptr", "ttid"]
+    __slots__ = ["extra_info", "file_key", "file_object", "info_class", "irp_ptr", "opcode", "ttid"]
     EXTRA_INFO_FIELD_NUMBER: _ClassVar[int]
     FILE_KEY_FIELD_NUMBER: _ClassVar[int]
     FILE_OBJECT_FIELD_NUMBER: _ClassVar[int]
     INFO_CLASS_FIELD_NUMBER: _ClassVar[int]
     IRP_PTR_FIELD_NUMBER: _ClassVar[int]
+    OPCODE_FIELD_NUMBER: _ClassVar[int]
     TTID_FIELD_NUMBER: _ClassVar[int]
     extra_info: int
     file_key: int
     file_object: int
     info_class: int
     irp_ptr: int
+    opcode: int
     ttid: int
-    def __init__(self, irp_ptr: _Optional[int] = ..., file_object: _Optional[int] = ..., file_key: _Optional[int] = ..., extra_info: _Optional[int] = ..., ttid: _Optional[int] = ..., info_class: _Optional[int] = ...) -> None: ...
+    def __init__(self, irp_ptr: _Optional[int] = ..., file_object: _Optional[int] = ..., file_key: _Optional[int] = ..., extra_info: _Optional[int] = ..., ttid: _Optional[int] = ..., info_class: _Optional[int] = ..., opcode: _Optional[int] = ...) -> None: ...
 
 class FileIoOpEndEtwEvent(_message.Message):
     __slots__ = ["extra_info", "irp_ptr", "nt_status"]
@@ -7430,13 +7442,14 @@
     def __init__(self, irp_ptr: _Optional[int] = ..., extra_info: _Optional[int] = ..., nt_status: _Optional[int] = ...) -> None: ...
 
 class FileIoReadWriteEtwEvent(_message.Message):
-    __slots__ = ["file_key", "file_object", "io_flags", "io_size", "irp_ptr", "offset", "ttid"]
+    __slots__ = ["file_key", "file_object", "io_flags", "io_size", "irp_ptr", "offset", "opcode", "ttid"]
     FILE_KEY_FIELD_NUMBER: _ClassVar[int]
     FILE_OBJECT_FIELD_NUMBER: _ClassVar[int]
     IO_FLAGS_FIELD_NUMBER: _ClassVar[int]
     IO_SIZE_FIELD_NUMBER: _ClassVar[int]
     IRP_PTR_FIELD_NUMBER: _ClassVar[int]
     OFFSET_FIELD_NUMBER: _ClassVar[int]
+    OPCODE_FIELD_NUMBER: _ClassVar[int]
     TTID_FIELD_NUMBER: _ClassVar[int]
     file_key: int
     file_object: int
@@ -7444,20 +7457,23 @@
     io_size: int
     irp_ptr: int
     offset: int
+    opcode: int
     ttid: int
-    def __init__(self, offset: _Optional[int] = ..., irp_ptr: _Optional[int] = ..., file_object: _Optional[int] = ..., file_key: _Optional[int] = ..., ttid: _Optional[int] = ..., io_size: _Optional[int] = ..., io_flags: _Optional[int] = ...) -> None: ...
+    def __init__(self, offset: _Optional[int] = ..., irp_ptr: _Optional[int] = ..., file_object: _Optional[int] = ..., file_key: _Optional[int] = ..., ttid: _Optional[int] = ..., io_size: _Optional[int] = ..., io_flags: _Optional[int] = ..., opcode: _Optional[int] = ...) -> None: ...
 
 class FileIoSimpleOpEtwEvent(_message.Message):
-    __slots__ = ["file_key", "file_object", "irp_ptr", "ttid"]
+    __slots__ = ["file_key", "file_object", "irp_ptr", "opcode", "ttid"]
     FILE_KEY_FIELD_NUMBER: _ClassVar[int]
     FILE_OBJECT_FIELD_NUMBER: _ClassVar[int]
     IRP_PTR_FIELD_NUMBER: _ClassVar[int]
+    OPCODE_FIELD_NUMBER: _ClassVar[int]
     TTID_FIELD_NUMBER: _ClassVar[int]
     file_key: int
     file_object: int
     irp_ptr: int
+    opcode: int
     ttid: int
-    def __init__(self, irp_ptr: _Optional[int] = ..., file_object: _Optional[int] = ..., file_key: _Optional[int] = ..., ttid: _Optional[int] = ...) -> None: ...
+    def __init__(self, irp_ptr: _Optional[int] = ..., file_object: _Optional[int] = ..., file_key: _Optional[int] = ..., ttid: _Optional[int] = ..., opcode: _Optional[int] = ...) -> None: ...
 
 class FloatRectProto(_message.Message):
     __slots__ = ["bottom", "left", "right", "top"]
@@ -10047,7 +10063,8 @@
     def __init__(self, name: _Optional[str] = ..., console_config: _Optional[_Union[ConsoleConfig, _Mapping]] = ...) -> None: ...
 
 class InternedData(_message.Message):
-    __slots__ = ["app_wakelock_info", "build_ids", "callstacks", "correlation_id_str", "debug_annotation_names", "debug_annotation_string_values", "debug_annotation_value_type_names", "event_categories", "event_names", "frames", "function_names", "gpu_specifications", "graphics_contexts", "histogram_names", "kernel_symbols", "log_message_body", "mapping_paths", "mappings", "packet_context", "protolog_stacktrace", "protolog_string_args", "source_locations", "source_paths", "unsymbolized_source_locations", "v8_isolate", "v8_js_function", "v8_js_function_name", "v8_js_script", "v8_wasm_script", "viewcapture_class_name", "viewcapture_package_name", "viewcapture_view_id", "viewcapture_window_name", "vulkan_memory_keys"]
+    __slots__ = ["android_job_name", "app_wakelock_info", "build_ids", "callstacks", "correlation_id_str", "debug_annotation_names", "debug_annotation_string_values", "debug_annotation_value_type_names", "event_categories", "event_names", "frames", "function_names", "gpu_specifications", "graphics_contexts", "histogram_names", "kernel_symbols", "log_message_body", "mapping_paths", "mappings", "packet_context", "protolog_stacktrace", "protolog_string_args", "source_locations", "source_paths", "unsymbolized_source_locations", "v8_isolate", "v8_js_function", "v8_js_function_name", "v8_js_script", "v8_wasm_script", "viewcapture_class_name", "viewcapture_package_name", "viewcapture_view_id", "viewcapture_window_name", "vulkan_memory_keys"]
+    ANDROID_JOB_NAME_FIELD_NUMBER: _ClassVar[int]
     APP_WAKELOCK_INFO_FIELD_NUMBER: _ClassVar[int]
     BUILD_IDS_FIELD_NUMBER: _ClassVar[int]
     CALLSTACKS_FIELD_NUMBER: _ClassVar[int]
@@ -10082,6 +10099,7 @@
     VIEWCAPTURE_VIEW_ID_FIELD_NUMBER: _ClassVar[int]
     VIEWCAPTURE_WINDOW_NAME_FIELD_NUMBER: _ClassVar[int]
     VULKAN_MEMORY_KEYS_FIELD_NUMBER: _ClassVar[int]
+    android_job_name: _containers.RepeatedCompositeFieldContainer[AndroidJobName]
     app_wakelock_info: _containers.RepeatedCompositeFieldContainer[AppWakelockInfo]
     build_ids: _containers.RepeatedCompositeFieldContainer[InternedString]
     callstacks: _containers.RepeatedCompositeFieldContainer[Callstack]
@@ -10116,7 +10134,7 @@
     viewcapture_view_id: _containers.RepeatedCompositeFieldContainer[InternedString]
     viewcapture_window_name: _containers.RepeatedCompositeFieldContainer[InternedString]
     vulkan_memory_keys: _containers.RepeatedCompositeFieldContainer[InternedString]
-    def __init__(self, event_categories: _Optional[_Iterable[_Union[EventCategory, _Mapping]]] = ..., event_names: _Optional[_Iterable[_Union[EventName, _Mapping]]] = ..., debug_annotation_names: _Optional[_Iterable[_Union[DebugAnnotationName, _Mapping]]] = ..., debug_annotation_value_type_names: _Optional[_Iterable[_Union[DebugAnnotationValueTypeName, _Mapping]]] = ..., source_locations: _Optional[_Iterable[_Union[SourceLocation, _Mapping]]] = ..., unsymbolized_source_locations: _Optional[_Iterable[_Union[UnsymbolizedSourceLocation, _Mapping]]] = ..., log_message_body: _Optional[_Iterable[_Union[LogMessageBody, _Mapping]]] = ..., histogram_names: _Optional[_Iterable[_Union[HistogramName, _Mapping]]] = ..., build_ids: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., mapping_paths: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., source_paths: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., function_names: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., mappings: _Optional[_Iterable[_Union[Mapping, _Mapping]]] = ..., frames: _Optional[_Iterable[_Union[Frame, _Mapping]]] = ..., callstacks: _Optional[_Iterable[_Union[Callstack, _Mapping]]] = ..., vulkan_memory_keys: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., graphics_contexts: _Optional[_Iterable[_Union[InternedGraphicsContext, _Mapping]]] = ..., gpu_specifications: _Optional[_Iterable[_Union[InternedGpuRenderStageSpecification, _Mapping]]] = ..., kernel_symbols: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., debug_annotation_string_values: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., packet_context: _Optional[_Iterable[_Union[NetworkPacketContext, _Mapping]]] = ..., v8_js_function_name: _Optional[_Iterable[_Union[InternedV8String, _Mapping]]] = ..., v8_js_function: _Optional[_Iterable[_Union[InternedV8JsFunction, _Mapping]]] = ..., v8_js_script: _Optional[_Iterable[_Union[InternedV8JsScript, _Mapping]]] = ..., v8_wasm_script: _Optional[_Iterable[_Union[InternedV8WasmScript, _Mapping]]] = ..., v8_isolate: _Optional[_Iterable[_Union[InternedV8Isolate, _Mapping]]] = ..., protolog_string_args: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., protolog_stacktrace: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., viewcapture_package_name: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., viewcapture_window_name: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., viewcapture_view_id: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., viewcapture_class_name: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., app_wakelock_info: _Optional[_Iterable[_Union[AppWakelockInfo, _Mapping]]] = ..., correlation_id_str: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ...) -> None: ...
+    def __init__(self, event_categories: _Optional[_Iterable[_Union[EventCategory, _Mapping]]] = ..., event_names: _Optional[_Iterable[_Union[EventName, _Mapping]]] = ..., debug_annotation_names: _Optional[_Iterable[_Union[DebugAnnotationName, _Mapping]]] = ..., debug_annotation_value_type_names: _Optional[_Iterable[_Union[DebugAnnotationValueTypeName, _Mapping]]] = ..., source_locations: _Optional[_Iterable[_Union[SourceLocation, _Mapping]]] = ..., unsymbolized_source_locations: _Optional[_Iterable[_Union[UnsymbolizedSourceLocation, _Mapping]]] = ..., log_message_body: _Optional[_Iterable[_Union[LogMessageBody, _Mapping]]] = ..., histogram_names: _Optional[_Iterable[_Union[HistogramName, _Mapping]]] = ..., build_ids: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., mapping_paths: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., source_paths: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., function_names: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., mappings: _Optional[_Iterable[_Union[Mapping, _Mapping]]] = ..., frames: _Optional[_Iterable[_Union[Frame, _Mapping]]] = ..., callstacks: _Optional[_Iterable[_Union[Callstack, _Mapping]]] = ..., vulkan_memory_keys: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., graphics_contexts: _Optional[_Iterable[_Union[InternedGraphicsContext, _Mapping]]] = ..., gpu_specifications: _Optional[_Iterable[_Union[InternedGpuRenderStageSpecification, _Mapping]]] = ..., kernel_symbols: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., debug_annotation_string_values: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., packet_context: _Optional[_Iterable[_Union[NetworkPacketContext, _Mapping]]] = ..., v8_js_function_name: _Optional[_Iterable[_Union[InternedV8String, _Mapping]]] = ..., v8_js_function: _Optional[_Iterable[_Union[InternedV8JsFunction, _Mapping]]] = ..., v8_js_script: _Optional[_Iterable[_Union[InternedV8JsScript, _Mapping]]] = ..., v8_wasm_script: _Optional[_Iterable[_Union[InternedV8WasmScript, _Mapping]]] = ..., v8_isolate: _Optional[_Iterable[_Union[InternedV8Isolate, _Mapping]]] = ..., protolog_string_args: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., protolog_stacktrace: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., viewcapture_package_name: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., viewcapture_window_name: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., viewcapture_view_id: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., viewcapture_class_name: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., app_wakelock_info: _Optional[_Iterable[_Union[AppWakelockInfo, _Mapping]]] = ..., correlation_id_str: _Optional[_Iterable[_Union[InternedString, _Mapping]]] = ..., android_job_name: _Optional[_Iterable[_Union[AndroidJobName, _Mapping]]] = ...) -> None: ...
 
 class InternedGpuRenderStageSpecification(_message.Message):
     __slots__ = ["category", "description", "iid", "name"]
diff --git a/python/perfetto/trace_data_checks.py b/python/perfetto/trace_data_checks.py
index 8859155..0792209 100644
--- a/python/perfetto/trace_data_checks.py
+++ b/python/perfetto/trace_data_checks.py
@@ -27,7 +27,7 @@
     # HIGH IMPORTANCE TABLES
     'android.binder':
         'SELECT EXISTS(SELECT 1 FROM slice WHERE name GLOB \'binder *\' LIMIT 1) AS has_data',
-    'android.cujs.cujs_base':
+    'android.cujs.base':
         'SELECT EXISTS(SELECT 1 FROM slice WHERE name GLOB \'J<*>\' LIMIT 1) AS has_data',
     'android.frames.timeline':
         'SELECT EXISTS(SELECT 1 FROM slice WHERE name GLOB \'Choreographer#doFrame*\' OR name GLOB \'DrawFrame*\' LIMIT 1) AS has_data',
@@ -71,4 +71,52 @@
     # LOW IMPORTANCE TABLES
     'chrome.android_input':
         'SELECT EXISTS(SELECT 1 FROM slice WHERE name GLOB \'UnwantedInteractionBlocker::notifyMotion*\' LIMIT 1) AS has_data',
+
+    # PIXEL TABLES
+    'pixel.camera':
+        'SELECT EXISTS(SELECT 1 FROM slice WHERE name GLOB \'cam*_*:* (frame *)\' LIMIT 1) AS has_data',
+
+    # INTRINSIC-BASED TABLES - Android
+    'android.cpu.cpu_per_uid':
+        'SELECT EXISTS(SELECT 1 FROM __intrinsic_android_cpu_per_uid_track LIMIT 1) AS has_data',
+    'android.input':
+        'SELECT EXISTS(SELECT 1 FROM __intrinsic_android_key_events LIMIT 1) AS has_data',
+    'android.network_packets':
+        'SELECT EXISTS(SELECT 1 FROM __intrinsic_android_network_packets LIMIT 1) AS has_data',
+    'android.user_list':
+        'SELECT EXISTS(SELECT 1 FROM __intrinsic_android_user_list LIMIT 1) AS has_data',
+    'android.winscope.inputmethod':
+        'SELECT EXISTS(SELECT 1 FROM __intrinsic_inputmethod_clients LIMIT 1) AS has_data',
+    'android.winscope.rect':
+        'SELECT EXISTS(SELECT 1 FROM __intrinsic_winscope_rect LIMIT 1) AS has_data',
+    'android.winscope.surfaceflinger':
+        'SELECT EXISTS(SELECT 1 FROM __intrinsic_surfaceflinger_transaction LIMIT 1) AS has_data',
+    'android.winscope.transitions':
+        'SELECT EXISTS(SELECT 1 FROM __intrinsic_window_manager_shell_transition_participants LIMIT 1) AS has_data',
+    'android.winscope.viewcapture':
+        'SELECT EXISTS(SELECT 1 FROM __intrinsic_viewcapture LIMIT 1) AS has_data',
+    'android.winscope.windowmanager':
+        'SELECT EXISTS(SELECT 1 FROM __intrinsic_windowmanager LIMIT 1) AS has_data',
+
+    # INTRINSIC-BASED TABLES - Linux
+    'linux.perf.spe':
+        'SELECT EXISTS(SELECT 1 FROM __intrinsic_spe_record LIMIT 1) AS has_data',
+
+    # INTRINSIC-BASED TABLES - V8/JIT
+    'stack_trace.jit':
+        'SELECT EXISTS(SELECT 1 FROM __intrinsic_jit_code LIMIT 1) AS has_data',
+    'v8.jit':
+        'SELECT EXISTS(SELECT 1 FROM __intrinsic_v8_isolate LIMIT 1) AS has_data',
+
+    # INTRINSIC-BASED TABLES - Visualization
+    'viz.track_event_callstacks':
+        'SELECT EXISTS(SELECT 1 FROM __intrinsic_track_event_callstacks LIMIT 1) AS has_data',
+
+    # INTRINSIC-BASED TABLES - Prelude (single intrinsic only)
+    'prelude.after_eof.counters':
+        'SELECT EXISTS(SELECT 1 FROM __intrinsic_track LIMIT 1) AS has_data',
+    'prelude.after_eof.events':
+        'SELECT EXISTS(SELECT 1 FROM __intrinsic_ftrace_event LIMIT 1) AS has_data',
+    'prelude.after_eof.tracks':
+        'SELECT EXISTS(SELECT 1 FROM __intrinsic_track LIMIT 1) AS has_data',
 }
diff --git a/python/perfetto/trace_processor/trace_processor.descriptor b/python/perfetto/trace_processor/trace_processor.descriptor
index b4b51aa..e2026f7 100644
--- a/python/perfetto/trace_processor/trace_processor.descriptor
+++ b/python/perfetto/trace_processor/trace_processor.descriptor
Binary files differ
diff --git a/python/perfetto/trace_uri_resolver/util.py b/python/perfetto/trace_uri_resolver/util.py
index 826a533..c5fe0ef 100644
--- a/python/perfetto/trace_uri_resolver/util.py
+++ b/python/perfetto/trace_uri_resolver/util.py
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 import os
-from typing import Any, BinaryIO, Callable, Dict, List, Optional, Tuple
+from typing import Any, BinaryIO, Callable, Dict, List, Optional, Tuple, Union
 
 # Limit parsing file to 1MB to maintain parity with the UI
 MAX_BYTES_LOADED = 1 * 1024 * 1024
@@ -57,6 +57,29 @@
   return (uri[:idx], uri[idx + 1:])
 
 
+def to_bool(arg: Union[bool, str]) -> bool:
+  """Converts input into a bool.
+
+  For resolvers that can accept bool type, it may accept a string value parsed
+  from a URI. We need to convert the string value to a bool.
+
+  Args:
+    arg: The input argument to convert.
+
+  Returns:
+    The boolean value of the input argument.
+  """
+  if isinstance(arg, bool):
+    return arg
+
+  lower_arg = arg.lower()
+  if lower_arg in ('true', '1'):
+    return True
+  if lower_arg in ('false', '0'):
+    return False
+  raise ValueError(f'Invalid boolean argument: {arg}')
+
+
 def to_list(cs: Any) -> Optional[List[Any]]:
   """Converts input into list if it is not already a list.
 
diff --git a/src/android_internal/BUILD.gn b/src/android_internal/BUILD.gn
index 3211927..3b2e671 100644
--- a/src/android_internal/BUILD.gn
+++ b/src/android_internal/BUILD.gn
@@ -68,6 +68,11 @@
       "../../src/base/*",
       "../../src/tracing/*",
     ]
+
+    # Abseil is only used in Perfetto via the gRPC/libprotobuf.
+    if (perfetto_build_standalone || is_perfetto_build_generator) {
+      assert_no_deps += [ "../../buildtools:abseil_cpp" ]
+    }
   }
 }  # if (perfetto_build_with_android)
 
diff --git a/src/android_sdk/java/main/dev/perfetto/sdk/PerfettoTrackEventBuilder.java b/src/android_sdk/java/main/dev/perfetto/sdk/PerfettoTrackEventBuilder.java
index 87412a0..4e0665c 100644
--- a/src/android_sdk/java/main/dev/perfetto/sdk/PerfettoTrackEventBuilder.java
+++ b/src/android_sdk/java/main/dev/perfetto/sdk/PerfettoTrackEventBuilder.java
@@ -538,24 +538,6 @@
   }
 
   /**
-   * Adds a proto field with field id {@code id} and value {@code val}.
-   * If {@code internedTypeId} is non-zero, the string {@code val} will be interned
-   * with the given type ID. If {@code internedTypeId} is zero, no interning occurs.
-   */
-  public PerfettoTrackEventBuilder addFieldWithInterning(long id, String val, long internedTypeId) {
-    if (!mIsCategoryEnabled) {
-      return this;
-    }
-    if (mIsDebug) {
-      checkBuildingProto();
-    }
-    FieldString field = mObjectsPool.mFieldStringPool.get(fieldStringSupplier);
-    field.setValueWithInterning(id, val, internedTypeId);
-    addFieldToContainer(field);
-    return this;
-  }
-
-  /**
    * Begins a proto field. Fields can be added from this point and there must be a corresponding
    * {@link #endProto}.
    *
diff --git a/src/android_sdk/java/main/dev/perfetto/sdk/PerfettoTrackEventExtra.java b/src/android_sdk/java/main/dev/perfetto/sdk/PerfettoTrackEventExtra.java
index 5dbfdb6..6b2dc87 100644
--- a/src/android_sdk/java/main/dev/perfetto/sdk/PerfettoTrackEventExtra.java
+++ b/src/android_sdk/java/main/dev/perfetto/sdk/PerfettoTrackEventExtra.java
@@ -545,10 +545,6 @@
       native_set_value(mPtr, id, val);
     }
 
-    public void setValueWithInterning(long id, String val, long internedTypeId) {
-      native_set_value_with_interning(mPtr, id, val, internedTypeId);
-    }
-
     @CriticalNative
     private static native long native_init();
 
@@ -560,10 +556,6 @@
 
     @FastNative
     private static native void native_set_value(long ptr, long id, String val);
-
-    @FastNative
-    private static native void native_set_value_with_interning(
-        long ptr, long id, String val, long internedTypeId);
   }
 
   static final class FieldNested implements PerfettoPointer, FieldContainer {
diff --git a/src/android_sdk/java/test/dev/perfetto/sdk/test/PerfettoTraceTest.java b/src/android_sdk/java/test/dev/perfetto/sdk/test/PerfettoTraceTest.java
index d0458be..1ccf8fc 100644
--- a/src/android_sdk/java/test/dev/perfetto/sdk/test/PerfettoTraceTest.java
+++ b/src/android_sdk/java/test/dev/perfetto/sdk/test/PerfettoTraceTest.java
@@ -473,48 +473,6 @@
   }
 
   @Test
-  public void testProtoWithInterning() throws Exception {
-    TraceConfig traceConfig = getTraceConfig(FOO);
-
-    PerfettoTrace.Session session = new PerfettoTrace.Session(true, traceConfig.toByteArray());
-
-    final long fieldId = 1;
-    final long internedTypeId = 44; // InternedData.android_job_name
-    final String stringToIntern = "my_interned_string";
-
-    PerfettoTrace.instant(FOO_CATEGORY, "event_with_interning")
-        .beginProto()
-        .addFieldWithInterning(fieldId, stringToIntern, internedTypeId)
-        .endProto()
-        .emit();
-
-    byte[] traceBytes = session.close();
-
-    Trace trace = Trace.parseFrom(traceBytes);
-
-    boolean hasTrackEvent = false;
-    boolean hasInternedString = false;
-
-    for (TracePacket packet : trace.getPacketList()) {
-      if (packet.hasInternedData()) {
-        InternedData internedData = packet.getInternedData();
-        if (internedData.getAndroidJobNameCount() > 0) {
-          if (internedData.getAndroidJobName(0).getName().equals(stringToIntern)) {
-            hasInternedString = true;
-          }
-        }
-      }
-
-      if (packet.hasTrackEvent()) {
-        hasTrackEvent = true;
-      }
-    }
-
-    assertThat(hasTrackEvent).isTrue();
-    assertThat(hasInternedString).isTrue();
-  }
-
-  @Test
   public void testProtoWithSlowPath() throws Exception {
     TraceConfig traceConfig = getTraceConfig(FOO);
 
diff --git a/src/android_sdk/jni/dev_perfetto_sdk_PerfettoTrackEventExtra.cc b/src/android_sdk/jni/dev_perfetto_sdk_PerfettoTrackEventExtra.cc
index 576ff9a..3bec24d 100644
--- a/src/android_sdk/jni/dev_perfetto_sdk_PerfettoTrackEventExtra.cc
+++ b/src/android_sdk/jni/dev_perfetto_sdk_PerfettoTrackEventExtra.cc
@@ -365,20 +365,6 @@
   field->set_value(id, StringBuffer::utf16_to_ascii(env, val).data());
 }
 
-static void
-dev_perfetto_sdk_PerfettoTrackEventExtraFieldString_set_value_with_interning(
-    JNIEnv* env,
-    jclass,
-    jlong ptr,
-    jlong id,
-    jstring val,
-    jlong interned_type_id) {
-  sdk_for_jni::ProtoField<const char*, true>* field =
-      toPointer<sdk_for_jni::ProtoField<const char*, true>>(ptr);
-  field->set_value(id, StringBuffer::utf16_to_ascii(env, val).data(),
-                   interned_type_id);
-}
-
 static void dev_perfetto_sdk_PerfettoTrackEventExtraFieldNested_add_field(
     jlong field_ptr,
     jlong arg_ptr) {
@@ -668,9 +654,6 @@
      (void*)dev_perfetto_sdk_PerfettoTrackEventExtraFieldString_get_extra_ptr},
     {"native_set_value", "(JJLjava/lang/String;)V",
      (void*)dev_perfetto_sdk_PerfettoTrackEventExtraFieldString_set_value},
-    {"native_set_value_with_interning", "(JJLjava/lang/String;J)V",
-     (void*)
-         dev_perfetto_sdk_PerfettoTrackEventExtraFieldString_set_value_with_interning},
 };
 
 static const JNINativeMethod gFieldNestedMethods[] = {
diff --git a/src/android_sdk/perfetto_sdk_for_jni/tracing_sdk.h b/src/android_sdk/perfetto_sdk_for_jni/tracing_sdk.h
index e9c0d61..c79cb5e 100644
--- a/src/android_sdk/perfetto_sdk_for_jni/tracing_sdk.h
+++ b/src/android_sdk/perfetto_sdk_for_jni/tracing_sdk.h
@@ -348,7 +348,7 @@
   const std::string name_;
 };
 
-template <typename T, bool is_interned = false>
+template <typename T>
 class ProtoField {
  public:
   template <typename>
@@ -360,18 +360,14 @@
   };
 
   struct TypeMap {
-    template <typename ProtoT = T>
+    template <typename ProtoT>
     static constexpr auto get_proto_type() {
       if constexpr (std::is_same_v<ProtoT, int64_t>) {
         return type_identity<PerfettoTeHlProtoFieldVarInt>{};
       } else if constexpr (std::is_same_v<ProtoT, double>) {
         return type_identity<PerfettoTeHlProtoFieldDouble>{};
       } else if constexpr (std::is_same_v<ProtoT, const char*>) {
-        if constexpr (is_interned) {
-          return type_identity<PerfettoTeHlProtoFieldCstrInterned>{};
-        } else {
-          return type_identity<PerfettoTeHlProtoFieldCstr>{};
-        }
+        return type_identity<PerfettoTeHlProtoFieldCstr>{};
       } else {
         return type_identity<void>{};
       }
@@ -384,11 +380,7 @@
       } else if constexpr (std::is_same_v<T, double>) {
         return PERFETTO_TE_HL_PROTO_TYPE_DOUBLE;
       } else if constexpr (std::is_same_v<T, const char*>) {
-        if constexpr (is_interned) {
-          return PERFETTO_TE_HL_PROTO_TYPE_CSTR_INTERNED;
-        } else {
-          return PERFETTO_TE_HL_PROTO_TYPE_CSTR;
-        }
+        return PERFETTO_TE_HL_PROTO_TYPE_CSTR;
       } else {
         static_assert(always_false<T>::value, "Unsupported type");
         return 0;  // Never reached, just to satisfy return type
@@ -406,26 +398,18 @@
   }
 
   void set_value(uint32_t id, T value) {
-    if constexpr (std::is_same_v<T, const char*>) {
-      static_assert(
-          !is_interned,
-          "For interned strings, you must provide an interned_type_id");
-      arg_.header.id = id;
-      arg_.str = value;
-    } else {
+    if constexpr (std::is_same_v<T, int64_t>) {
       arg_.header.id = id;
       arg_.value = value;
+    } else if constexpr (std::is_same_v<T, double>) {
+      arg_.header.id = id;
+      arg_.value = value;
+    } else if constexpr (std::is_same_v<T, const char*>) {
+      arg_.header.id = id;
+      arg_.str = value;
     }
   }
 
-  void set_value(uint32_t id, T value, uint32_t interned_type_id) {
-    static_assert(is_interned && std::is_same_v<T, const char*>,
-                  "This overload is only available for interned string fields");
-    arg_.header.id = id;
-    arg_.str = value;
-    arg_.interned_type_id = interned_type_id;
-  }
-
   static void delete_field(ProtoField* field) { delete field; }
 
   const typename TypeMap::type* get() const { return &arg_; }
diff --git a/src/perfetto_cmd/BUILD.gn b/src/perfetto_cmd/BUILD.gn
index 8f1fb82..0857a83 100644
--- a/src/perfetto_cmd/BUILD.gn
+++ b/src/perfetto_cmd/BUILD.gn
@@ -76,6 +76,11 @@
     deps += [ "../android_internal:lazy_library_loader" ]
     sources += [ "perfetto_cmd_android.cc" ]
   }
+
+  # Abseil is only used in Perfetto via the gRPC/libprotobuf.
+  if (perfetto_build_standalone || is_perfetto_build_generator) {
+    assert_no_deps += [ "../../buildtools:abseil_cpp" ]
+  }
 }
 
 source_set("bugreport_path") {
@@ -100,6 +105,11 @@
     "../tracing/ipc/producer",
   ]
   sources = [ "trigger_perfetto.cc" ]
+
+  # Abseil is only used in Perfetto via the gRPC/libprotobuf.
+  if (perfetto_build_standalone || is_perfetto_build_generator) {
+    assert_no_deps = [ "../../buildtools:abseil_cpp" ]
+  }
 }
 
 source_set("trigger_producer") {
diff --git a/src/profiling/memory/BUILD.gn b/src/profiling/memory/BUILD.gn
index af081f4..6807e84 100644
--- a/src/profiling/memory/BUILD.gn
+++ b/src/profiling/memory/BUILD.gn
@@ -41,6 +41,11 @@
     "heapprofd.cc",
     "heapprofd.h",
   ]
+
+  # Abseil is only used in Perfetto via the gRPC/libprotobuf.
+  if (perfetto_build_standalone || is_perfetto_build_generator) {
+    assert_no_deps = [ "../../../buildtools:abseil_cpp" ]
+  }
 }
 
 # This library gets loaded into (and executes in) arbitrary android processes.
@@ -114,6 +119,11 @@
     "-Wl,--version-script",
     rebase_path("heapprofd_client_api.map.txt", root_build_dir),
   ]
+
+  # Abseil is only used in Perfetto via the gRPC/libprotobuf.
+  if (perfetto_build_standalone || is_perfetto_build_generator) {
+    assert_no_deps = [ "../../../buildtools:abseil_cpp" ]
+  }
 }
 
 shared_library("heapprofd_api_noop") {
diff --git a/src/profiling/perf/BUILD.gn b/src/profiling/perf/BUILD.gn
index e71f772..5d38374 100644
--- a/src/profiling/perf/BUILD.gn
+++ b/src/profiling/perf/BUILD.gn
@@ -39,6 +39,11 @@
     "traced_perf.cc",
     "traced_perf.h",
   ]
+
+  # Abseil is only used in Perfetto via the gRPC/libprotobuf.
+  if (perfetto_build_standalone || is_perfetto_build_generator) {
+    assert_no_deps = [ "../../../buildtools:abseil_cpp" ]
+  }
 }
 
 source_set("producer") {
diff --git a/src/shared_lib/BUILD.gn b/src/shared_lib/BUILD.gn
index 6086f28..44d5ea6 100644
--- a/src/shared_lib/BUILD.gn
+++ b/src/shared_lib/BUILD.gn
@@ -12,6 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+import("../../gn/perfetto.gni")
+
 source_set("for_testing") {
   deps = [
     "../../gn:default_deps",
@@ -42,6 +44,11 @@
     "tracing_session.cc",
   ]
   defines = [ "PERFETTO_SHLIB_SDK_IMPLEMENTATION" ]
+
+  # Abseil is only used in Perfetto via the gRPC/libprotobuf.
+  if (perfetto_build_standalone || is_perfetto_build_generator) {
+    assert_no_deps = [ "../../buildtools:abseil_cpp" ]
+  }
 }
 
 shared_library("libperfetto_c") {
diff --git a/src/shared_lib/track_event/hl.cc b/src/shared_lib/track_event/hl.cc
index bcc25c9..2cfd2d1 100644
--- a/src/shared_lib/track_event/hl.cc
+++ b/src/shared_lib/track_event/hl.cc
@@ -15,6 +15,7 @@
  */
 
 #include "perfetto/public/abi/track_event_hl_abi.h"
+
 #include "perfetto/tracing/internal/track_event_internal.h"
 #include "src/shared_lib/track_event/ds.h"
 #include "src/shared_lib/track_event/serialization.h"
@@ -23,10 +24,6 @@
 namespace {
 
 using perfetto::internal::TrackEventInternal;
-// All interned string messages for track events must have this field number
-// structure.
-static constexpr uint32_t kInternedStringIidFieldNumber = 1;
-static constexpr uint32_t kInternedStringNameFieldNumber = 2;
 
 protos::pbzero::TrackEvent::Type EventType(int32_t type) {
   using Type = protos::pbzero::TrackEvent::Type;
@@ -45,8 +42,7 @@
 }
 
 // Appends the fields described by `fields` to `msg`.
-void AppendHlProtoFields(TrackEventIncrementalState* incr,
-                         protozero::Message* msg,
+void AppendHlProtoFields(protozero::Message* msg,
                          PerfettoTeHlProtoField* const* fields) {
   for (PerfettoTeHlProtoField* const* p = fields; *p != nullptr; p++) {
     switch ((*p)->type) {
@@ -55,26 +51,6 @@
         msg->AppendString(field->header.id, field->str);
         break;
       }
-      case PERFETTO_TE_HL_PROTO_TYPE_CSTR_INTERNED: {
-        auto field = reinterpret_cast<PerfettoTeHlProtoFieldCstrInterned*>(*p);
-        PERFETTO_DCHECK(field->interned_type_id != 0);
-        if (field->interned_type_id) {
-          const void* str = field->str;
-          size_t len = strlen(field->str);
-          auto res = incr->iids.FindOrAssign(
-              static_cast<int32_t>(field->interned_type_id), str, len);
-          if (res.newly_assigned) {
-            auto* ser = incr->serialized_interned_data
-                            ->BeginNestedMessage<protozero::Message>(
-                                field->interned_type_id);
-            ser->AppendVarInt(kInternedStringIidFieldNumber, res.iid);
-            ser->AppendString(kInternedStringNameFieldNumber, field->str);
-          }
-          msg->AppendVarInt(field->header.id, res.iid);
-        }
-        // If interned_type_id is zero, this is a user error, we drop the packet
-        break;
-      }
       case PERFETTO_TE_HL_PROTO_TYPE_BYTES: {
         auto field = reinterpret_cast<PerfettoTeHlProtoFieldBytes*>(*p);
         msg->AppendBytes(field->header.id, field->buf, field->len);
@@ -84,7 +60,7 @@
         auto field = reinterpret_cast<PerfettoTeHlProtoFieldNested*>(*p);
         auto* nested =
             msg->BeginNestedMessage<protozero::Message>(field->header.id);
-        AppendHlProtoFields(incr, nested, field->fields);
+        AppendHlProtoFields(nested, field->fields);
         break;
       }
       case PERFETTO_TE_HL_PROTO_TYPE_VARINT: {
@@ -272,7 +248,7 @@
       const auto* fields =
           reinterpret_cast<const struct PerfettoTeHlExtraProtoFields&>(extra)
               .fields;
-      AppendHlProtoFields(incr, event, fields);
+      AppendHlProtoFields(event, fields);
     }
   }
 }
@@ -318,7 +294,7 @@
     auto packet = trace_writer->NewTracePacket();
     auto* track_descriptor = packet->set_track_descriptor();
     track_descriptor->set_uuid(uuid);
-    AppendHlProtoFields(incr_state, track_descriptor, fields);
+    AppendHlProtoFields(track_descriptor, fields);
   }
   return uuid;
 }
@@ -334,7 +310,7 @@
     auto* track_descriptor = packet->set_track_descriptor();
     track_descriptor->set_uuid(uuid);
     track_descriptor->set_parent_uuid(parent_uuid);
-    AppendHlProtoFields(incr_state, track_descriptor, fields);
+    AppendHlProtoFields(track_descriptor, fields);
   }
   return uuid;
 }
diff --git a/src/tools/ftrace_proto_gen/ftrace_descriptor_gen.cc b/src/tools/ftrace_proto_gen/ftrace_descriptor_gen.cc
index a6e7613..279f466 100644
--- a/src/tools/ftrace_proto_gen/ftrace_descriptor_gen.cc
+++ b/src/tools/ftrace_proto_gen/ftrace_descriptor_gen.cc
@@ -83,7 +83,7 @@
       max_field_id =
           std::max(max_field_id, event_descriptor->field(j)->number());
 
-    *fout << "{\"" + event->name() + "\", " << max_field_id << ", "
+    *fout << "{\"" + std::string(event->name()) + "\", " << max_field_id << ", "
           << "{";
 
     for (int j = 0; j <= max_field_id; j++) {
@@ -95,7 +95,7 @@
         continue;
       }
       ProtoType type = ProtoType::FromDescriptor(field->type());
-      *fout << "{\"" + field->name() + "\", ProtoSchemaType::k" +
+      *fout << "{\"" + std::string(field->name()) + "\", ProtoSchemaType::k" +
                    ToCamelCase(type.ToString()) + "},";
     }
     *fout << "},\n},";
diff --git a/src/tools/ftrace_proto_gen/proto_gen_utils.cc b/src/tools/ftrace_proto_gen/proto_gen_utils.cc
index 20cee29..c10a1fa 100644
--- a/src/tools/ftrace_proto_gen/proto_gen_utils.cc
+++ b/src/tools/ftrace_proto_gen/proto_gen_utils.cc
@@ -241,8 +241,8 @@
   for (int i = 0; i < desc.field_count(); ++i) {
     const google::protobuf::FieldDescriptor* field = desc.field(i);
     PERFETTO_CHECK(field);
-    AddField(Field{ProtoType::FromDescriptor(field->type()), field->name(),
-                   uint32_t(field->number())});
+    AddField(Field{ProtoType::FromDescriptor(field->type()),
+                   std::string(field->name()), uint32_t(field->number())});
   }
 }
 
diff --git a/src/tools/proto_merger/main.cc b/src/tools/proto_merger/main.cc
index 36a66f0..93bc486 100644
--- a/src/tools/proto_merger/main.cc
+++ b/src/tools/proto_merger/main.cc
@@ -14,13 +14,18 @@
  * limitations under the License.
  */
 
-#include <stdio.h>
+#include <cstdio>
+#include <cstring>
+#include <memory>
 #include <string>
+#include <utility>
 
 #include <google/protobuf/compiler/importer.h>
+#include <google/protobuf/descriptor.h>
 #include <google/protobuf/io/zero_copy_stream_impl.h>
 
 #include "perfetto/base/logging.h"
+#include "perfetto/base/status.h"
 #include "perfetto/ext/base/file_utils.h"
 #include "perfetto/ext/base/getopt.h"
 #include "perfetto/ext/base/scoped_file.h"
@@ -39,26 +44,34 @@
     : public google::protobuf::compiler::MultiFileErrorCollector {
  public:
   ~MultiFileErrorCollectorImpl() override;
-  void AddError(const std::string&, int, int, const std::string&) override;
-  void AddWarning(const std::string&, int, int, const std::string&) override;
+  void RecordError(std::string_view filename,
+                   int line,
+                   int column,
+                   std::string_view message) override;
+  void RecordWarning(std::string_view filename,
+                     int line,
+                     int column,
+                     std::string_view message) override;
 };
 
 MultiFileErrorCollectorImpl::~MultiFileErrorCollectorImpl() = default;
 
-void MultiFileErrorCollectorImpl::AddError(const std::string& filename,
-                                           int line,
-                                           int column,
-                                           const std::string& message) {
-  PERFETTO_ELOG("Error %s %d:%d: %s", filename.c_str(), line, column,
-                message.c_str());
+void MultiFileErrorCollectorImpl::RecordError(std::string_view filename,
+                                              int line,
+                                              int column,
+                                              std::string_view message) {
+  PERFETTO_ELOG("Error %.*s %d:%d: %.*s", static_cast<int>(filename.size()),
+                filename.data(), line, column, static_cast<int>(message.size()),
+                message.data());
 }
 
-void MultiFileErrorCollectorImpl::AddWarning(const std::string& filename,
-                                             int line,
-                                             int column,
-                                             const std::string& message) {
-  PERFETTO_ELOG("Warning %s %d:%d: %s", filename.c_str(), line, column,
-                message.c_str());
+void MultiFileErrorCollectorImpl::RecordWarning(std::string_view filename,
+                                                int line,
+                                                int column,
+                                                std::string_view message) {
+  PERFETTO_ELOG("Warning %.*s %d:%d: %.*s", static_cast<int>(filename.size()),
+                filename.data(), line, column, static_cast<int>(message.size()),
+                message.data());
 }
 
 struct ImportResult {
diff --git a/src/trace_processor/importers/ftrace/ftrace_parser.cc b/src/trace_processor/importers/ftrace/ftrace_parser.cc
index 67e81ca..97c7d63 100644
--- a/src/trace_processor/importers/ftrace/ftrace_parser.cc
+++ b/src/trace_processor/importers/ftrace/ftrace_parser.cc
@@ -86,6 +86,7 @@
 #include "protos/perfetto/trace/ftrace/ftrace.pbzero.h"
 #include "protos/perfetto/trace/ftrace/ftrace_event.pbzero.h"
 #include "protos/perfetto/trace/ftrace/ftrace_stats.pbzero.h"
+#include "protos/perfetto/trace/ftrace/fwtp_ftrace.pbzero.h"
 #include "protos/perfetto/trace/ftrace/g2d.pbzero.h"
 #include "protos/perfetto/trace/ftrace/generic.pbzero.h"
 #include "protos/perfetto/trace/ftrace/google_icc_trace.pbzero.h"
@@ -1477,6 +1478,10 @@
         ParseDmabufRssStat(ts, pid, fld_bytes);
         break;
       }
+      case FtraceEvent::kFwtpPerfettoCounterFieldNumber: {
+        ParseFwtpPerfettoCounter(fld_bytes);
+        break;
+      }
       default:
         break;
     }
@@ -4355,4 +4360,18 @@
       EventTracker::DmabufRssStat(), ts, static_cast<double>(evt.rss()), utid);
 }
 
+void FtraceParser::ParseFwtpPerfettoCounter(protozero::ConstBytes blob) {
+  static constexpr auto kBlueprint = tracks::CounterBlueprint(
+      "pixel_fwtp_counters", tracks::UnknownUnitBlueprint(),
+      tracks::DimensionBlueprints(tracks::kNameFromTraceDimensionBlueprint),
+      tracks::FnNameBlueprint([](base::StringView name) {
+        return base::StackString<255>("%.*s", int(name.size()), name.data());
+      }));
+  protos::pbzero::FwtpPerfettoCounterFtraceEvent::Decoder event(blob);
+  TrackId track_id = context_->track_tracker->InternTrack(
+      kBlueprint, tracks::Dimensions(event.name()));
+  context_->event_tracker->PushCounter(static_cast<int64_t>(event.timestamp()),
+                                       event.value(), track_id);
+}
+
 }  // namespace perfetto::trace_processor
diff --git a/src/trace_processor/importers/ftrace/ftrace_parser.h b/src/trace_processor/importers/ftrace/ftrace_parser.h
index b1af65b..15d779f 100644
--- a/src/trace_processor/importers/ftrace/ftrace_parser.h
+++ b/src/trace_processor/importers/ftrace/ftrace_parser.h
@@ -346,6 +346,7 @@
                               protozero::ConstBytes blob);
   void ParseMaliGpuPowerState(int64_t ts, protozero::ConstBytes blob);
   void ParseDmabufRssStat(int64_t ts, uint32_t pid, protozero::ConstBytes blob);
+  void ParseFwtpPerfettoCounter(protozero::ConstBytes blob);
 
   TraceProcessorContext* context_;
   GenericFtraceTracker* generic_tracker_;
diff --git a/src/trace_processor/metrics/sql/android/android_blocking_calls_cuj_per_frame_metric.sql b/src/trace_processor/metrics/sql/android/android_blocking_calls_cuj_per_frame_metric.sql
index 295c243..c3daa5e 100644
--- a/src/trace_processor/metrics/sql/android/android_blocking_calls_cuj_per_frame_metric.sql
+++ b/src/trace_processor/metrics/sql/android/android_blocking_calls_cuj_per_frame_metric.sql
@@ -48,7 +48,7 @@
   SELECT
     COUNT(*) AS frame_cnt,
     cuj_name
-  FROM _android_frames_in_cuj
+  FROM _android_distinct_frames_in_cuj
   GROUP BY cuj_name
 )
 SELECT
diff --git a/src/trace_processor/metrics/sql/android/android_jank_cuj.sql b/src/trace_processor/metrics/sql/android/android_jank_cuj.sql
index 83ab901..21c1d33 100644
--- a/src/trace_processor/metrics/sql/android/android_jank_cuj.sql
+++ b/src/trace_processor/metrics/sql/android/android_jank_cuj.sql
@@ -15,8 +15,8 @@
 
 SELECT RUN_METRIC('android/process_metadata.sql');
 INCLUDE PERFETTO MODULE android.surfaceflinger;
+INCLUDE PERFETTO MODULE android.cujs.base;
 INCLUDE PERFETTO MODULE android.cujs.cuj_frame_counters;
-INCLUDE PERFETTO MODULE android.cujs.sysui_cujs;
 INCLUDE PERFETTO MODULE android.frames.jank_type;
 INCLUDE PERFETTO MODULE android.frames.timeline;
 
@@ -51,7 +51,7 @@
     on_time_finish,
     sf_callback_missed,
     hwui_callback_missed
-  FROM _android_frames_in_cuj frame
+  FROM _android_distinct_frames_layers_cuj frame
   JOIN actual_timeline_with_vsync AS actual_frame
     ON frame.frame_id = actual_frame.vsync
   LEFT JOIN _vsync_missed_callback AS missed_callback USING(vsync)
diff --git a/src/trace_processor/metrics/sql/android/jank/internal/counters.sql b/src/trace_processor/metrics/sql/android/jank/internal/counters.sql
index ad08394..c43b277 100644
--- a/src/trace_processor/metrics/sql/android/jank/internal/counters.sql
+++ b/src/trace_processor/metrics/sql/android/jank/internal/counters.sql
@@ -16,7 +16,7 @@
 INCLUDE PERFETTO MODULE android.cujs.cuj_frame_counters;
 
 DROP TABLE IF EXISTS android_jank_cuj_counter_metrics;
-CREATE PERFETTO TABLE z AS
+CREATE PERFETTO TABLE android_jank_cuj_counter_metrics AS
 -- Order CUJs to get the ts of the next CUJ with the same name.
 -- This is to avoid selecting counters logged for the next CUJ in case multiple
 -- CUJs happened in a short succession.
diff --git a/src/trace_processor/perfetto_sql/generator/structured_query_generator.cc b/src/trace_processor/perfetto_sql/generator/structured_query_generator.cc
index cbfb51e..7979c28 100644
--- a/src/trace_processor/perfetto_sql/generator/structured_query_generator.cc
+++ b/src/trace_processor/perfetto_sql/generator/structured_query_generator.cc
@@ -203,6 +203,8 @@
   base::StatusOr<std::string> SimpleSlices(
       const StructuredQuery::SimpleSlices::Decoder&);
   base::StatusOr<std::string> SqlSource(const StructuredQuery::Sql::Decoder&);
+  base::StatusOr<std::string> TimeRange(
+      const StructuredQuery::ExperimentalTimeRange::Decoder&);
 
   // Nested sources
   std::string NestedSource(protozero::ConstBytes);
@@ -281,6 +283,7 @@
   StructuredQuery::Decoder root_query(state_[0].bytes);
   bool root_only_has_inner_query_and_operations =
       root_query.has_inner_query() && !root_query.has_table() &&
+      !root_query.has_experimental_time_range() &&
       !root_query.has_simple_slices() && !root_query.has_interval_intersect() &&
       !root_query.has_experimental_join() &&
       !root_query.has_experimental_union() && !root_query.has_sql() &&
@@ -333,6 +336,10 @@
     if (q.has_table()) {
       StructuredQuery::Table::Decoder table(q.table());
       ASSIGN_OR_RETURN(source, Table(table));
+    } else if (q.has_experimental_time_range()) {
+      StructuredQuery::ExperimentalTimeRange::Decoder time_range(
+          q.experimental_time_range());
+      ASSIGN_OR_RETURN(source, TimeRange(time_range));
     } else if (q.has_simple_slices()) {
       StructuredQuery::SimpleSlices::Decoder slices(q.simple_slices());
       ASSIGN_OR_RETURN(source, SimpleSlices(slices));
@@ -433,6 +440,39 @@
   return table.table_name().ToStdString();
 }
 
+base::StatusOr<std::string> GeneratorImpl::TimeRange(
+    const StructuredQuery::ExperimentalTimeRange::Decoder& time_range) {
+  if (!time_range.has_mode()) {
+    return base::ErrStatus("ExperimentalTimeRange: mode field is required");
+  }
+
+  switch (time_range.mode()) {
+    case StructuredQuery::ExperimentalTimeRange::STATIC: {
+      if (!time_range.has_ts()) {
+        return base::ErrStatus(
+            "ExperimentalTimeRange: ts is required for STATIC mode");
+      }
+      if (!time_range.has_dur()) {
+        return base::ErrStatus(
+            "ExperimentalTimeRange: dur is required for STATIC mode");
+      }
+      std::string ts_expr = std::to_string(time_range.ts());
+      std::string dur_expr = std::to_string(time_range.dur());
+      return "(SELECT 0 AS id, " + ts_expr + " AS ts, " + dur_expr + " AS dur)";
+    }
+    case StructuredQuery::ExperimentalTimeRange::DYNAMIC: {
+      std::string ts_expr = time_range.has_ts()
+                                ? std::to_string(time_range.ts())
+                                : "trace_start()";
+      std::string dur_expr = time_range.has_dur()
+                                 ? std::to_string(time_range.dur())
+                                 : "trace_dur()";
+      return "(SELECT 0 AS id, " + ts_expr + " AS ts, " + dur_expr + " AS dur)";
+    }
+  }
+  return base::ErrStatus("ExperimentalTimeRange: unknown mode value");
+}
+
 base::StatusOr<std::string> GeneratorImpl::SqlSource(
     const StructuredQuery::Sql::Decoder& sql) {
   if (sql.sql().size == 0) {
diff --git a/src/trace_processor/perfetto_sql/generator/structured_query_generator_unittest.cc b/src/trace_processor/perfetto_sql/generator/structured_query_generator_unittest.cc
index 4b26042..4aeb47d 100644
--- a/src/trace_processor/perfetto_sql/generator/structured_query_generator_unittest.cc
+++ b/src/trace_processor/perfetto_sql/generator/structured_query_generator_unittest.cc
@@ -4828,4 +4828,182 @@
   )"));
 }
 
+TEST(StructuredQueryGeneratorTest, ExperimentalTimeRangeSource) {
+  StructuredQueryGenerator gen;
+  auto proto = ToProto(R"(
+    experimental_time_range: {
+      mode: STATIC
+      ts: 100
+      dur: 400
+    }
+  )");
+  auto ret = gen.Generate(proto.data(), proto.size());
+  ASSERT_OK_AND_ASSIGN(std::string res, ret);
+  ASSERT_THAT(res, EqualsIgnoringWhitespace(R"(
+    WITH sq_0 AS (
+      SELECT *
+      FROM (SELECT 0 AS id, 100 AS ts, 400 AS dur)
+    )
+    SELECT * FROM sq_0
+  )"));
+}
+
+TEST(StructuredQueryGeneratorTest, ExperimentalTimeRangeSourceWithFilters) {
+  StructuredQueryGenerator gen;
+  auto proto = ToProto(R"(
+    experimental_time_range: {
+      mode: STATIC
+      ts: 1000
+      dur: 500
+    }
+    filters: {
+      column_name: "dur"
+      op: GREATER_THAN
+      int64_rhs: 0
+    }
+  )");
+  auto ret = gen.Generate(proto.data(), proto.size());
+  ASSERT_OK_AND_ASSIGN(std::string res, ret);
+  ASSERT_THAT(res, EqualsIgnoringWhitespace(R"(
+    WITH sq_0 AS (
+      SELECT *
+      FROM (SELECT 0 AS id, 1000 AS ts, 500 AS dur)
+      WHERE dur > 0
+    )
+    SELECT * FROM sq_0
+  )"));
+}
+
+TEST(StructuredQueryGeneratorTest, ExperimentalTimeRangeSourceMissingTs) {
+  StructuredQueryGenerator gen;
+  auto proto = ToProto(R"(
+    experimental_time_range: {
+      mode: DYNAMIC
+      dur: 400
+    }
+  )");
+  auto ret = gen.Generate(proto.data(), proto.size());
+  ASSERT_OK_AND_ASSIGN(std::string res, ret);
+  // When ts is missing in DYNAMIC mode, use trace_start()
+  ASSERT_THAT(res, EqualsIgnoringWhitespace(R"(
+    WITH sq_0 AS (
+      SELECT *
+      FROM (SELECT 0 AS id, trace_start() AS ts, 400 AS dur)
+    )
+    SELECT * FROM sq_0
+  )"));
+}
+
+TEST(StructuredQueryGeneratorTest, ExperimentalTimeRangeSourceMissingDur) {
+  StructuredQueryGenerator gen;
+  auto proto = ToProto(R"(
+    experimental_time_range: {
+      mode: DYNAMIC
+      ts: 100
+    }
+  )");
+  auto ret = gen.Generate(proto.data(), proto.size());
+  ASSERT_OK_AND_ASSIGN(std::string res, ret);
+  // When dur is missing in DYNAMIC mode, use trace_dur()
+  ASSERT_THAT(res, EqualsIgnoringWhitespace(R"(
+    WITH sq_0 AS (
+      SELECT *
+      FROM (SELECT 0 AS id, 100 AS ts, trace_dur() AS dur)
+    )
+    SELECT * FROM sq_0
+  )"));
+}
+
+TEST(StructuredQueryGeneratorTest, ExperimentalTimeRangeSourceMissingBoth) {
+  StructuredQueryGenerator gen;
+  auto proto = ToProto(R"(
+    experimental_time_range: {
+      mode: DYNAMIC
+    }
+  )");
+  auto ret = gen.Generate(proto.data(), proto.size());
+  ASSERT_OK_AND_ASSIGN(std::string res, ret);
+  // When both are missing in DYNAMIC mode, use trace_start() and trace_dur()
+  ASSERT_THAT(res, EqualsIgnoringWhitespace(R"(
+    WITH sq_0 AS (
+      SELECT *
+      FROM (SELECT 0 AS id, trace_start() AS ts, trace_dur() AS dur)
+    )
+    SELECT * FROM sq_0
+  )"));
+}
+
+TEST(StructuredQueryGeneratorTest,
+     ExperimentalTimeRangeSourceWithIntervalIntersect) {
+  StructuredQueryGenerator gen;
+  auto proto = ToProto(R"(
+    interval_intersect: {
+      base: {
+        table: {
+          table_name: "slice"
+          column_names: "id"
+          column_names: "ts"
+          column_names: "dur"
+          column_names: "name"
+        }
+      }
+      interval_intersect: {
+        experimental_time_range: {
+          mode: STATIC
+          ts: 100
+          dur: 400
+        }
+      }
+    }
+  )");
+  auto ret = gen.Generate(proto.data(), proto.size());
+  ASSERT_OK_AND_ASSIGN(std::string res, ret);
+  // Verify that experimental_time_range can be used as an interval source
+  EXPECT_THAT(res, testing::HasSubstr("SELECT 0 AS id, 100 AS ts, 400 AS dur"));
+  ASSERT_THAT(gen.ComputeReferencedModules(),
+              UnorderedElementsAre("intervals.intersect"));
+}
+
+TEST(StructuredQueryGeneratorTest, ExperimentalTimeRangeMissingMode) {
+  StructuredQueryGenerator gen;
+  auto proto = ToProto(R"(
+    experimental_time_range: {
+      ts: 100
+      dur: 400
+    }
+  )");
+  auto ret = gen.Generate(proto.data(), proto.size());
+  ASSERT_FALSE(ret.ok());
+  EXPECT_THAT(ret.status().message(),
+              testing::HasSubstr("mode field is required"));
+}
+
+TEST(StructuredQueryGeneratorTest, ExperimentalTimeRangeStaticMissingTs) {
+  StructuredQueryGenerator gen;
+  auto proto = ToProto(R"(
+    experimental_time_range: {
+      mode: STATIC
+      dur: 400
+    }
+  )");
+  auto ret = gen.Generate(proto.data(), proto.size());
+  ASSERT_FALSE(ret.ok());
+  EXPECT_THAT(ret.status().message(),
+              testing::HasSubstr("ts is required for STATIC mode"));
+}
+
+TEST(StructuredQueryGeneratorTest, ExperimentalTimeRangeStaticMissingDur) {
+  StructuredQueryGenerator gen;
+  auto proto = ToProto(R"(
+    experimental_time_range: {
+      mode: STATIC
+      ts: 100
+    }
+  )");
+  auto ret = gen.Generate(proto.data(), proto.size());
+  ASSERT_FALSE(ret.ok());
+  EXPECT_THAT(ret.status().message(),
+              testing::HasSubstr("dur is required for STATIC mode"));
+}
+
 }  // namespace perfetto::trace_processor::perfetto_sql::generator
diff --git a/src/trace_processor/perfetto_sql/stdlib/android/anrs.sql b/src/trace_processor/perfetto_sql/stdlib/android/anrs.sql
index 453ed32..f323cf0 100644
--- a/src/trace_processor/perfetto_sql/stdlib/android/anrs.sql
+++ b/src/trace_processor/perfetto_sql/stdlib/android/anrs.sql
@@ -143,6 +143,67 @@
     ELSE $platform
   END;
 
+CREATE PERFETTO FUNCTION _get_intent(
+    anr_type STRING,
+    subject STRING
+)
+RETURNS STRING AS
+SELECT
+  CASE
+    WHEN $anr_type = 'BROADCAST_OF_INTENT' AND $subject GLOB 'Broadcast of Intent *act=*'
+    THEN str_split(substr($subject, instr($subject, 'act=') + 4), ' ', 0)
+    WHEN $anr_type = 'BROADCAST_OF_INTENT' AND $subject GLOB 'Broadcast of */u*'
+    THEN str_split(substr($subject, instr($subject, 'Broadcast of ') + 13), '/u', 0)
+    ELSE NULL
+  END AS intent;
+
+CREATE PERFETTO FUNCTION _get_component(
+    anr_type STRING,
+    subject STRING
+)
+RETURNS STRING AS
+SELECT
+  CASE
+    WHEN $anr_type = 'BROADCAST_OF_INTENT'
+    THEN str_split(substr($subject, instr($subject, ' cmp=') + 5), ' ', 0)
+    WHEN $anr_type = 'INPUT_DISPATCHING_TIMEOUT_NO_FOCUSED_WINDOW'
+    THEN NULL
+    WHEN $anr_type = 'INPUT_DISPATCHING_TIMEOUT'
+    THEN str_split(substr($subject, instr($subject, '(') + 1), ' ', 1)
+    WHEN $anr_type = 'START_FOREGROUND_SERVICE'
+    THEN str_split(
+      substr(
+        $subject,
+        instr($subject, ' u') + 1 + instr(substr($subject, instr($subject, ' u') + 1), ' ')
+      ),
+      ' ',
+      0
+    )
+    WHEN $anr_type = 'EXECUTING_SERVICE'
+    THEN str_split(substr($subject, instr($subject, 'executing service ') + 18), ',', 0)
+    WHEN $anr_type = 'FOREGROUND_SHORT_SERVICE_TIMEOUT'
+    THEN str_split(substr($subject, instr($subject, 'ComponentInfo{') + 14), '}', 0)
+    WHEN $anr_type = 'FOREGROUND_SERVICE_TIMEOUT'
+    THEN str_split(substr($subject, instr($subject, 'ComponentInfo{') + 14), '}', 0)
+    WHEN $anr_type = 'APP_TRIGGERED'
+    THEN substr($subject, instr($subject, 'App requested: ') + 15)
+    WHEN $anr_type = 'CONTENT_PROVIDER_NOT_RESPONDING'
+    THEN NULL
+    WHEN $anr_type = 'GPU_HANG'
+    THEN NULL
+    WHEN $anr_type = 'JOB_SERVICE_START'
+    THEN NULL
+    WHEN $anr_type = 'JOB_SERVICE_STOP'
+    THEN NULL
+    WHEN $anr_type = 'JOB_SERVICE_BIND'
+    THEN NULL
+    WHEN $anr_type = 'BIND_APPLICATION'
+    THEN NULL
+    WHEN $anr_type = 'JOB_SERVICE_NOTIFICATION_NOT_PROVIDED'
+    THEN NULL
+    ELSE NULL
+  END AS component;
+
 -- List of all ANRs that occurred in the trace (one row per ANR).
 CREATE PERFETTO TABLE android_anrs (
   -- Name of the process that triggered the ANR.
@@ -157,6 +218,10 @@
   ts TIMESTAMP,
   -- Subject line of the ANR.
   subject STRING,
+  -- The intent that caused the ANR (if applicable).
+  intent STRING,
+  -- The component associated with the ANR (if applicable).
+  component STRING,
   -- The duration between the timer expiration event and the anr counter event
   timer_delay LONG,
   -- The standard type of ANR.
@@ -252,26 +317,42 @@
     FROM anr_ranked_timers
     WHERE
       rn = 1
+  ),
+  anrs AS (
+    SELECT
+      anr.process_name,
+      anr.pid,
+      process.upid,
+      anr.error_id,
+      anr.ts,
+      s.subject,
+      (
+        anr.ts - abt.timer_ts
+      ) AS timer_delay,
+      coalesce(_platform_to_standard_anr_type(abt.anr_type), _extract_anr_type(s.subject)) AS anr_type,
+      abt.anr_dur_ms,
+      _default_anr_dur(_extract_anr_type(s.subject), s.subject) AS default_anr_dur_ms
+    FROM anr
+    LEFT JOIN subject AS s
+      USING (error_id)
+    LEFT JOIN anr_best_timer AS abt
+      USING (error_id)
+    LEFT JOIN process
+      ON (
+        process.pid = anr.pid
+      )
   )
 SELECT
-  anr.process_name,
-  anr.pid,
-  process.upid,
-  anr.error_id,
-  anr.ts,
-  s.subject,
-  (
-    anr.ts - abt.timer_ts
-  ) AS timer_delay,
-  coalesce(_platform_to_standard_anr_type(abt.anr_type), _extract_anr_type(s.subject)) AS anr_type,
-  abt.anr_dur_ms,
-  _default_anr_dur(_extract_anr_type(s.subject), s.subject) AS default_anr_dur_ms
-FROM anr
-LEFT JOIN subject AS s
-  USING (error_id)
-LEFT JOIN anr_best_timer AS abt
-  USING (error_id)
-LEFT JOIN process
-  ON (
-    process.pid = anr.pid
-  );
+  process_name,
+  pid,
+  upid,
+  error_id,
+  ts,
+  anr_type,
+  subject,
+  _get_intent(anr_type, subject) AS intent,
+  _get_component(anr_type, subject) AS component,
+  timer_delay,
+  anr_dur_ms,
+  default_anr_dur_ms
+FROM anrs;
diff --git a/src/trace_processor/perfetto_sql/stdlib/android/cujs/base.sql b/src/trace_processor/perfetto_sql/stdlib/android/cujs/base.sql
index aa48659..bc1dc15 100644
--- a/src/trace_processor/perfetto_sql/stdlib/android/cujs/base.sql
+++ b/src/trace_processor/perfetto_sql/stdlib/android/cujs/base.sql
@@ -132,61 +132,61 @@
 SELECT
   substr($cuj_slice_name, 3, length($cuj_slice_name) - 3);
 
--- Track all distinct frames that overlap with the CUJ slice.
-CREATE PERFETTO VIEW _android_frames_in_cuj AS
--- Captures all frames in the CUJ boundary. In cases where there are multiple actual frames, there
--- can be multiple rows with the same frame_id.
-WITH
-  all_frames_in_cuj AS (
-    SELECT
-      _extract_cuj_name_from_slice(cuj.cuj_slice_name) AS cuj_name,
-      cuj.upid,
-      cuj.process_name,
-      cie.layer_id AS cuj_layer_id,
-      frame.layer_id,
-      frame.layer_name,
-      frame.frame_id,
-      frame.do_frame_id,
-      frame.expected_frame_timeline_id,
-      cuj.cuj_id,
-      frame.ts AS frame_ts,
-      frame.dur AS dur,
+-- Information about all frames in a process that overlap with a CUJ from the same process.
+-- This can include multiple frames for the same frame_id (for eg. frames with different layers).
+CREATE PERFETTO VIEW _all_frames_in_cuj AS
+SELECT
+  _extract_cuj_name_from_slice(cuj.cuj_slice_name) AS cuj_name,
+  cuj.upid,
+  cuj.process_name,
+  cie.layer_id AS cuj_layer_id,
+  frame.layer_id,
+  frame.layer_name,
+  frame.frame_id,
+  frame.do_frame_id,
+  frame.expected_frame_timeline_id,
+  cuj.cuj_id,
+  frame.ts AS frame_ts,
+  frame.dur AS dur,
+  (
+    frame.ts + frame.dur
+  ) AS ts_end,
+  ui_thread_utid
+FROM android_frames_layers AS frame
+JOIN _cuj_instant_events AS cie
+  ON frame.ui_thread_utid = cie.ui_thread AND frame.layer_id IS NOT NULL
+JOIN _jank_cujs_slices AS cuj
+  ON cie.cuj_id = cuj.cuj_id
+-- Check whether the frame_id falls within the begin and end vsync of the cuj.
+-- Also check if the frame start or end timestamp falls within the cuj boundary.
+WHERE
+  frame_id >= begin_vsync
+  AND frame_id <= end_vsync
+  AND (
+    -- frame start within cuj
+    (
+      frame.ts >= cuj.ts AND frame.ts <= cuj.ts_end
+    )
+    -- frame end within cuj
+    OR (
       (
         frame.ts + frame.dur
-      ) AS ts_end,
-      ui_thread_utid
-    FROM android_frames_layers AS frame
-    JOIN _cuj_instant_events AS cie
-      ON frame.ui_thread_utid = cie.ui_thread AND frame.layer_id IS NOT NULL
-    JOIN _jank_cujs_slices AS cuj
-      ON cie.cuj_id = cuj.cuj_id
-    -- Check whether the frame_id falls within the begin and end vsync of the cuj.
-    -- Also check if the frame start or end timestamp falls within the cuj boundary.
-    WHERE
-      frame_id >= begin_vsync
-      AND frame_id <= end_vsync
-      AND (
-        -- frame start within cuj
-        (
-          frame.ts >= cuj.ts AND frame.ts <= cuj.ts_end
-        )
-        -- frame end within cuj
-        OR (
-          (
-            frame.ts + frame.dur
-          ) >= cuj.ts AND (
-            frame.ts + frame.dur
-          ) <= cuj.ts_end
-        )
-      )
-  )
+      ) >= cuj.ts AND (
+        frame.ts + frame.dur
+      ) <= cuj.ts_end
+    )
+  );
+
+-- Track all distinct frames that overlap with the CUJ slice. In this table two frames are considered
+-- distinct if they have different frame_id/vsync.
+CREATE PERFETTO VIEW _android_distinct_frames_in_cuj AS
 SELECT
   row_number() OVER (PARTITION BY cuj_id ORDER BY min(frame_ts)) AS frame_idx,
   count(*) OVER (PARTITION BY cuj_id) AS frame_cnt,
-  -- Column values with no aggregation function will stay identical across rows. For eg.
+  -- With a 'GROUP BY' clause for this table, there is no aggregations function used for the
+  -- selected columns. This is because these columns values are expected to remain identical. For eg.
   -- a cuj_name, upid will be the same for a given cuj_id. do_frame_id or expected_frame_timeline_id
-  -- will be the same for a given frame_id. Hence it is ok to not have aggregation functions for
-  -- all selected columns.
+  -- will be the same for a given frame_id.
   cuj_name,
   upid,
   cuj_layer_id,
@@ -205,11 +205,44 @@
   (
     max(ts_end) - min(frame_ts)
   ) AS dur
-FROM all_frames_in_cuj
+FROM _all_frames_in_cuj
 GROUP BY
   frame_id,
   cuj_id;
 
+-- Track all distinct frames with layer_id consideration that overlap with the CUJ slice.
+CREATE PERFETTO VIEW _android_distinct_frames_layers_cuj AS
+SELECT
+  -- With a 'GROUP BY' clause for this table, there is no aggregations function used for the
+  -- selected columns. This is because these columns values are expected to remain identical. For eg.
+  -- a cuj_name, upid will be the same for a given cuj_id. do_frame_id or expected_frame_timeline_id
+  -- will be the same for a given frame_id and layer_id.
+  cuj_name,
+  upid,
+  cuj_layer_id,
+  layer_id,
+  layer_name,
+  process_name,
+  frame_id,
+  do_frame_id,
+  expected_frame_timeline_id,
+  cuj_id,
+  ui_thread_utid,
+  -- Having multiple frames with the same frame_id and layer_id is not possible, but for the sake of testing
+  -- we consider this possibility and pick the min start timestamp.
+  min(frame_ts) AS frame_ts,
+  -- Having multiple frames with the same frame_id and layer_id is not possible, but for the sake of testing
+  -- we consider this possibility and pick the max end timestamp.
+  max(ts_end) AS ts_end,
+  (
+    max(ts_end) - min(frame_ts)
+  ) AS dur
+FROM _all_frames_in_cuj
+GROUP BY
+  frame_id,
+  cuj_id,
+  layer_id;
+
 -- Table captures all Choreographer#doFrame within a CUJ boundary.
 CREATE PERFETTO TABLE _android_jank_cuj_do_frames AS
 WITH
diff --git a/src/trace_processor/perfetto_sql/stdlib/android/cujs/sysui_cujs.sql b/src/trace_processor/perfetto_sql/stdlib/android/cujs/sysui_cujs.sql
index f6b66e6..88f0b23 100644
--- a/src/trace_processor/perfetto_sql/stdlib/android/cujs/sysui_cujs.sql
+++ b/src/trace_processor/perfetto_sql/stdlib/android/cujs/sysui_cujs.sql
@@ -81,7 +81,7 @@
         WHERE
           id = do_frame_id
       ) AS end_frame_ts_end
-    FROM _android_frames_in_cuj
+    FROM _android_distinct_frames_in_cuj
     WHERE
       frame_idx = 1 OR frame_idx = frame_cnt
   )
diff --git a/src/trace_processor/perfetto_sql/stdlib/android/frame_blocking_calls/blocking_calls_aggregation.sql b/src/trace_processor/perfetto_sql/stdlib/android/frame_blocking_calls/blocking_calls_aggregation.sql
index 6485fdf..6c6fb8b 100644
--- a/src/trace_processor/perfetto_sql/stdlib/android/frame_blocking_calls/blocking_calls_aggregation.sql
+++ b/src/trace_processor/perfetto_sql/stdlib/android/frame_blocking_calls/blocking_calls_aggregation.sql
@@ -35,7 +35,7 @@
   -- For the last frame, fall back to the default ts_end.
   coalesce(lead(frame_ts) OVER (PARTITION BY cuj_id ORDER BY frame_id ASC), ts_end) AS ts_end,
   frame_id
-FROM _android_frames_in_cuj
+FROM _android_distinct_frames_in_cuj
 ORDER BY
   frame_id;
 
diff --git a/src/traced/probes/BUILD.gn b/src/traced/probes/BUILD.gn
index 7d133d0..f69b258 100644
--- a/src/traced/probes/BUILD.gn
+++ b/src/traced/probes/BUILD.gn
@@ -27,6 +27,11 @@
   ]
   sources = [ "main.cc" ]
   assert_no_deps = [ "../../../gn:protobuf_lite" ]
+
+  # Abseil is only used in Perfetto via the gRPC/libprotobuf.
+  if (perfetto_build_standalone || is_perfetto_build_generator) {
+    assert_no_deps += [ "../../../buildtools:abseil_cpp" ]
+  }
 }
 
 # Contains all the implementation but not the main() entry point. This target
diff --git a/src/traced/service/BUILD.gn b/src/traced/service/BUILD.gn
index 9d91e25..aa4bf82 100644
--- a/src/traced/service/BUILD.gn
+++ b/src/traced/service/BUILD.gn
@@ -29,6 +29,11 @@
   ]
   sources = [ "main.cc" ]
   assert_no_deps = [ "../../../gn:protobuf_lite" ]
+
+  # Abseil is only used in Perfetto via the gRPC/libprotobuf.
+  if (perfetto_build_standalone || is_perfetto_build_generator) {
+    assert_no_deps += [ "../../buildtools:abseil_cpp" ]
+  }
 }
 
 # Contains all the implementation but not the main() entry point. This target
@@ -52,6 +57,11 @@
   }
 
   sources = [ "service.cc" ]
+
+  # Abseil is only used in Perfetto via the gRPC/libprotobuf.
+  if (perfetto_build_standalone || is_perfetto_build_generator) {
+    assert_no_deps = [ "../../../buildtools:abseil_cpp" ]
+  }
 }
 
 source_set("builtin_producer") {
diff --git a/test/trace_processor/diff_tests/stdlib/android/tests.py b/test/trace_processor/diff_tests/stdlib/android/tests.py
index f665498..ce79f3e 100644
--- a/test/trace_processor/diff_tests/stdlib/android/tests.py
+++ b/test/trace_processor/diff_tests/stdlib/android/tests.py
@@ -117,29 +117,29 @@
         trace=Path('../../metrics/android/android_anr_metric.py'),
         query="""
         INCLUDE PERFETTO MODULE android.anrs;
-        SELECT process_name, pid, upid, error_id, ts, subject, anr_type, default_anr_dur_ms
+        SELECT process_name, pid, upid, error_id, ts, subject, anr_type, intent, component, default_anr_dur_ms
         FROM android_anrs;
       """,
         out=Csv("""
-        "process_name","pid","upid","error_id","ts","subject","anr_type","default_anr_dur_ms"
-        "com.google.android.app1",11167,"[NULL]","da24554c-452a-4ae1-b74a-fb898f6e0982",1000,"Test ANR subject 1","UNKNOWN_ANR_TYPE","[NULL]"
-        "com.google.android.app2","[NULL]","[NULL]","8612fece-c2f1-4aeb-9d45-8e6d9d0201cf",2000,"Test ANR subject 2","UNKNOWN_ANR_TYPE","[NULL]"
-        "com.google.android.app3","[NULL]","[NULL]","c25916a0-a8f0-41f3-87df-319e06471a0f",3000,"[NULL]","[NULL]","[NULL]"
-        "com.disney.disneyplus",23215,"[NULL]","1eb3813d-45d3-4a9a-ab80-0ebeb88ea25a",4000,"Broadcast of Intent { act=android.os.action.DEVICE_IDLE_MODE_CHANGED flg=0x50000010 cmp=com.disney.disneyplus/Di.a }","BROADCAST_OF_INTENT",10000
-        "com.disney.disneyplus",27195,"[NULL]","50756b89-eadc-40c9-aef2-8886adb7d936",5000,"Broadcast of Intent { act=android.intent.action.DATE_CHANGED flg=0x20200010 cmp=com.disney.disneyplus/Di.a }","BROADCAST_OF_INTENT",60000
-        "com.android.chrome",17874,"[NULL]","60b9d4b6-6487-4800-bd12-3f9d547482e3",6000,"Input dispatching timed out (88f6a9 com.android.chrome/org.chromium.chrome.browser.customtabs.CustomTabActivity is not responding. Waited 5000ms for FocusEvent(hasFocus=false)).","INPUT_DISPATCHING_TIMEOUT",5000
-        "com.microsoft.teams",10645,"[NULL]","2d1dff06-54a3-450b-8123-0d21e67715c4",7000,"Input dispatching timed out (Application does not have a focused window).","INPUT_DISPATCHING_TIMEOUT_NO_FOCUSED_WINDOW",5000
-        "com.google.android.apps.internal.betterbug",26587,"[NULL]","1c733cef-dee3-42a1-bff5-6ac2bb3167ae",8000,"Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord{76a32df u10 com.google.android.apps.internal.betterbug/.ramdumpuploader.RamdumpUploadService c:com.google.android.apps.internal.betterbug}","START_FOREGROUND_SERVICE",30000
-        "com.android.systemui",2342,"[NULL]","f2eb9ced-2327-402c-bf7c-dc498fafa5cd",9000,"executing service com.android.systemui/.doze.DozeService, waited 156441ms","EXECUTING_SERVICE",20000
-        "com.android.settings",15028,"[NULL]","9361cad8-c888-4f03-bff9-9ed8c69d583b",11000,"ContentProvider not responding","CONTENT_PROVIDER_NOT_RESPONDING","[NULL]"
-        "com.google.android.youtube.tv",16563,"[NULL]","600c4866-02c0-4d46-a69c-21d9ac377ad0",12000,"App requested: Buffer processing hung up due to stuck fence. Indicates GPU hang","GPU_HANG","[NULL]"
-        "com.android.chrome",18090,"[NULL]","fd96eb0a-ccba-474b-8044-b7cd27e812c2",13000,"No response to onStartJob","JOB_SERVICE_START",8000
-        "com.android.chrome",13534,"[NULL]","4e1f9f12-d9bf-4d6b-9e2b-1dfeaf774859",14000,"No response to onStopJob","JOB_SERVICE_STOP",8000
-        "com.android.vending",18264,"[NULL]","8a83c04e-fd35-4945-9fcc-7736f4242cae",15000,"Timed out while trying to bind","JOB_SERVICE_BIND",8000
-        "com.android.phone",3538,"[NULL]","df199866-4a6a-4388-b79f-2c76b6d5bb00",16000,"Process ProcessRecord{1a270e8 3538:com.android.phone/1001} failed to complete startup","BIND_APPLICATION",15000
-        "com.google.netops.pager",28509,"[NULL]","62abad99-bd09-44ef-bbbb-40db5c4d5539",17000,"A foreground service of FOREGROUND_SERVICE_TYPE_SHORT_SERVICE did not stop within a timeout: ComponentInfo{com.google.netops.pager/com.google.netops.pager.NotifierService}","FOREGROUND_SHORT_SERVICE_TIMEOUT",180000
-        "com.whatsapp",11456,"[NULL]","975b36a1-8b4a-4d69-875e-2c33e140bd1c",18000,"A foreground service of type dataSync did not stop within a timeout: ComponentInfo{com.whatsapp/com.whatsapp.service.GcmFGService}","FOREGROUND_SERVICE_TIMEOUT",30000
-        "com.android.chrome",22768,"[NULL]","05122f25-2f5b-4650-aeeb-cf59a9d6295a",19000,"required notification not provided","JOB_SERVICE_NOTIFICATION_NOT_PROVIDED",8000
+        "process_name","pid","upid","error_id","ts","subject","anr_type","intent","component","default_anr_dur_ms"
+        "com.google.android.app1",11167,"[NULL]","da24554c-452a-4ae1-b74a-fb898f6e0982",1000,"Test ANR subject 1","UNKNOWN_ANR_TYPE","[NULL]","[NULL]","[NULL]"
+        "com.google.android.app2","[NULL]","[NULL]","8612fece-c2f1-4aeb-9d45-8e6d9d0201cf",2000,"Test ANR subject 2","UNKNOWN_ANR_TYPE","[NULL]","[NULL]","[NULL]"
+        "com.google.android.app3","[NULL]","[NULL]","c25916a0-a8f0-41f3-87df-319e06471a0f",3000,"[NULL]","[NULL]","[NULL]","[NULL]","[NULL]"
+        "com.disney.disneyplus",23215,"[NULL]","1eb3813d-45d3-4a9a-ab80-0ebeb88ea25a",4000,"Broadcast of Intent { act=android.os.action.DEVICE_IDLE_MODE_CHANGED flg=0x50000010 cmp=com.disney.disneyplus/Di.a }","BROADCAST_OF_INTENT","android.os.action.DEVICE_IDLE_MODE_CHANGED","com.disney.disneyplus/Di.a",10000
+        "com.disney.disneyplus",27195,"[NULL]","50756b89-eadc-40c9-aef2-8886adb7d936",5000,"Broadcast of Intent { act=android.intent.action.DATE_CHANGED flg=0x20200010 cmp=com.disney.disneyplus/Di.a }","BROADCAST_OF_INTENT","android.intent.action.DATE_CHANGED","com.disney.disneyplus/Di.a",60000
+        "com.android.chrome",17874,"[NULL]","60b9d4b6-6487-4800-bd12-3f9d547482e3",6000,"Input dispatching timed out (88f6a9 com.android.chrome/org.chromium.chrome.browser.customtabs.CustomTabActivity is not responding. Waited 5000ms for FocusEvent(hasFocus=false)).","INPUT_DISPATCHING_TIMEOUT","[NULL]","com.android.chrome/org.chromium.chrome.browser.customtabs.CustomTabActivity",5000
+        "com.microsoft.teams",10645,"[NULL]","2d1dff06-54a3-450b-8123-0d21e67715c4",7000,"Input dispatching timed out (Application does not have a focused window).","INPUT_DISPATCHING_TIMEOUT_NO_FOCUSED_WINDOW","[NULL]","[NULL]",5000
+        "com.google.android.apps.internal.betterbug",26587,"[NULL]","1c733cef-dee3-42a1-bff5-6ac2bb3167ae",8000,"Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord{76a32df u10 com.google.android.apps.internal.betterbug/.ramdumpuploader.RamdumpUploadService c:com.google.android.apps.internal.betterbug}","START_FOREGROUND_SERVICE","[NULL]","com.google.android.apps.internal.betterbug/.ramdumpuploader.RamdumpUploadService",30000
+        "com.android.systemui",2342,"[NULL]","f2eb9ced-2327-402c-bf7c-dc498fafa5cd",9000,"executing service com.android.systemui/.doze.DozeService, waited 156441ms","EXECUTING_SERVICE","[NULL]","com.android.systemui/.doze.DozeService",20000
+        "com.android.settings",15028,"[NULL]","9361cad8-c888-4f03-bff9-9ed8c69d583b",11000,"ContentProvider not responding","CONTENT_PROVIDER_NOT_RESPONDING","[NULL]","[NULL]","[NULL]"
+        "com.google.android.youtube.tv",16563,"[NULL]","600c4866-02c0-4d46-a69c-21d9ac377ad0",12000,"App requested: Buffer processing hung up due to stuck fence. Indicates GPU hang","GPU_HANG","[NULL]","[NULL]","[NULL]"
+        "com.android.chrome",18090,"[NULL]","fd96eb0a-ccba-474b-8044-b7cd27e812c2",13000,"No response to onStartJob","JOB_SERVICE_START","[NULL]","[NULL]",8000
+        "com.android.chrome",13534,"[NULL]","4e1f9f12-d9bf-4d6b-9e2b-1dfeaf774859",14000,"No response to onStopJob","JOB_SERVICE_STOP","[NULL]","[NULL]",8000
+        "com.android.vending",18264,"[NULL]","8a83c04e-fd35-4945-9fcc-7736f4242cae",15000,"Timed out while trying to bind","JOB_SERVICE_BIND","[NULL]","[NULL]",8000
+        "com.android.phone",3538,"[NULL]","df199866-4a6a-4388-b79f-2c76b6d5bb00",16000,"Process ProcessRecord{1a270e8 3538:com.android.phone/1001} failed to complete startup","BIND_APPLICATION","[NULL]","[NULL]",15000
+        "com.google.netops.pager",28509,"[NULL]","62abad99-bd09-44ef-bbbb-40db5c4d5539",17000,"A foreground service of FOREGROUND_SERVICE_TYPE_SHORT_SERVICE did not stop within a timeout: ComponentInfo{com.google.netops.pager/com.google.netops.pager.NotifierService}","FOREGROUND_SHORT_SERVICE_TIMEOUT","[NULL]","com.google.netops.pager/com.google.netops.pager.NotifierService",180000
+        "com.whatsapp",11456,"[NULL]","975b36a1-8b4a-4d69-875e-2c33e140bd1c",18000,"A foreground service of type dataSync did not stop within a timeout: ComponentInfo{com.whatsapp/com.whatsapp.service.GcmFGService}","FOREGROUND_SERVICE_TIMEOUT","[NULL]","com.whatsapp/com.whatsapp.service.GcmFGService",30000
+        "com.android.chrome",22768,"[NULL]","05122f25-2f5b-4650-aeeb-cf59a9d6295a",19000,"required notification not provided","JOB_SERVICE_NOTIFICATION_NOT_PROVIDED","[NULL]","[NULL]",8000
       """))
 
   def test_anr_with_timer(self):
diff --git a/tools/gen_grpc_build_gn.py b/tools/gen_grpc_build_gn.py
index f921e39..7e0d901 100755
--- a/tools/gen_grpc_build_gn.py
+++ b/tools/gen_grpc_build_gn.py
@@ -56,6 +56,8 @@
     'boringssl_test_util',
     'grpcpp_otel_plugin',
     'otel_plugin_test',
+    # Use the shared utf8_range from buildtools/BUILD.gn
+    'utf8_range_lib',
 ])
 
 TARGET_ALLOW_LIST = set([
@@ -75,6 +77,17 @@
     'cares',
 ])
 
+# Sources to exclude from specific libraries to avoid duplicate symbols.
+# These files are already included in grpc/grpc_unsecure directly, so they
+# should not be in their dependencies as well.
+# Note: paths here should match what's in the YAML (before 'src/' prefix is added).
+SOURCE_EXCLUSIONS = {
+    'upb_reflection_lib':
+        set([
+            'src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c',
+        ]),
+}
+
 
 def grpc_relpath(*segments: str) -> str:
   '''From path segments to GRPC root, returns the absolute path.'''
@@ -82,7 +95,6 @@
 
 
 GRPC_BUILD_YAML = grpc_relpath('build_autogenerated.yaml')
-ABSL_GEN_BUILD_YAML = grpc_relpath('src', 'abseil-cpp', 'gen_build_yaml.py')
 BSSL_GEN_BUILD_YAML = grpc_relpath('src', 'boringssl', 'gen_build_yaml.py')
 
 
@@ -105,6 +117,12 @@
     return '..:protoc_lib'
   if dep == 'z':
     return '..:zlib'
+  # Use the shared abseil library from buildtools/BUILD.gn
+  if dep.startswith('absl/'):
+    return '..:abseil_cpp'
+  # Use the shared utf8_range from buildtools/BUILD.gn
+  if dep == 'utf8_range_lib':
+    return '..:utf8_range'
   return ':' + bazel_label_to_gn_target(dep)
 
 
@@ -123,22 +141,32 @@
       continue
     if lib['name'] in LIBRARY_IGNORE_LIST:
       continue
-    srcs = [f'src/{file}' for file in lib['src'] + lib['headers']]
+    exclusions = SOURCE_EXCLUSIONS.get(lib['name'], set())
+    srcs = [
+        f'src/{file}' for file in lib['src'] + lib['headers']
+        if file not in exclusions
+    ]
     if 'asm_src' in lib:
       srcs += [f'src/{file}' for file in lib['asm_src']['crypto_asm']]
-    deps = [
-        bazel_label_to_gn_dep(dep)
-        for dep in lib.get('deps', [])
-        if dep not in DEP_DENYLIST
-    ]
+    # Use dict.fromkeys to deduplicate while preserving order
+    deps = list(
+        dict.fromkeys([
+            bazel_label_to_gn_dep(dep)
+            for dep in lib.get('deps', [])
+            if dep not in DEP_DENYLIST
+        ]))
     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']),
-        check_includes='false' if lib['name'] == 'upb_json_lib' or
-        lib['name'] == 'upb_textformat_lib' else 'true')
+        # Disable check_includes for targets that include headers from grpc
+        # without depending on it (circular dependency in upstream grpc).
+        check_includes='false' if lib['name'] in ('upb_json_lib',
+                                                  'upb_textformat_lib',
+                                                  'upb_reflection_lib',
+                                                  'gpr') else 'true')
     out.append(library_target)
 
   for bin in desc.get('targets', []):
@@ -147,11 +175,13 @@
     if bin['name'] not in TARGET_ALLOW_LIST:
       continue
     srcs = json.dumps([f'src/{file}' for file in bin['src'] + bin['headers']])
-    deps = [
-        bazel_label_to_gn_dep(dep)
-        for dep in bin.get('deps', [])
-        if dep not in DEP_DENYLIST
-    ]
+    # Use dict.fromkeys to deduplicate while preserving order
+    deps = list(
+        dict.fromkeys([
+            bazel_label_to_gn_dep(dep)
+            for dep in bin.get('deps', [])
+            if dep not in DEP_DENYLIST
+        ]))
     binary_target = TARGET_TEMPLATE.format(
         name=bazel_label_to_gn_target(bin['name']),
         config_name=config_name,
@@ -166,9 +196,8 @@
 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'))
+  # Note: abseil rules are no longer generated here. gRPC now uses the shared
+  # abseil library from buildtools/BUILD.gn (the :abseil_cpp target).
 
   # Generate boringssl rules
   boringssl_yaml = gen_grpc_dep_yaml(BSSL_GEN_BUILD_YAML)
diff --git a/tools/install-build-deps b/tools/install-build-deps
index 3124f6a..ffa372c 100755
--- a/tools/install-build-deps
+++ b/tools/install-build-deps
@@ -183,11 +183,20 @@
         'https://android.googlesource.com/platform/external/googletest.git',
         '609281088cfefc76f9d0ce82e1ff6c30cc3591e5', 'all', 'all'),
 
-    # Keep in sync with Chromium's //third_party/protobuf.
+    # Keep in sync with gRPC's third_party/protobuf.
     Dependency(
         'buildtools/protobuf',
         'https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf.git',
-        'f0dc78d7e6e331b8c6bb2d5283e06aa26883ca7c',  # refs/tags/v21.12
+        '74211c0dfc2777318ab53c2cd2c317a2ef9012de',  # refs/tags/v31.1
+        'all',
+        'all'),
+
+    # Required by protobuf v22+ and gRPC. It's not allowed in our repo beyond
+    # the usage by those deps.
+    Dependency(
+        'buildtools/abseil-cpp',
+        'https://chromium.googlesource.com/external/github.com/abseil/abseil-cpp.git',
+        '76bb24329e8bf5f39704eb10d21b9a80befa7c81',  # 20250512.1
         'all',
         'all'),
 
@@ -489,7 +498,8 @@
     Dependency(
         'buildtools/grpc/src',
         'https://chromium.googlesource.com/external/github.com/grpc/grpc.git',
-        '4795c5e69b25e8c767b498bea784da0ef8c96fd5', 'all', 'all', True),
+        'f5ffb68d8a2fd603dff16287e90a4ac571e1fec6', 'all', 'all',
+        True),  # v1.76.0
     Dependency('buildtools/cpp-httplib',
                'https://github.com/yhirose/cpp-httplib.git',
                '6c3e8482f7b4e3b307bb42afbb85fd8771da86b8', 'all', 'all', True)
diff --git a/ui/src/assets/components/data_grid.scss b/ui/src/assets/components/datagrid.scss
similarity index 100%
rename from ui/src/assets/components/data_grid.scss
rename to ui/src/assets/components/datagrid.scss
diff --git a/ui/src/assets/perfetto.scss b/ui/src/assets/perfetto.scss
index ac35202..fd8584f 100644
--- a/ui/src/assets/perfetto.scss
+++ b/ui/src/assets/perfetto.scss
@@ -28,7 +28,7 @@
 
 // Widgets/components - keep these sorted alphabetically
 @import "components/aggregation_adapter";
-@import "components/data_grid";
+@import "components/datagrid";
 @import "components/json_settings_editor";
 @import "components/pivot_table";
 @import "components/query_history";
diff --git a/ui/src/base/utils.ts b/ui/src/base/utils.ts
index c296908..02a44a0 100644
--- a/ui/src/base/utils.ts
+++ b/ui/src/base/utils.ts
@@ -98,3 +98,8 @@
 //   const x = undefinable(arr[10]); // x is number | undefined
 //   if (exists(x)) { /* x is number here */ }
 export const maybeUndefined = <T>(value: T) => value as T | undefined;
+
+// Check if the value a number or a bigint
+export function isNumeric(value: unknown): value is number | bigint {
+  return typeof value === 'number' || typeof value === 'bigint';
+}
diff --git a/ui/src/components/aggregation_adapter.ts b/ui/src/components/aggregation_adapter.ts
index 78df7c6..c9f6174 100644
--- a/ui/src/components/aggregation_adapter.ts
+++ b/ui/src/components/aggregation_adapter.ts
@@ -28,7 +28,7 @@
 import {EmptyState} from '../widgets/empty_state';
 import {Spinner} from '../widgets/spinner';
 import {AggregationPanel} from './aggregation_panel';
-import {DataGridDataSource, PivotModel} from './widgets/datagrid/common';
+import {PivotModel} from './widgets/datagrid/model';
 import {SQLDataSource} from './widgets/datagrid/sql_data_source';
 import {BarChartData, ColumnDef, Sorting} from './aggregation';
 import {
@@ -37,6 +37,7 @@
 } from '../trace_processor/sql_utils';
 import {DataGridApi} from './widgets/datagrid/datagrid';
 import {DataGridExportButton} from './widgets/datagrid/export_button';
+import {DataSource} from './widgets/datagrid/data_source';
 
 export interface AggregationData {
   readonly tableName: string;
@@ -96,7 +97,7 @@
 }
 
 export interface AggregationPanelAttrs {
-  readonly dataSource: DataGridDataSource;
+  readonly dataSource: DataSource;
   readonly sorting: Sorting;
   readonly columns: ReadonlyArray<ColumnDef> | AggregatePivotModel;
   readonly barChartData?: ReadonlyArray<BarChartData>;
diff --git a/ui/src/components/aggregation_panel.ts b/ui/src/components/aggregation_panel.ts
index a3c1993..49b09a9 100644
--- a/ui/src/components/aggregation_panel.ts
+++ b/ui/src/components/aggregation_panel.ts
@@ -18,18 +18,19 @@
 import {Box} from '../widgets/box';
 import {Stack, StackAuto, StackFixed} from '../widgets/stack';
 import {BarChartData, ColumnDef, Sorting} from './aggregation';
-import {
-  CellRenderer,
-  DataGridColumn,
-  DataGridDataSource,
-} from './widgets/datagrid/common';
+import {DataGridColumn} from './widgets/datagrid/model';
 import {DataGrid, renderCell, DataGridApi} from './widgets/datagrid/datagrid';
 import {defaultValueFormatter} from './widgets/datagrid/export_utils';
 import {AggregatePivotModel} from './aggregation_adapter';
-import {ColumnSchema, SchemaRegistry} from './widgets/datagrid/column_schema';
+import {
+  CellRenderer,
+  ColumnSchema,
+  SchemaRegistry,
+} from './widgets/datagrid/column_schema';
+import {DataSource} from './widgets/datagrid/data_source';
 
 export interface AggregationPanelAttrs {
-  readonly dataSource: DataGridDataSource;
+  readonly dataSource: DataSource;
   readonly sorting: Sorting;
   readonly columns: ReadonlyArray<ColumnDef> | AggregatePivotModel;
   readonly barChartData?: ReadonlyArray<BarChartData>;
@@ -55,7 +56,7 @@
   }
 
   private renderTable(
-    dataSource: DataGridDataSource,
+    dataSource: DataSource,
     sorting: Sorting,
     model: ReadonlyArray<ColumnDef> | AggregatePivotModel,
     onReady?: (api: DataGridApi) => void,
diff --git a/ui/src/components/query_table/query_table.ts b/ui/src/components/query_table/query_table.ts
index 5f62b0c..29043da 100644
--- a/ui/src/components/query_table/query_table.ts
+++ b/ui/src/components/query_table/query_table.ts
@@ -19,22 +19,18 @@
 import {DetailsShell} from '../../widgets/details_shell';
 import {Trace} from '../../public/trace';
 import {Icons} from '../../base/semantic_icons';
+import {DataGrid, renderCell, DataGridApi} from '../widgets/datagrid/datagrid';
 import {
-  DataGrid,
-  renderCell,
-  DataGridApi,
-  columnsToSchema,
-} from '../widgets/datagrid/datagrid';
-import {
-  DataGridDataSource,
   CellRenderer,
-  ColumnDefinition,
-} from '../widgets/datagrid/common';
+  ColumnSchema,
+  SchemaRegistry,
+} from '../widgets/datagrid/column_schema';
 import {InMemoryDataSource} from '../widgets/datagrid/in_memory_data_source';
 import {Anchor} from '../../widgets/anchor';
 import {Box} from '../../widgets/box';
 import {DataGridExportButton} from '../widgets/datagrid/export_button';
 import {CopyToClipboardButton} from '../../widgets/copy_to_clipboard_button';
+import {DataSource} from '../widgets/datagrid/data_source';
 
 type Numeric = bigint | number;
 
@@ -91,7 +87,7 @@
 
 export class QueryTable implements m.ClassComponent<QueryTableAttrs> {
   private readonly trace: Trace;
-  private dataSource?: DataGridDataSource;
+  private dataSource?: DataSource;
   private dataGridApi?: DataGridApi;
 
   constructor({attrs}: m.CVnode<QueryTableAttrs>) {
@@ -150,10 +146,7 @@
     ];
   }
 
-  private renderTableContent(
-    resp: QueryResponse,
-    dataSource: DataGridDataSource,
-  ) {
+  private renderTableContent(resp: QueryResponse, dataSource: DataSource) {
     return m(
       '.pf-query-panel',
       resp.statementWithOutputCount > 1 &&
@@ -168,12 +161,14 @@
     );
   }
 
-  private renderContent(resp: QueryResponse, dataSource: DataGridDataSource) {
+  private renderContent(resp: QueryResponse, dataSource: DataSource) {
     if (resp.error) {
       return m('.pf-query-panel__query-error', `SQL error: ${resp.error}`);
     }
 
-    const columnDefs: ColumnDefinition[] = resp.columns.map((column) => {
+    // Build schema directly
+    const columnSchema: ColumnSchema = {};
+    for (const column of resp.columns) {
       const cellRenderer: CellRenderer | undefined =
         column === 'id'
           ? (value, row) => {
@@ -196,14 +191,15 @@
             }
           : undefined;
 
-      return {
-        name: column,
-        cellRenderer,
-      };
-    });
+      columnSchema[column] = {cellRenderer};
+    }
+
+    const schema: SchemaRegistry = {data: columnSchema};
 
     return m(DataGrid, {
-      ...columnsToSchema(columnDefs),
+      schema,
+      rootSchema: 'data',
+      initialColumns: resp.columns,
       // If filters are defined by no onFilterChanged handler, the grid operates
       // in filter read only mode.
       fillHeight: true,
diff --git a/ui/src/components/widgets/datagrid/add_column_menu.ts b/ui/src/components/widgets/datagrid/add_column_menu.ts
index fa3e2c6..bfac0f3 100644
--- a/ui/src/components/widgets/datagrid/add_column_menu.ts
+++ b/ui/src/components/widgets/datagrid/add_column_menu.ts
@@ -25,10 +25,10 @@
   isParameterizedColumnDef,
   isSchemaRef,
 } from './column_schema';
-import {DataGridDataSource} from './common';
+import {DataSource} from './data_source';
 
 interface AddColumnMenuContext {
-  readonly dataSource: DataGridDataSource;
+  readonly dataSource: DataSource;
   readonly parameterKeyColumns: Set<string>;
 }
 
@@ -100,7 +100,7 @@
       // Parameterized column - show available keys from datasource
       const title = typeof entry.title === 'string' ? entry.title : columnName;
       const availableKeys =
-        context.dataSource.rows?.parameterKeys?.get(fullPath);
+        context.dataSource.result?.parameterKeys?.get(fullPath);
       menuItems.push(
         m(
           MenuItem,
diff --git a/ui/src/components/widgets/datagrid/cell_filter_menu.ts b/ui/src/components/widgets/datagrid/cell_filter_menu.ts
index de50548..d94d9dc 100644
--- a/ui/src/components/widgets/datagrid/cell_filter_menu.ts
+++ b/ui/src/components/widgets/datagrid/cell_filter_menu.ts
@@ -16,8 +16,8 @@
 import {SqlValue} from '../../../trace_processor/query_result';
 import {MenuItem} from '../../../widgets/menu';
 import {OnFilterAdd} from './column_filter_menu';
-import {isNumeric} from './common';
 import {Icons} from '../../../base/semantic_icons';
+import {isNumeric} from '../../../base/utils';
 
 export function renderCellFilterMenuItem({
   columnPath,
diff --git a/ui/src/components/widgets/datagrid/column_filter_menu.ts b/ui/src/components/widgets/datagrid/column_filter_menu.ts
index 4f0936e..e428baf 100644
--- a/ui/src/components/widgets/datagrid/column_filter_menu.ts
+++ b/ui/src/components/widgets/datagrid/column_filter_menu.ts
@@ -21,9 +21,9 @@
 import {Icon} from '../../../widgets/icon';
 import {MenuDivider, MenuItem} from '../../../widgets/menu';
 import {TextInput} from '../../../widgets/text_input';
-import {DataGridFilter} from './common';
+import {Filter} from './model';
 
-export type OnFilterAdd = (filter: DataGridFilter) => void;
+export type OnFilterAdd = (filter: Filter) => void;
 
 // Helper to convert search text to case-insensitive glob pattern
 export function toCaseInsensitiveGlob(text: string): string {
diff --git a/ui/src/components/widgets/datagrid/column_schema.ts b/ui/src/components/widgets/datagrid/column_schema.ts
index bf1925c..4b535ae 100644
--- a/ui/src/components/widgets/datagrid/column_schema.ts
+++ b/ui/src/components/widgets/datagrid/column_schema.ts
@@ -14,8 +14,10 @@
 
 import m from 'mithril';
 import {maybeUndefined} from '../../../base/utils';
-import {SqlValue} from '../../../trace_processor/query_result';
-import {CellFormatter, CellRenderer, RowDef} from './common';
+import {Row, SqlValue} from '../../../trace_processor/query_result';
+
+export type CellRenderer = (value: SqlValue, row: Row) => m.Children;
+export type CellFormatter = (value: SqlValue, row: Row) => string;
 
 /**
  * A registry of named schemas that can reference each other.
@@ -84,7 +86,7 @@
   // Optional function for custom cell context menu.
   readonly cellContextMenuRenderer?: (
     value: SqlValue,
-    row: RowDef,
+    row: Row,
     builtins: CellContextMenuBuiltins,
   ) => m.Children;
 }
@@ -124,7 +126,7 @@
   readonly contextMenuRenderer?: (builtins: ContextMenuBuiltins) => m.Children;
   readonly cellContextMenuRenderer?: (
     value: SqlValue,
-    row: RowDef,
+    row: Row,
     builtins: CellContextMenuBuiltins,
   ) => m.Children;
 }
@@ -480,7 +482,7 @@
 ):
   | ((
       value: SqlValue,
-      row: RowDef,
+      row: Row,
       builtins: CellContextMenuBuiltins,
     ) => m.Children)
   | undefined {
diff --git a/ui/src/components/widgets/datagrid/common.ts b/ui/src/components/widgets/datagrid/common.ts
deleted file mode 100644
index f393f83..0000000
--- a/ui/src/components/widgets/datagrid/common.ts
+++ /dev/null
@@ -1,229 +0,0 @@
-// Copyright (C) 2025 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 m from 'mithril';
-import {SqlValue} from '../../../trace_processor/query_result';
-
-export type AggregationFunction =
-  | 'SUM'
-  | 'AVG'
-  | 'COUNT'
-  | 'MIN'
-  | 'MAX'
-  | 'ANY';
-
-/**
- * Represents a column that can be added to the grid via the "Add Column" menu.
- * Used to build hierarchical menus of available columns, supporting both static
- * columns and dynamically-discovered ones (e.g., arg keys, parent chains).
- */
-export interface AvailableColumn {
-  // Display name for the menu item
-  readonly label: string;
-
-  // The column name to add when selected (e.g., "parent.ts", "arg[foo]")
-  readonly columnName: string;
-
-  // If defined, this item has a submenu with lazy-loaded children.
-  // The function is called when the user expands the submenu.
-  readonly getChildren?: () => Promise<AvailableColumn[]>;
-}
-
-export type CellRenderer = (value: SqlValue, row: RowDef) => m.Children;
-export type CellFormatter = (value: SqlValue, row: RowDef) => string;
-
-export interface ColumnDefinition {
-  // Name/id of the column - this should match the key in the data.
-  readonly name: string;
-
-  // Human readable title to display instead of the name.
-  readonly title?: m.Children;
-
-  // Custom renderer for this column's cells
-  readonly cellRenderer?: CellRenderer;
-
-  // Optional value formatter for this column. This is used when exporting
-  // data to format the value as a string.
-  readonly cellFormatter?: CellFormatter;
-
-  // Optional function that receives default menu item groups and returns
-  // the complete menu structure. This allows full control over menu organization.
-  // Default groups provided:
-  // - sorting: Sort ascending/descending/clear items
-  // - filters: Filter options (null filters, equals, contains, etc.)
-  // - fitToContent: Fit column to content width
-  // - columnManagement: Hide column, manage columns visibility
-  readonly contextMenuRenderer?: (builtins: {
-    readonly sorting?: m.Children;
-    readonly filters?: m.Children;
-    readonly fitToContent?: m.Children;
-    readonly columnManagement?: m.Children;
-  }) => m.Children;
-
-  // Optional function that receives the default filter menu item and returns
-  // the complete cell context menu structure. This allows full control over
-  // the cell menu organization.
-  // Default item provided:
-  // - addFilter: "Add filter..." menu item with context-sensitive filter options
-  readonly cellContextMenuRenderer?: (
-    value: SqlValue,
-    row: RowDef,
-    builtins: {
-      addFilter?: m.Children;
-    },
-  ) => m.Children;
-
-  // Enable distinct values filtering for this column. When enabled, adds a
-  // "Filter by values..." menu item that shows all distinct values. Only
-  // enable for columns with low cardinality (e.g., strings, enums).
-  readonly distinctValues?: boolean;
-
-  // Control which types of filters are available for this column.
-  // - 'numeric': Shows comparison filters (=, !=, <, <=, >, >=) and null filters
-  // - 'string': Shows text filters (contains, glob) and equals/null filters
-  // - undefined: Shows all applicable filters based on other settings
-  readonly filterType?: 'numeric' | 'string';
-}
-
-export interface FilterValue {
-  readonly column: string;
-  readonly op: '=' | '!=' | '<' | '<=' | '>' | '>=' | 'glob' | 'not glob';
-  readonly value: SqlValue;
-}
-
-export interface FilterIn {
-  readonly column: string;
-  readonly op: 'in' | 'not in';
-  readonly value: ReadonlyArray<SqlValue>;
-}
-
-export interface FilterNull {
-  readonly column: string;
-  readonly op: 'is null' | 'is not null';
-}
-
-export type DataGridFilter = FilterValue | FilterNull | FilterIn;
-
-export interface SortByColumn {
-  readonly column: string;
-  readonly direction: 'ASC' | 'DESC';
-}
-
-export interface Unsorted {
-  readonly direction: 'UNSORTED';
-}
-
-export type Sorting = SortByColumn | Unsorted;
-
-export interface DataSourceResult {
-  readonly totalRows: number;
-  readonly rowOffset: number;
-  readonly rows: ReadonlyArray<RowDef>;
-  readonly isLoading?: boolean;
-  readonly distinctValues?: ReadonlyMap<string, readonly SqlValue[]>;
-  // Available parameter keys for parameterized columns (e.g., for 'args' -> ['foo', 'bar'])
-  readonly parameterKeys?: ReadonlyMap<string, readonly string[]>;
-  // Computed aggregate totals for each aggregate column (grand total across all filtered rows)
-  readonly aggregateTotals?: ReadonlyMap<string, SqlValue>;
-}
-
-export type RowDef = {[key: string]: SqlValue};
-
-export interface Pagination {
-  readonly offset: number;
-  readonly limit: number;
-}
-
-/**
- * A pivot value that aggregates a specific column.
- */
-interface PivotValueWithCol {
-  readonly col: string;
-  readonly func: 'SUM' | 'AVG' | 'MIN' | 'MAX' | 'ANY';
-}
-
-/**
- * A pivot value that counts rows (doesn't need a specific column).
- */
-interface PivotValueCount {
-  readonly func: 'COUNT';
-}
-
-export type PivotValue = PivotValueWithCol | PivotValueCount;
-
-/**
- * Model for pivot/grouping state of the data grid.
- */
-export interface PivotModel {
-  // Columns to group by, in order
-  readonly groupBy: ReadonlyArray<string>;
-
-  // Aggregated values to compute - keys are alias names, values define the aggregation
-  readonly values: {
-    readonly [key: string]: PivotValue;
-  };
-
-  // When set, shows raw rows filtered by these groupBy column values.
-  // This allows drilling down into a specific pivot group to see the
-  // underlying data. The keys are the groupBy column names.
-  readonly drillDown?: RowDef;
-}
-
-/**
- * A column in the DataGridModel, with optional aggregation.
- */
-export interface DataGridColumn {
-  readonly column: string;
-  // Optional aggregation function to compute for this column.
-  // Results are returned in DataSourceResult.aggregateTotals.
-  readonly aggregation?: AggregationFunction;
-}
-
-// Helper to normalize column input (string or DataGridColumn) to DataGridColumn
-export function normalizeColumn(col: string | DataGridColumn): DataGridColumn {
-  return typeof col === 'string' ? {column: col} : col;
-}
-
-// Helper to get column name from string or DataGridColumn
-export function getColumnName(col: string | DataGridColumn): string {
-  return typeof col === 'string' ? col : col.column;
-}
-
-export interface DataGridModel {
-  readonly columns?: ReadonlyArray<DataGridColumn>;
-  readonly sorting?: Sorting;
-  readonly filters?: ReadonlyArray<DataGridFilter>;
-  readonly pagination?: Pagination;
-  readonly pivot?: PivotModel;
-  readonly distinctValuesColumns?: ReadonlySet<string>;
-  // Request parameter keys for these parameterized column prefixes (e.g., 'args', 'skills')
-  readonly parameterKeyColumns?: ReadonlySet<string>;
-}
-
-// Check if the value is numeric (number or bigint)
-export function isNumeric(value: SqlValue): value is number | bigint {
-  return typeof value === 'number' || typeof value === 'bigint';
-}
-
-export interface DataGridDataSource {
-  readonly rows?: DataSourceResult;
-  readonly isLoading?: boolean;
-  notifyUpdate(model: DataGridModel): void;
-
-  /**
-   * Export all data with current filters/sorting applied.
-   * Returns a promise that resolves to all filtered and sorted rows.
-   */
-  exportData(): Promise<readonly RowDef[]>;
-}
diff --git a/ui/src/components/widgets/datagrid/data_source.ts b/ui/src/components/widgets/datagrid/data_source.ts
new file mode 100644
index 0000000..1f6899d
--- /dev/null
+++ b/ui/src/components/widgets/datagrid/data_source.ts
@@ -0,0 +1,54 @@
+// Copyright (C) 2025 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 {Row, SqlValue} from '../../../trace_processor/query_result';
+import {DataGridColumn, Filter, Pagination, PivotModel, SortBy} from './model';
+
+export interface DataSource {
+  readonly result?: DataSourceResult;
+
+  // Whether the data source is currently loading data/updating.
+  readonly isLoading?: boolean;
+
+  // Called when the data grid parameters change (sorting, filtering,
+  // pagination, etc), which might trigger a data reload.
+  notify(model: DataSourceModel): void;
+
+  // Export all data with current filters/sorting applied. Returns a promise
+  // that resolves to all filtered and sorted rows.
+  exportData(): Promise<readonly Row[]>;
+}
+
+export interface DataSourceModel {
+  readonly columns?: readonly DataGridColumn[];
+  readonly sorting?: SortBy;
+  readonly filters?: readonly Filter[];
+  readonly pagination?: Pagination;
+  readonly pivot?: PivotModel;
+  readonly distinctValuesColumns?: ReadonlySet<string>;
+  // Request parameter keys for these parameterized column prefixes (e.g., 'args', 'skills')
+  readonly parameterKeyColumns?: ReadonlySet<string>;
+}
+
+export interface DataSourceResult {
+  readonly totalRows: number;
+  readonly rowOffset: number;
+  readonly rows: readonly Row[];
+  readonly isLoading?: boolean;
+  readonly distinctValues?: ReadonlyMap<string, readonly SqlValue[]>;
+  // Available parameter keys for parameterized columns (e.g., for 'args' -> ['foo', 'bar'])
+  readonly parameterKeys?: ReadonlyMap<string, readonly string[]>;
+  // Computed aggregate totals for each aggregate column (grand total across all filtered rows)
+  readonly aggregateTotals?: ReadonlyMap<string, SqlValue>;
+}
diff --git a/ui/src/components/widgets/datagrid/datagrid.ts b/ui/src/components/widgets/datagrid/datagrid.ts
index f3e2df5..59b057a 100644
--- a/ui/src/components/widgets/datagrid/datagrid.ts
+++ b/ui/src/components/widgets/datagrid/datagrid.ts
@@ -16,8 +16,8 @@
 import {classNames} from '../../../base/classnames';
 import {download} from '../../../base/download_utils';
 import {Icons} from '../../../base/semantic_icons';
-import {exists} from '../../../base/utils';
-import {SqlValue} from '../../../trace_processor/query_result';
+import {exists, isNumeric} from '../../../base/utils';
+import {Row, SqlValue} from '../../../trace_processor/query_result';
 import {Anchor} from '../../../widgets/anchor';
 import {Button, ButtonVariant} from '../../../widgets/button';
 import {EmptyState} from '../../../widgets/empty_state';
@@ -35,7 +35,6 @@
 import {renderCellFilterMenuItem} from './cell_filter_menu';
 import {renderFilterMenuItems} from './column_filter_menu';
 import {
-  ColumnSchema,
   SchemaRegistry,
   getColumnCellContextMenuRenderer,
   getColumnCellFormatter,
@@ -52,16 +51,12 @@
 } from './column_schema';
 import {
   AggregationFunction,
-  ColumnDefinition,
   DataGridColumn,
-  DataGridDataSource,
-  DataGridFilter,
-  normalizeColumn,
+  Filter,
   PivotModel,
   PivotValue,
-  RowDef,
-  Sorting,
-} from './common';
+  SortBy,
+} from './model';
 import {DataGridToolbar} from './datagrid_toolbar';
 import {
   defaultValueFormatter,
@@ -80,6 +75,7 @@
   buildAddColumnMenuFromSchema,
   ParameterizedColumnSubmenu,
 } from './add_column_menu';
+import {DataSource} from './data_source';
 
 export interface AggregationCellAttrs extends m.Attributes {
   readonly symbol?: string;
@@ -118,9 +114,9 @@
  * (uncontrolled mode).
  */
 
-type OnFilterAdd = (filter: DataGridFilter) => void;
+type OnFilterAdd = (filter: Filter) => void;
 export type OnFilterRemove = (index: number) => void;
-type OnSortingChanged = (sorting: Sorting) => void;
+type OnSortingChanged = (sorting: SortBy) => void;
 
 function noOp() {}
 
@@ -173,7 +169,7 @@
    * The data source is responsible for applying the filters, sorting, and
    * paging and providing the rows that are displayed in the grid.
    */
-  readonly data: DataGridDataSource | ReadonlyArray<RowDef>;
+  readonly data: DataSource | ReadonlyArray<Row>;
 
   /**
    * Current sort configuration - can operate in controlled or uncontrolled
@@ -186,13 +182,13 @@
    * Specifies which column to sort by and the direction (asc/DESC/unsorted). If
    * not provided, defaults to internal state with direction 'unsorted'.
    */
-  readonly sorting?: Sorting;
+  readonly sorting?: SortBy;
 
   /**
    * Initial sorting to apply to the grid on first load.
    * This is ignored in controlled mode (i.e. when `sorting` is provided).
    */
-  readonly initialSorting?: Sorting;
+  readonly initialSorting?: SortBy;
 
   /**
    * Callback triggered when the sort configuration changes.
@@ -214,13 +210,13 @@
    * Each filter contains a column name, operator, and comparison value. If not
    * provided, defaults to an empty array (no filters initially applied).
    */
-  readonly filters?: ReadonlyArray<DataGridFilter>;
+  readonly filters?: ReadonlyArray<Filter>;
 
   /**
    * Initial filters to apply to the grid on first load.
    * This is ignored in controlled mode (i.e. when `filters` is provided).
    */
-  readonly initialFilters?: ReadonlyArray<DataGridFilter>;
+  readonly initialFilters?: ReadonlyArray<Filter>;
 
   /**
    * These callbacks are triggered when filters are added or removed by the
@@ -344,48 +340,10 @@
   getRowCount(): number;
 }
 
-/**
- * Helper function to convert old-style ColumnDefinition[] to the new schema format.
- * This provides backwards compatibility during migration.
- *
- * The grid will operate in uncontrolled mode for columns, with initialColumns
- * set to show all columns in the order they are defined. Users can add/remove/reorder
- * columns via the column header menu.
- *
- * @param columns Array of column definitions in the old format
- * @returns An object with schema, rootSchema, and initialColumns for use with DataGrid
- */
-export function columnsToSchema(columns: ReadonlyArray<ColumnDefinition>): {
-  schema: SchemaRegistry;
-  rootSchema: string;
-  initialColumns: ReadonlyArray<string>;
-} {
-  const schema: ColumnSchema = {};
-
-  // Build schema in the order columns are provided
-  for (const col of columns) {
-    schema[col.name] = {
-      title: typeof col.title === 'string' ? col.title : undefined,
-      filterType: col.filterType,
-      cellRenderer: col.cellRenderer,
-      cellFormatter: col.cellFormatter,
-      distinctValues: col.distinctValues,
-      contextMenuRenderer: col.contextMenuRenderer,
-      cellContextMenuRenderer: col.cellContextMenuRenderer,
-    };
-  }
-
-  return {
-    schema: {data: schema},
-    rootSchema: 'data',
-    initialColumns: columns.map((col) => col.name),
-  };
-}
-
 export class DataGrid implements m.ClassComponent<DataGridAttrs> {
   // Internal state
-  private sorting: Sorting = {direction: 'UNSORTED'};
-  private filters: ReadonlyArray<DataGridFilter> = [];
+  private sorting: SortBy = {direction: 'UNSORTED'};
+  private filters: ReadonlyArray<Filter> = [];
   private pivot: PivotModel | undefined = undefined;
   private internalColumns: ReadonlyArray<DataGridColumn> = [];
   // Track pagination state from virtual scrolling
@@ -410,10 +368,10 @@
       );
     },
     getRowCount: () => {
-      return this.currentDataSource?.rows?.totalRows ?? 0;
+      return this.currentDataSource?.result?.totalRows ?? 0;
     },
   };
-  private currentDataSource?: DataGridDataSource;
+  private currentDataSource?: DataSource;
   private currentSchema?: SchemaRegistry;
   private currentRootSchema?: string;
   private currentVisibleColumns?: ReadonlyArray<string>;
@@ -504,18 +462,18 @@
       });
 
     // Initialize the datasource if required
-    let dataSource: DataGridDataSource;
+    let dataSource: DataSource;
     if (Array.isArray(data)) {
       // If raw data supplied - just create a new in memory data source every
       // render cycle.
       dataSource = new InMemoryDataSource(data);
     } else {
-      dataSource = data as DataGridDataSource;
+      dataSource = data as DataSource;
     }
 
     // Update datasource with current state (sorting, filtering, pagination, pivot)
     // This is called every view cycle to catch changes
-    dataSource.notifyUpdate({
+    dataSource.notify({
       columns: [...columns],
       sorting,
       filters,
@@ -676,7 +634,8 @@
 
       // Filters group
       if (filterControls) {
-        const distinctState = dataSource.rows?.distinctValues?.get(columnPath);
+        const distinctState =
+          dataSource.result?.distinctValues?.get(columnPath);
 
         const filterSubmenuItems = renderFilterMenuItems({
           columnPath,
@@ -780,7 +739,7 @@
           );
 
           // Get available keys from the datasource
-          const availableKeys = dataSource.rows?.parameterKeys?.get(basePath);
+          const availableKeys = dataSource.result?.parameterKeys?.get(basePath);
 
           columnManagementItems.push(
             m(
@@ -903,7 +862,7 @@
 
       // Get the aggregate total value for this column (grand total across all pivot groups)
       const aggregateTotalValue: SqlValue =
-        dataSource.rows?.aggregateTotals?.get(columnPath) ?? null;
+        dataSource.result?.aggregateTotals?.get(columnPath) ?? null;
 
       // Build aggregation sub-content for pivot aggregate columns
       // Don't show grand total for ANY aggregation (it's just an arbitrary value)
@@ -977,7 +936,7 @@
       });
     }
 
-    const rows = dataSource.rows;
+    const rows = dataSource.result;
     const virtualGridRows = (() => {
       if (!rows) return [];
 
@@ -991,7 +950,7 @@
         (_, i) => i + start,
       );
 
-      // Convert RowDef data to vnode rows for VirtualGrid
+      // Convert Row data to vnode rows for VirtualGrid
       return rowIndices
         .map((index) => {
           const row = rows.rows[index - rows.rowOffset];
@@ -1079,7 +1038,7 @@
           // Add drill-down button cell when in pivot mode
           if (showDrillDownColumn) {
             // Build the drillDown values from the groupBy columns
-            const drillDownValues: RowDef = {};
+            const drillDownValues: Row = {};
             for (const colName of pivot.groupBy) {
               drillDownValues[colName] = row[colName];
             }
@@ -1249,7 +1208,7 @@
   }
 
   private async formatData(
-    dataSource: DataGridDataSource,
+    dataSource: DataSource,
     schema: SchemaRegistry | undefined,
     rootSchema: string | undefined,
     columns: ReadonlyArray<string>,
@@ -1270,7 +1229,7 @@
   }
 
   private formatAsTSV(
-    rows: readonly RowDef[],
+    rows: readonly Row[],
     schema: SchemaRegistry | undefined,
     rootSchema: string | undefined,
     columns: ReadonlyArray<string>,
@@ -1281,7 +1240,7 @@
   }
 
   private formatAsJSON(
-    rows: readonly RowDef[],
+    rows: readonly Row[],
     schema: SchemaRegistry | undefined,
     rootSchema: string | undefined,
     columns: ReadonlyArray<string>,
@@ -1291,7 +1250,7 @@
   }
 
   private formatAsMarkdown(
-    rows: readonly RowDef[],
+    rows: readonly Row[],
     schema: SchemaRegistry | undefined,
     rootSchema: string | undefined,
     columns: ReadonlyArray<string>,
@@ -1302,7 +1261,7 @@
   }
 
   private formatRows(
-    rows: readonly RowDef[],
+    rows: readonly Row[],
     schema: SchemaRegistry | undefined,
     rootSchema: string | undefined,
     columns: ReadonlyArray<string>,
@@ -1339,7 +1298,7 @@
   }
 
   private formatFilter(
-    filter: DataGridFilter,
+    filter: Filter,
     schema: SchemaRegistry,
     rootSchema: string,
   ) {
@@ -1420,7 +1379,7 @@
   }
 }
 
-// Check if the value is numeric (number or bigint)
-export function isNumeric(value: SqlValue): value is number | bigint {
-  return typeof value === 'number' || typeof value === 'bigint';
+// Helper to normalize column input (string or DataGridColumn) to DataGridColumn
+export function normalizeColumn(col: string | DataGridColumn): DataGridColumn {
+  return typeof col === 'string' ? {column: col} : col;
 }
diff --git a/ui/src/components/widgets/datagrid/datagrid_toolbar.ts b/ui/src/components/widgets/datagrid/datagrid_toolbar.ts
index 9d96405..332b954 100644
--- a/ui/src/components/widgets/datagrid/datagrid_toolbar.ts
+++ b/ui/src/components/widgets/datagrid/datagrid_toolbar.ts
@@ -18,7 +18,7 @@
 import {Button} from '../../../widgets/button';
 import {Chip} from '../../../widgets/chip';
 import {Stack, StackAuto} from '../../../widgets/stack';
-import {DataGridFilter} from './common';
+import {Filter} from './model';
 import {DataGridApi} from './datagrid';
 import {DataGridExportButton} from './export_button';
 
@@ -70,7 +70,7 @@
 }
 
 export interface DataGridToolbarAttrs {
-  readonly filters: ReadonlyArray<DataGridFilter>;
+  readonly filters: ReadonlyArray<Filter>;
   readonly schema: unknown; // SchemaRegistry - avoid circular import
   readonly rootSchema: string;
   readonly totalRows: number;
@@ -80,7 +80,7 @@
   readonly toolbarItemsRight?: m.Children;
   readonly dataGridApi: DataGridApi;
   readonly onFilterRemove: OnFilterRemove;
-  readonly formatFilter: (filter: DataGridFilter) => string;
+  readonly formatFilter: (filter: Filter) => string;
   readonly drillDown?: DrillDownIndicatorAttrs;
 }
 
diff --git a/ui/src/components/widgets/datagrid/export_utils.ts b/ui/src/components/widgets/datagrid/export_utils.ts
index cfff8c0..48a9d0d 100644
--- a/ui/src/components/widgets/datagrid/export_utils.ts
+++ b/ui/src/components/widgets/datagrid/export_utils.ts
@@ -13,7 +13,7 @@
 // limitations under the License.
 
 import {SqlValue} from '../../../trace_processor/query_result';
-import {CellFormatter} from './common';
+import {CellFormatter} from './column_schema';
 
 /**
  * Default value formatter that converts SqlValue to string.
diff --git a/ui/src/components/widgets/datagrid/in_memory_data_source.ts b/ui/src/components/widgets/datagrid/in_memory_data_source.ts
index 5ccde01..9bb4987 100644
--- a/ui/src/components/widgets/datagrid/in_memory_data_source.ts
+++ b/ui/src/components/widgets/datagrid/in_memory_data_source.ts
@@ -14,37 +14,34 @@
 
 import {stringifyJsonWithBigints} from '../../../base/json_utils';
 import {assertUnreachable} from '../../../base/logging';
-import {SqlValue} from '../../../trace_processor/query_result';
+import {Row, SqlValue} from '../../../trace_processor/query_result';
+import {DataSource, DataSourceModel, DataSourceResult} from './data_source';
 import {
   DataGridColumn,
-  DataGridDataSource,
-  DataSourceResult,
-  RowDef,
-  Sorting,
+  SortBy,
   SortByColumn,
-  DataGridModel,
-  DataGridFilter,
+  Filter,
   PivotModel,
-} from './common';
+} from './model';
 
-export class InMemoryDataSource implements DataGridDataSource {
-  private data: ReadonlyArray<RowDef> = [];
-  private filteredSortedData: ReadonlyArray<RowDef> = [];
+export class InMemoryDataSource implements DataSource {
+  private data: ReadonlyArray<Row> = [];
+  private filteredSortedData: ReadonlyArray<Row> = [];
   private distinctValuesCache = new Map<string, ReadonlyArray<SqlValue>>();
   private parameterKeysCache = new Map<string, ReadonlyArray<string>>();
   private aggregateTotalsCache = new Map<string, SqlValue>();
 
   // Cached state for diffing
-  private oldSorting: Sorting = {direction: 'UNSORTED'};
-  private oldFilters: ReadonlyArray<DataGridFilter> = [];
+  private oldSorting: SortBy = {direction: 'UNSORTED'};
+  private oldFilters: ReadonlyArray<Filter> = [];
   private oldPivot?: PivotModel;
 
-  constructor(data: ReadonlyArray<RowDef>) {
+  constructor(data: ReadonlyArray<Row>) {
     this.data = data;
     this.filteredSortedData = data;
   }
 
-  get rows(): DataSourceResult {
+  get result(): DataSourceResult {
     return {
       rowOffset: 0,
       rows: this.filteredSortedData,
@@ -55,14 +52,14 @@
     };
   }
 
-  notifyUpdate({
+  notify({
     columns,
     sorting = {direction: 'UNSORTED'},
     filters = [],
     pivot,
     distinctValuesColumns,
     parameterKeyColumns,
-  }: DataGridModel): void {
+  }: DataSourceModel): void {
     if (
       !this.isSortByEqual(sorting, this.oldSorting) ||
       !this.areFiltersEqual(filters, this.oldFilters) ||
@@ -188,12 +185,12 @@
   /**
    * Export all data with current filters/sorting applied.
    */
-  async exportData(): Promise<readonly RowDef[]> {
+  async exportData(): Promise<readonly Row[]> {
     // Return all the filtered and sorted data
     return this.filteredSortedData;
   }
 
-  private isSortByEqual(a: Sorting, b: Sorting): boolean {
+  private isSortByEqual(a: SortBy, b: SortBy): boolean {
     if (a.direction === 'UNSORTED' && b.direction === 'UNSORTED') {
       return true;
     }
@@ -212,8 +209,8 @@
 
   // Helper function to compare arrays of filter definitions for equality.
   private areFiltersEqual(
-    filtersA: ReadonlyArray<DataGridFilter>,
-    filtersB: ReadonlyArray<DataGridFilter>,
+    filtersA: ReadonlyArray<Filter>,
+    filtersB: ReadonlyArray<Filter>,
   ): boolean {
     if (filtersA.length !== filtersB.length) return false;
 
@@ -227,9 +224,9 @@
   }
 
   private applyFilters(
-    data: ReadonlyArray<RowDef>,
-    filters: ReadonlyArray<DataGridFilter>,
-  ): ReadonlyArray<RowDef> {
+    data: ReadonlyArray<Row>,
+    filters: ReadonlyArray<Filter>,
+  ): ReadonlyArray<Row> {
     if (filters.length === 0) {
       return data;
     }
@@ -290,9 +287,9 @@
   }
 
   private applySorting(
-    data: ReadonlyArray<RowDef>,
-    sortBy: Sorting,
-  ): ReadonlyArray<RowDef> {
+    data: ReadonlyArray<Row>,
+    sortBy: SortBy,
+  ): ReadonlyArray<Row> {
     if (sortBy.direction === 'UNSORTED') {
       return data;
     }
@@ -342,10 +339,10 @@
   }
 
   private applyPivoting(
-    data: ReadonlyArray<RowDef>,
+    data: ReadonlyArray<Row>,
     pivot: PivotModel,
-  ): ReadonlyArray<RowDef> {
-    const groups = new Map<string, RowDef[]>();
+  ): ReadonlyArray<Row> {
+    const groups = new Map<string, Row[]>();
 
     for (const row of data) {
       const key = pivot.groupBy.map((col) => row[col]).join('-');
@@ -355,10 +352,10 @@
       groups.get(key)!.push(row);
     }
 
-    const result: RowDef[] = [];
+    const result: Row[] = [];
 
     for (const group of groups.values()) {
-      const newRow: RowDef = {};
+      const newRow: Row = {};
       for (const col of pivot.groupBy) {
         newRow[col] = group[0][col];
       }
@@ -415,9 +412,9 @@
   }
 
   private applyDrillDown(
-    data: ReadonlyArray<RowDef>,
+    data: ReadonlyArray<Row>,
     pivot: PivotModel,
-  ): ReadonlyArray<RowDef> {
+  ): ReadonlyArray<Row> {
     const drillDown = pivot.drillDown!;
 
     return data.filter((row) => {
@@ -437,7 +434,7 @@
    * For MIN/MAX, we find the min/max across all groups.
    */
   private computeAggregateTotals(
-    pivotedData: ReadonlyArray<RowDef>,
+    pivotedData: ReadonlyArray<Row>,
     pivot: PivotModel,
   ): void {
     for (const [alias, pivotValue] of Object.entries(pivot.values)) {
@@ -494,7 +491,7 @@
    * This is used in non-pivot mode when columns have individual aggregations.
    */
   private computeColumnAggregates(
-    data: ReadonlyArray<RowDef>,
+    data: ReadonlyArray<Row>,
     columns: ReadonlyArray<DataGridColumn>,
   ): void {
     for (const col of columns) {
diff --git a/ui/src/components/widgets/datagrid/in_memory_data_source_unittest.ts b/ui/src/components/widgets/datagrid/in_memory_data_source_unittest.ts
index e7ad5d5..77f17fd 100644
--- a/ui/src/components/widgets/datagrid/in_memory_data_source_unittest.ts
+++ b/ui/src/components/widgets/datagrid/in_memory_data_source_unittest.ts
@@ -13,10 +13,11 @@
 // limitations under the License.
 
 import {InMemoryDataSource} from './in_memory_data_source';
-import {DataGridFilter, RowDef, Sorting} from './common';
+import {Row} from '../../../trace_processor/query_result';
+import {Filter, SortBy} from './model';
 
 describe('InMemoryDataSource', () => {
-  const sampleData: ReadonlyArray<RowDef> = [
+  const sampleData: ReadonlyArray<Row> = [
     {
       id: 1,
       name: 'Alice',
@@ -75,7 +76,7 @@
   });
 
   test('initialization', () => {
-    const result = dataSource.rows;
+    const result = dataSource.result;
     expect(result.rowOffset).toBe(0);
     expect(result.totalRows).toBe(sampleData.length);
     expect(result.rows).toEqual(sampleData);
@@ -83,110 +84,94 @@
 
   describe('filtering', () => {
     test('equality filter', () => {
-      const filters: DataGridFilter[] = [
-        {column: 'name', op: '=', value: 'Alice'},
-      ];
-      dataSource.notifyUpdate({filters});
-      const result = dataSource.rows;
+      const filters: Filter[] = [{column: 'name', op: '=', value: 'Alice'}];
+      dataSource.notify({filters});
+      const result = dataSource.result;
       expect(result.totalRows).toBe(1);
       expect(result.rows[0].name).toBe('Alice');
     });
 
     test('inequality filter', () => {
-      const filters: DataGridFilter[] = [
-        {column: 'active', op: '!=', value: 1},
-      ];
-      dataSource.notifyUpdate({filters});
-      const result = dataSource.rows;
+      const filters: Filter[] = [{column: 'active', op: '!=', value: 1}];
+      dataSource.notify({filters});
+      const result = dataSource.result;
       expect(result.totalRows).toBe(3); // Bob, David, Mallory
       result.rows.forEach((row) => expect(row.active).toBe(0));
     });
 
     test('less than filter', () => {
-      const filters: DataGridFilter[] = [
-        {column: 'value', op: '<', value: 150},
-      ];
-      dataSource.notifyUpdate({filters});
-      const result = dataSource.rows;
+      const filters: Filter[] = [{column: 'value', op: '<', value: 150}];
+      dataSource.notify({filters});
+      const result = dataSource.result;
       // David (null), Alice (100), Eve (100)
       expect(result.totalRows).toBe(3);
       expect(result.rows.map((r) => r.id).sort()).toEqual([1, 4, 5]);
     });
 
     test('less than or equal filter', () => {
-      const filters: DataGridFilter[] = [
-        {column: 'value', op: '<=', value: 150},
-      ];
-      dataSource.notifyUpdate({filters});
-      const result = dataSource.rows;
+      const filters: Filter[] = [{column: 'value', op: '<=', value: 150}];
+      dataSource.notify({filters});
+      const result = dataSource.result;
       // David (null), Alice (100), Charlie (150), Eve (100)
       expect(result.totalRows).toBe(4);
       expect(result.rows.map((r) => r.id).sort()).toEqual([1, 3, 4, 5]);
     });
 
     test('greater than filter', () => {
-      const filters: DataGridFilter[] = [
-        {column: 'value', op: '>', value: 200},
-      ];
-      dataSource.notifyUpdate({filters});
-      const result = dataSource.rows;
+      const filters: Filter[] = [{column: 'value', op: '>', value: 200}];
+      dataSource.notify({filters});
+      const result = dataSource.result;
       expect(result.totalRows).toBe(2); // Mallory (300n), Trent (250n)
       expect(result.rows.map((r) => r.id).sort()).toEqual([6, 7]);
     });
 
     test('greater than or equal filter with bigint', () => {
-      const filters: DataGridFilter[] = [
-        {column: 'value', op: '>=', value: 250n},
-      ];
-      dataSource.notifyUpdate({filters});
-      const result = dataSource.rows;
+      const filters: Filter[] = [{column: 'value', op: '>=', value: 250n}];
+      dataSource.notify({filters});
+      const result = dataSource.result;
       expect(result.totalRows).toBe(2); // Mallory, Trent
       expect(result.rows.map((r) => r.id).sort()).toEqual([6, 7]);
     });
 
     test('is null filter', () => {
-      const filters: DataGridFilter[] = [{column: 'value', op: 'is null'}];
-      dataSource.notifyUpdate({filters});
-      const result = dataSource.rows;
+      const filters: Filter[] = [{column: 'value', op: 'is null'}];
+      dataSource.notify({filters});
+      const result = dataSource.result;
       expect(result.totalRows).toBe(1);
       expect(result.rows[0].id).toBe(4); // David
     });
 
     test('is not null filter', () => {
-      const filters: DataGridFilter[] = [{column: 'blob', op: 'is not null'}];
-      dataSource.notifyUpdate({filters});
-      const result = dataSource.rows;
+      const filters: Filter[] = [{column: 'blob', op: 'is not null'}];
+      dataSource.notify({filters});
+      const result = dataSource.result;
       expect(result.totalRows).toBe(6); // All except Charlie
       expect(result.rows.find((r) => r.id === 3)).toBeUndefined();
     });
 
     test('glob filter', () => {
-      const filters: DataGridFilter[] = [
-        {column: 'name', op: 'glob', value: 'A*e'},
-      ];
-      dataSource.notifyUpdate({filters});
-      const result = dataSource.rows;
+      const filters: Filter[] = [{column: 'name', op: 'glob', value: 'A*e'}];
+      dataSource.notify({filters});
+      const result = dataSource.result;
       expect(result.totalRows).toBe(1);
       expect(result.rows[0].name).toBe('Alice');
     });
 
     test('glob filter with ?', () => {
-      const filters: DataGridFilter[] = [
-        {column: 'name', op: 'glob', value: 'B?b'},
-      ];
-      dataSource.notifyUpdate({filters});
-      const result = dataSource.rows;
+      const filters: Filter[] = [{column: 'name', op: 'glob', value: 'B?b'}];
+      dataSource.notify({filters});
+      const result = dataSource.result;
       expect(result.totalRows).toBe(1);
       expect(result.rows[0].name).toBe('Bob');
     });
 
     test('multiple filters', () => {
-      const filters: DataGridFilter[] = [
+      const filters: Filter[] = [
         {column: 'active', op: '=', value: 1},
         {column: 'tag', op: '=', value: 'A'},
       ];
-      dataSource.notifyUpdate({filters});
-      const result = dataSource.rows;
+      dataSource.notify({filters});
+      const result = dataSource.result;
       expect(result.totalRows).toBe(3); // Alice, Charlie, Trent
       result.rows.forEach((row) => {
         expect(row.active).toBe(1);
@@ -195,11 +180,11 @@
     });
 
     test('no matching rows filter', () => {
-      const filters: DataGridFilter[] = [
+      const filters: Filter[] = [
         {column: 'name', op: '=', value: 'NonExistent'},
       ];
-      dataSource.notifyUpdate({filters});
-      const result = dataSource.rows;
+      dataSource.notify({filters});
+      const result = dataSource.result;
       expect(result.totalRows).toBe(0);
       expect(result.rows.length).toBe(0);
     });
@@ -207,9 +192,9 @@
 
   describe('sorting', () => {
     test('sort by string ascending', () => {
-      const sorting: Sorting = {column: 'name', direction: 'ASC'};
-      dataSource.notifyUpdate({sorting, filters: []});
-      const result = dataSource.rows;
+      const sorting: SortBy = {column: 'name', direction: 'ASC'};
+      dataSource.notify({sorting, filters: []});
+      const result = dataSource.result;
       expect(result.rows.map((r) => r.name)).toEqual([
         'Alice',
         'Bob',
@@ -222,9 +207,9 @@
     });
 
     test('sort by string descending', () => {
-      const sorting: Sorting = {column: 'name', direction: 'DESC'};
-      dataSource.notifyUpdate({sorting, filters: []});
-      const result = dataSource.rows;
+      const sorting: SortBy = {column: 'name', direction: 'DESC'};
+      dataSource.notify({sorting, filters: []});
+      const result = dataSource.result;
       expect(result.rows.map((r) => r.name)).toEqual([
         'Trent',
         'Mallory',
@@ -237,53 +222,53 @@
     });
 
     test('sort by number ascending (includes nulls)', () => {
-      const sorting: Sorting = {column: 'value', direction: 'ASC'};
-      dataSource.notifyUpdate({sorting, filters: []});
-      const result = dataSource.rows;
+      const sorting: SortBy = {column: 'value', direction: 'ASC'};
+      dataSource.notify({sorting, filters: []});
+      const result = dataSource.result;
       // Nulls first, then 100, 100, 150, 200, 250n, 300n
       expect(result.rows.map((r) => r.id)).toEqual([4, 1, 5, 3, 2, 7, 6]);
     });
 
     test('sort by number descending (includes nulls and bigint)', () => {
-      const sorting: Sorting = {column: 'value', direction: 'DESC'};
-      dataSource.notifyUpdate({sorting, filters: []});
-      const result = dataSource.rows;
+      const sorting: SortBy = {column: 'value', direction: 'DESC'};
+      dataSource.notify({sorting, filters: []});
+      const result = dataSource.result;
       // 300n, 250n, 200, 150, 100, 100, Nulls last
       expect(result.rows.map((r) => r.id)).toEqual([6, 7, 2, 3, 1, 5, 4]);
     });
 
     test('sort by boolean ascending', () => {
-      const sorting: Sorting = {column: 'active', direction: 'ASC'}; // 0 then 1
-      dataSource.notifyUpdate({sorting, filters: []});
-      const result = dataSource.rows;
+      const sorting: SortBy = {column: 'active', direction: 'ASC'}; // 0 then 1
+      dataSource.notify({sorting, filters: []});
+      const result = dataSource.result;
       expect(result.rows.map((r) => r.active)).toEqual([0, 0, 0, 1, 1, 1, 1]);
     });
 
     test('sort by Uint8Array ascending (by length)', () => {
-      const sorting: Sorting = {column: 'blob', direction: 'ASC'};
-      dataSource.notifyUpdate({sorting, filters: []});
-      const result = dataSource.rows;
+      const sorting: SortBy = {column: 'blob', direction: 'ASC'};
+      dataSource.notify({sorting, filters: []});
+      const result = dataSource.result;
       // null (Charlie, id:3), len 1 (David id:4, Mallory id:6), len 2 (Alice id:1, Trent id:7), len 3 (Bob id:2), len 4 (Eve id:5)
       // Original order for same length: David before Mallory, Alice before Trent.
       expect(result.rows.map((r) => r.id)).toEqual([3, 4, 6, 1, 7, 2, 5]);
     });
 
     test('sort by Uint8Array descending (by length)', () => {
-      const sorting: Sorting = {column: 'blob', direction: 'DESC'};
-      dataSource.notifyUpdate({sorting, filters: []});
-      const result = dataSource.rows;
+      const sorting: SortBy = {column: 'blob', direction: 'DESC'};
+      dataSource.notify({sorting, filters: []});
+      const result = dataSource.result;
       // len 4, len 3, len 2, len 2, len 1, len 0, null
       expect(result.rows.map((r) => r.id)).toEqual([5, 2, 1, 7, 4, 6, 3]);
     });
 
     test('unsorted', () => {
       // Apply some sort first
-      dataSource.notifyUpdate({
+      dataSource.notify({
         sorting: {column: 'name', direction: 'ASC'},
       });
       // Then unsort
-      dataSource.notifyUpdate({});
-      const result = dataSource.rows;
+      dataSource.notify({});
+      const result = dataSource.result;
       // Should revert to original order if no filters applied
       expect(result.rows.map((r) => r.id)).toEqual(sampleData.map((r) => r.id));
     });
@@ -291,10 +276,10 @@
 
   describe('combined filtering and sorting', () => {
     test('filter then sort', () => {
-      const filters: DataGridFilter[] = [{column: 'active', op: '=', value: 1}];
-      const sorting: Sorting = {column: 'value', direction: 'DESC'};
-      dataSource.notifyUpdate({sorting, filters});
-      const result = dataSource.rows;
+      const filters: Filter[] = [{column: 'active', op: '=', value: 1}];
+      const sorting: SortBy = {column: 'value', direction: 'DESC'};
+      dataSource.notify({sorting, filters});
+      const result = dataSource.result;
       // Active: Alice (100), Charlie (150), Eve (100), Trent (250n)
       // Sorted by value desc: Trent, Charlie, Alice, Eve (Alice/Eve order by original due to stable sort on value)
       expect(result.rows.map((r) => r.id)).toEqual([7, 3, 1, 5]);
@@ -304,65 +289,65 @@
 
   describe('caching behavior', () => {
     test('data is not reprocessed if sorting and filters are identical', () => {
-      const filters: DataGridFilter[] = [{column: 'tag', op: '=', value: 'A'}];
-      const sorting: Sorting = {column: 'name', direction: 'ASC'};
+      const filters: Filter[] = [{column: 'tag', op: '=', value: 'A'}];
+      const sorting: SortBy = {column: 'name', direction: 'ASC'};
 
-      dataSource.notifyUpdate({sorting, filters});
-      const result1 = dataSource.rows.rows; // Access internal array
+      dataSource.notify({sorting, filters});
+      const result1 = dataSource.result.rows; // Access internal array
 
       // Spy on internal methods if possible, or check object identity
       // For this test, we'll check if the returned array reference is the same
-      dataSource.notifyUpdate({sorting, filters}); // Identical call
-      const result2 = dataSource.rows.rows;
+      dataSource.notify({sorting, filters}); // Identical call
+      const result2 = dataSource.result.rows;
 
       expect(result1).toBe(result2); // Should be the same array instance due to caching
     });
 
     test('data is reprocessed if sorting changes', () => {
-      const filters: DataGridFilter[] = [{column: 'tag', op: '=', value: 'A'}];
-      const sorting1: Sorting = {column: 'name', direction: 'ASC'};
-      const sorting2: Sorting = {column: 'name', direction: 'DESC'};
+      const filters: Filter[] = [{column: 'tag', op: '=', value: 'A'}];
+      const sorting1: SortBy = {column: 'name', direction: 'ASC'};
+      const sorting2: SortBy = {column: 'name', direction: 'DESC'};
 
-      dataSource.notifyUpdate({sorting: sorting1, filters});
-      const result1 = dataSource.rows.rows;
+      dataSource.notify({sorting: sorting1, filters});
+      const result1 = dataSource.result.rows;
 
-      dataSource.notifyUpdate({sorting: sorting2, filters}); // Different sort
-      const result2 = dataSource.rows.rows;
+      dataSource.notify({sorting: sorting2, filters}); // Different sort
+      const result2 = dataSource.result.rows;
 
       expect(result1).not.toBe(result2);
       expect(result1.map((r) => r.id)).not.toEqual(result2.map((r) => r.id));
     });
 
     test('data is reprocessed if filters change', () => {
-      const filters1: DataGridFilter[] = [{column: 'tag', op: '=', value: 'A'}];
-      const filters2: DataGridFilter[] = [{column: 'tag', op: '=', value: 'B'}];
-      const sorting: Sorting = {column: 'name', direction: 'ASC'};
+      const filters1: Filter[] = [{column: 'tag', op: '=', value: 'A'}];
+      const filters2: Filter[] = [{column: 'tag', op: '=', value: 'B'}];
+      const sorting: SortBy = {column: 'name', direction: 'ASC'};
 
-      dataSource.notifyUpdate({sorting, filters: filters1});
-      const result1 = dataSource.rows.rows;
+      dataSource.notify({sorting, filters: filters1});
+      const result1 = dataSource.result.rows;
 
-      dataSource.notifyUpdate({sorting, filters: filters2}); // Different filters
-      const result2 = dataSource.rows.rows;
+      dataSource.notify({sorting, filters: filters2}); // Different filters
+      const result2 = dataSource.result.rows;
 
       expect(result1).not.toBe(result2);
       expect(result1.map((r) => r.id)).not.toEqual(result2.map((r) => r.id));
     });
 
     test('data is reprocessed if filter value changes (Uint8Array)', () => {
-      const filters1: DataGridFilter[] = [
+      const filters1: Filter[] = [
         {column: 'blob', op: '=', value: new Uint8Array([1, 2])},
       ];
-      const filters2: DataGridFilter[] = [
+      const filters2: Filter[] = [
         {column: 'blob', op: '=', value: new Uint8Array([3, 4, 5])},
       ];
 
-      dataSource.notifyUpdate({filters: filters1});
-      const result1 = dataSource.rows.rows;
+      dataSource.notify({filters: filters1});
+      const result1 = dataSource.result.rows;
       expect(result1.length).toBe(1);
       expect(result1[0].id).toBe(1);
 
-      dataSource.notifyUpdate({filters: filters2});
-      const result2 = dataSource.rows.rows;
+      dataSource.notify({filters: filters2});
+      const result2 = dataSource.result.rows;
       expect(result2.length).toBe(1);
       expect(result2[0].id).toBe(2);
 
@@ -372,16 +357,16 @@
 
   test('empty data source', () => {
     const emptyDataSource = new InMemoryDataSource([]);
-    const result = emptyDataSource.rows;
+    const result = emptyDataSource.result;
     expect(result.rowOffset).toBe(0);
     expect(result.totalRows).toBe(0);
     expect(result.rows).toEqual([]);
 
-    emptyDataSource.notifyUpdate({
+    emptyDataSource.notify({
       sorting: {column: 'id', direction: 'DESC'},
       filters: [{column: 'name', op: '=', value: 'test'}],
     });
-    const resultAfterUpdate = emptyDataSource.rows;
+    const resultAfterUpdate = emptyDataSource.result;
     expect(resultAfterUpdate.totalRows).toBe(0);
     expect(resultAfterUpdate.rows).toEqual([]);
   });
diff --git a/ui/src/components/widgets/datagrid/model.ts b/ui/src/components/widgets/datagrid/model.ts
new file mode 100644
index 0000000..dd9fdb1
--- /dev/null
+++ b/ui/src/components/widgets/datagrid/model.ts
@@ -0,0 +1,103 @@
+// Copyright (C) 2025 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 {Row, SqlValue} from '../../../trace_processor/query_result';
+
+export type AggregationFunction =
+  | 'SUM'
+  | 'AVG'
+  | 'COUNT'
+  | 'MIN'
+  | 'MAX'
+  | 'ANY';
+
+export interface ValueFilter {
+  readonly column: string;
+  readonly op: '=' | '!=' | '<' | '<=' | '>' | '>=' | 'glob' | 'not glob';
+  readonly value: SqlValue;
+}
+
+export interface InFilter {
+  readonly column: string;
+  readonly op: 'in' | 'not in';
+  readonly value: ReadonlyArray<SqlValue>;
+}
+
+export interface NullFilter {
+  readonly column: string;
+  readonly op: 'is null' | 'is not null';
+}
+
+export type Filter = ValueFilter | NullFilter | InFilter;
+
+export interface SortByColumn {
+  readonly column: string;
+  readonly direction: 'ASC' | 'DESC';
+}
+
+export interface Unsorted {
+  readonly direction: 'UNSORTED';
+}
+
+export type SortBy = SortByColumn | Unsorted;
+
+export interface Pagination {
+  readonly offset: number;
+  readonly limit: number;
+}
+
+/**
+ * A pivot value that aggregates a specific column.
+ */
+interface PivotValueWithCol {
+  readonly col: string;
+  readonly func: 'SUM' | 'AVG' | 'MIN' | 'MAX' | 'ANY';
+}
+
+/**
+ * A pivot value that counts rows (doesn't need a specific column).
+ */
+interface PivotValueCount {
+  readonly func: 'COUNT';
+}
+
+export type PivotValue = PivotValueWithCol | PivotValueCount;
+
+/**
+ * Model for pivot/grouping state of the data grid.
+ */
+export interface PivotModel {
+  // Columns to group by, in order
+  readonly groupBy: ReadonlyArray<string>;
+
+  // Aggregated values to compute - keys are alias names, values define the aggregation
+  readonly values: {
+    readonly [key: string]: PivotValue;
+  };
+
+  // When set, shows raw rows filtered by these groupBy column values.
+  // This allows drilling down into a specific pivot group to see the
+  // underlying data. The keys are the groupBy column names.
+  readonly drillDown?: Row;
+}
+
+/**
+ * A column in the DataGridModel, with optional aggregation.
+ */
+export interface DataGridColumn {
+  readonly column: string;
+  // Optional aggregation function to compute for this column.
+  // Results are returned in DataSourceResult.aggregateTotals.
+  readonly aggregation?: AggregationFunction;
+}
diff --git a/ui/src/components/widgets/datagrid/pivot_menu.ts b/ui/src/components/widgets/datagrid/pivot_menu.ts
index ddd16cd..b3d062f 100644
--- a/ui/src/components/widgets/datagrid/pivot_menu.ts
+++ b/ui/src/components/widgets/datagrid/pivot_menu.ts
@@ -22,7 +22,7 @@
   isSchemaRef,
   SchemaRegistry,
 } from './column_schema';
-import {AggregationFunction, PivotModel, PivotValue} from './common';
+import {AggregationFunction, PivotModel, PivotValue} from './model';
 import {Icons} from '../../../base/semantic_icons';
 
 export type OnPivotChanged = (pivot: PivotModel | undefined) => void;
diff --git a/ui/src/components/widgets/datagrid/sql_data_source.ts b/ui/src/components/widgets/datagrid/sql_data_source.ts
index a7c9b6d..809f0a4 100644
--- a/ui/src/components/widgets/datagrid/sql_data_source.ts
+++ b/ui/src/components/widgets/datagrid/sql_data_source.ts
@@ -18,17 +18,15 @@
 import {Engine} from '../../../trace_processor/engine';
 import {NUM, Row, SqlValue} from '../../../trace_processor/query_result';
 import {runQueryForQueryTable} from '../../query_table/queries';
+import {DataSource, DataSourceModel, DataSourceResult} from './data_source';
 import {
   DataGridColumn,
-  DataGridDataSource,
-  DataSourceResult,
-  DataGridFilter,
-  Sorting,
+  Filter,
+  SortBy,
   SortByColumn,
-  DataGridModel,
   Pagination,
   PivotModel,
-} from './common';
+} from './model';
 import {
   isSQLExpressionDef,
   SQLSchemaRegistry,
@@ -106,7 +104,7 @@
  * });
  * ```
  */
-export class SQLDataSource implements DataGridDataSource {
+export class SQLDataSource implements DataSource {
   private readonly engine: Engine;
   private readonly limiter = new AsyncLimiter();
   private readonly baseQuery?: string;
@@ -147,7 +145,7 @@
   /**
    * Getter for the current rows result
    */
-  get rows(): DataSourceResult | undefined {
+  get result(): DataSourceResult | undefined {
     return this.cachedResult;
   }
 
@@ -158,7 +156,7 @@
   /**
    * Notify of parameter changes and trigger data update
    */
-  notifyUpdate({
+  notify({
     columns,
     sorting = {direction: 'UNSORTED'},
     filters = [],
@@ -166,7 +164,7 @@
     pivot,
     distinctValuesColumns,
     parameterKeyColumns,
-  }: DataGridModel): void {
+  }: DataSourceModel): void {
     this.limiter.schedule(async () => {
       this.isLoadingFlag = true;
 
@@ -328,8 +326,8 @@
    */
   private buildWorkingQuery(
     columns: ReadonlyArray<DataGridColumn> | undefined,
-    filters: ReadonlyArray<DataGridFilter>,
-    sorting: Sorting,
+    filters: ReadonlyArray<Filter>,
+    sorting: SortBy,
     pivot?: PivotModel,
   ): string {
     if (this.useSchema) {
@@ -344,8 +342,8 @@
    */
   private buildSimpleWorkingQuery(
     columns: ReadonlyArray<DataGridColumn> | undefined,
-    filters: ReadonlyArray<DataGridFilter>,
-    sorting: Sorting,
+    filters: ReadonlyArray<Filter>,
+    sorting: SortBy,
     pivot?: PivotModel,
   ): string {
     const colNames = columns?.map((c) => c.column) ?? ['*'];
@@ -432,8 +430,8 @@
    */
   private buildSchemaWorkingQuery(
     columns: ReadonlyArray<DataGridColumn> | undefined,
-    filters: ReadonlyArray<DataGridFilter>,
-    sorting: Sorting,
+    filters: ReadonlyArray<Filter>,
+    sorting: SortBy,
     pivot?: PivotModel,
   ): string {
     const resolver = new SQLSchemaResolver(
@@ -524,8 +522,8 @@
    */
   private buildSchemaPivotQuery(
     resolver: SQLSchemaResolver,
-    filters: ReadonlyArray<DataGridFilter>,
-    sorting: Sorting,
+    filters: ReadonlyArray<Filter>,
+    sorting: SortBy,
     pivot: PivotModel,
   ): string {
     const baseTable = resolver.getBaseTable();
@@ -650,7 +648,7 @@
   /**
    * Converts a filter to SQL using the resolved column expression.
    */
-  private filterToSql(filter: DataGridFilter, sqlExpr: string): string {
+  private filterToSql(filter: Filter, sqlExpr: string): string {
     switch (filter.op) {
       case '=':
       case '!=':
@@ -687,7 +685,7 @@
 
   private async getPivotAggregates(
     _columns: ReadonlyArray<DataGridColumn> | undefined,
-    filters: ReadonlyArray<DataGridFilter>,
+    filters: ReadonlyArray<Filter>,
     pivot: PivotModel,
   ): Promise<Row> {
     if (this.useSchema) {
@@ -698,7 +696,7 @@
   }
 
   private async getSimplePivotAggregates(
-    filters: ReadonlyArray<DataGridFilter>,
+    filters: ReadonlyArray<Filter>,
     pivot: PivotModel,
   ): Promise<Row> {
     let filteredBaseQuery = `SELECT * FROM (${this.baseQuery})`;
@@ -735,7 +733,7 @@
   }
 
   private async getSchemaPivotAggregates(
-    filters: ReadonlyArray<DataGridFilter>,
+    filters: ReadonlyArray<Filter>,
     pivot: PivotModel,
   ): Promise<Row> {
     const resolver = new SQLSchemaResolver(
@@ -798,7 +796,7 @@
   }
 
   private async getColumnAggregates(
-    filters: ReadonlyArray<DataGridFilter>,
+    filters: ReadonlyArray<Filter>,
     columns: ReadonlyArray<DataGridColumn>,
   ): Promise<Row> {
     if (this.useSchema) {
@@ -809,7 +807,7 @@
   }
 
   private async getSimpleColumnAggregates(
-    filters: ReadonlyArray<DataGridFilter>,
+    filters: ReadonlyArray<Filter>,
     columns: ReadonlyArray<DataGridColumn>,
   ): Promise<Row> {
     let filteredBaseQuery = `SELECT * FROM (${this.baseQuery})`;
@@ -846,7 +844,7 @@
   }
 
   private async getSchemaColumnAggregates(
-    filters: ReadonlyArray<DataGridFilter>,
+    filters: ReadonlyArray<Filter>,
     columns: ReadonlyArray<DataGridColumn>,
   ): Promise<Row> {
     const resolver = new SQLSchemaResolver(
@@ -923,7 +921,7 @@
   }
 }
 
-function simpleFilter2Sql(filter: DataGridFilter): string {
+function simpleFilter2Sql(filter: Filter): string {
   switch (filter.op) {
     case '=':
     case '!=':
diff --git a/ui/src/core_plugins/dev.perfetto.SearchUtils/search_results_tab.ts b/ui/src/core_plugins/dev.perfetto.SearchUtils/search_results_tab.ts
index d283745..591410b 100644
--- a/ui/src/core_plugins/dev.perfetto.SearchUtils/search_results_tab.ts
+++ b/ui/src/core_plugins/dev.perfetto.SearchUtils/search_results_tab.ts
@@ -17,14 +17,9 @@
 import {Trace} from '../../public/trace';
 import {Anchor} from '../../widgets/anchor';
 import {DetailsShell} from '../../widgets/details_shell';
-import {
-  DataGrid,
-  columnsToSchema,
-} from '../../components/widgets/datagrid/datagrid';
-import {
-  ColumnDefinition,
-  RowDef,
-} from '../../components/widgets/datagrid/common';
+import {DataGrid} from '../../components/widgets/datagrid/datagrid';
+import {Row} from '../../trace_processor/query_result';
+import {SchemaRegistry} from '../../components/widgets/datagrid/column_schema';
 
 interface TabAttrs {
   trace: Trace;
@@ -37,44 +32,43 @@
     const searchResults = searchManager.searchResults;
     const searchText = searchManager.searchText;
 
-    const columns: ColumnDefinition[] = [
-      {
-        name: 'id',
-        title: 'Event ID',
-        cellRenderer: (value, row) => {
-          if (typeof row.trackUri === 'string') {
-            return m(
-              Anchor,
-              {
-                onclick: () => {
-                  trace.selection.selectTrackEvent(
-                    row.trackUri as string,
-                    value as number,
-                    {
-                      switchToCurrentSelectionTab: false,
-                      clearSearch: false,
-                      scrollToSelection: true,
-                    },
-                  );
+    const schema: SchemaRegistry = {
+      data: {
+        id: {
+          title: 'Event ID',
+          cellRenderer: (value, row) => {
+            if (typeof row.trackUri === 'string') {
+              return m(
+                Anchor,
+                {
+                  onclick: () => {
+                    trace.selection.selectTrackEvent(
+                      row.trackUri as string,
+                      value as number,
+                      {
+                        switchToCurrentSelectionTab: false,
+                        clearSearch: false,
+                        scrollToSelection: true,
+                      },
+                    );
+                  },
                 },
-              },
-              String(value),
-            );
-          }
-          return String(value);
+                String(value),
+              );
+            }
+            return String(value);
+          },
+        },
+        ts: {
+          title: 'Timestamp',
+        },
+        trackUri: {
+          title: 'Track URI',
         },
       },
-      {
-        name: 'ts',
-        title: 'Timestamp',
-      },
-      {
-        name: 'trackUri',
-        title: 'Track URI',
-      },
-    ];
+    };
 
-    const rowData: RowDef[] = [];
+    const rowData: Row[] = [];
 
     if (searchResults) {
       for (let i = 0; i < searchResults.totalResults; i++) {
@@ -102,7 +96,9 @@
         fillHeight: true,
       },
       m(DataGrid, {
-        ...columnsToSchema(columns),
+        schema,
+        rootSchema: 'data',
+        initialColumns: ['id', 'ts', 'trackUri'],
         data: rowData,
         fillHeight: true,
       }),
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/explore_page.ts b/ui/src/plugins/dev.perfetto.ExplorePage/explore_page.ts
index ebbc960..c96d101 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/explore_page.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/explore_page.ts
@@ -31,11 +31,7 @@
 import {FilterNode} from './query_builder/nodes/filter_node';
 import {Trace} from '../../public/trace';
 
-import {
-  exportStateAsJson,
-  importStateFromJson,
-  deserializeState,
-} from './json_handler';
+import {exportStateAsJson, deserializeState} from './json_handler';
 import {registerCoreNodes} from './query_builder/core_nodes';
 import {nodeRegistry, PreCreateState} from './query_builder/node_registry';
 import {QueryExecutionService} from './query_builder/query_execution_service';
@@ -48,7 +44,10 @@
   getAllInputNodes,
 } from './query_builder/graph_utils';
 import {showExamplesModal} from './examples_modal';
-import {showStateOverwriteWarning} from './query_builder/widgets';
+import {
+  showStateOverwriteWarning,
+  showExportWarning,
+} from './query_builder/widgets';
 
 registerCoreNodes();
 
@@ -387,12 +386,20 @@
     }));
   }
 
-  async handleClearAllNodes(attrs: ExplorePageAttrs) {
-    // Clean up materialized tables for all nodes using CleanupManager
+  /**
+   * Cleans up all existing nodes (drops materialized tables) and clears
+   * the initialized nodes set. Used when replacing the entire graph state.
+   */
+  private async cleanupExistingNodes(rootNodes: QueryNode[]) {
     if (this.cleanupManager !== undefined) {
-      const allNodes = getAllNodes(attrs.state.rootNodes);
+      const allNodes = getAllNodes(rootNodes);
       await this.cleanupManager.cleanupNodes(allNodes);
     }
+    this.initializedNodes.clear();
+  }
+
+  async handleClearAllNodes(attrs: ExplorePageAttrs) {
+    await this.cleanupExistingNodes(attrs.state.rootNodes);
 
     attrs.onStateUpdate((currentState) => ({
       ...currentState,
@@ -770,15 +777,28 @@
     }
   }
 
-  handleExport(state: ExplorePageState, trace: Trace) {
+  async handleExport(state: ExplorePageState, trace: Trace) {
+    const confirmed = await showExportWarning();
+    if (!confirmed) return;
     exportStateAsJson(state, trace);
   }
 
-  async handleImport(attrs: ExplorePageAttrs) {
-    const {trace, sqlModulesPlugin, onStateUpdate} = attrs;
+  /**
+   * Common method to load state from a JSON string.
+   * Handles cleanup of existing nodes and state update.
+   */
+  private async loadStateFromJson(attrs: ExplorePageAttrs, json: string) {
+    const {trace, sqlModulesPlugin, state, onStateUpdate} = attrs;
     const sqlModules = sqlModulesPlugin.getSqlModules();
     if (!sqlModules) return;
 
+    await this.cleanupExistingNodes(state.rootNodes);
+
+    const newState = deserializeState(json, trace, sqlModules);
+    onStateUpdate(newState);
+  }
+
+  async handleImport(attrs: ExplorePageAttrs) {
     const input = document.createElement('input');
     input.type = 'file';
     input.accept = '.json';
@@ -791,14 +811,16 @@
         const confirmed = await showStateOverwriteWarning();
         if (!confirmed) return;
 
-        importStateFromJson(
-          file,
-          trace,
-          sqlModules,
-          (newState: ExplorePageState) => {
-            onStateUpdate(newState);
-          },
-        );
+        const reader = new FileReader();
+        reader.onload = async (e) => {
+          const json = e.target?.result as string;
+          if (!json) {
+            console.error('The selected file is empty or could not be read.');
+            return;
+          }
+          await this.loadStateFromJson(attrs, json);
+        };
+        reader.readAsText(file);
       }
     };
     input.click();
@@ -864,10 +886,6 @@
   }
 
   private async handleLoadExample(attrs: ExplorePageAttrs) {
-    const {trace, sqlModulesPlugin, onStateUpdate} = attrs;
-    const sqlModules = sqlModulesPlugin.getSqlModules();
-    if (!sqlModules) return;
-
     const selectedExample = await showExamplesModal();
     if (!selectedExample) return;
 
@@ -876,7 +894,6 @@
     if (!confirmed) return;
 
     try {
-      // Fetch the JSON file from assets using assetSrc for proper path resolution
       const response = await fetch(assetSrc(selectedExample.jsonPath));
       if (!response.ok) {
         throw new Error(
@@ -884,8 +901,7 @@
         );
       }
       const json = await response.text();
-      const newState = deserializeState(json, trace, sqlModules);
-      onStateUpdate(newState);
+      await this.loadStateFromJson(attrs, json);
     } catch (error) {
       console.error('Failed to load example:', error);
     }
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/json_handler_unittest.ts b/ui/src/plugins/dev.perfetto.ExplorePage/json_handler_unittest.ts
index d33653a..ccc03f8 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/json_handler_unittest.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/json_handler_unittest.ts
@@ -1162,6 +1162,8 @@
       leftColumn: 'name',
       rightColumn: 'name',
       sqlExpression: '',
+      leftColumns: undefined,
+      rightColumns: undefined,
     });
     tableNode1.nextNodes.push(joinNode);
     tableNode2.nextNodes.push(joinNode);
@@ -1218,6 +1220,8 @@
       leftColumn: '',
       rightColumn: '',
       sqlExpression: 't1.id = t2.parent_id',
+      leftColumns: undefined,
+      rightColumns: undefined,
     });
     tableNode1.nextNodes.push(joinNode);
     tableNode2.nextNodes.push(joinNode);
@@ -1412,6 +1416,8 @@
       leftColumn: 'name',
       rightColumn: 'name',
       sqlExpression: '',
+      leftColumns: undefined,
+      rightColumns: undefined,
     });
     tableNode1.nextNodes.push(joinNode);
     tableNode2.nextNodes.push(joinNode);
@@ -1501,7 +1507,7 @@
     expect(deserializedUnionNode.state.selectedColumns[1].checked).toBe(false);
   });
 
-  test('merge node filters duplicate columns and includes equality columns', () => {
+  test('join node requires explicit column selection', () => {
     const tableNode1 = new TableSourceNode({
       sqlTable: sqlModules.getTable('slice'),
       trace,
@@ -1514,10 +1520,8 @@
       sqlModules,
     });
 
-    // Both tables have the same columns: name, ts, dur
-    // When joining on 'name', the final columns should:
-    // - Include 'name' once (the equality column)
-    // - Exclude 'ts' and 'dur' (duplicated across both inputs)
+    // Both tables have the same columns
+    // When leftColumns/rightColumns are undefined, columns default to unchecked
     const joinNode = new JoinNode({
       leftNode: tableNode1,
       rightNode: tableNode2,
@@ -1528,21 +1532,40 @@
       leftColumn: 'name',
       rightColumn: 'name',
       sqlExpression: '',
+      leftColumns: undefined,
+      rightColumns: undefined,
     });
     tableNode1.nextNodes.push(joinNode);
     tableNode2.nextNodes.push(joinNode);
 
-    // Verify finalCols behavior
+    // With no columns checked, finalCols should be empty
+    expect(joinNode.finalCols).toEqual([]);
+
+    // Now explicitly check some columns
+    expect(joinNode.state.leftColumns).toBeDefined();
+    // Find and check the 'name' column from left
+    const nameCol = joinNode.state.leftColumns!.find(
+      (c) => c.column.name === 'name',
+    );
+    expect(nameCol).toBeDefined();
+    nameCol!.checked = true;
+
+    expect(joinNode.state.rightColumns).toBeDefined();
+    // Find and check 'ts' column from right (to show we can select any column)
+    const tsCol = joinNode.state.rightColumns!.find(
+      (c) => c.column.name === 'ts',
+    );
+    expect(tsCol).toBeDefined();
+    tsCol!.checked = true;
+
+    // Verify finalCols now includes only checked columns
     const finalCols = joinNode.finalCols;
     const colNames = finalCols.map((c: ColumnInfo) => c.name);
 
-    // Should include the equality column once
+    // Should include 'name' from left and 'ts' from right
     expect(colNames).toContain('name');
-    expect(colNames.filter((n) => n === 'name').length).toBe(1);
-
-    // Should NOT include duplicated columns (ts, dur appear in both tables)
-    expect(colNames).not.toContain('ts');
-    expect(colNames).not.toContain('dur');
+    expect(colNames).toContain('ts');
+    expect(colNames.length).toBe(2);
 
     // Verify the structured query includes select_columns
     const sq = joinNode.getStructuredQuery();
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/builder.scss b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/builder.scss
index 49f63bd..3a245ff 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/builder.scss
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/builder.scss
@@ -23,10 +23,12 @@
 @import "./nodes/sources/slices_source.scss";
 @import "./nodes/sources/table_source.scss";
 @import "./nodes/sources/timerange_source.scss";
+@import "./nodes/add_columns_node.scss";
 @import "./nodes/aggregation_node.scss";
 @import "./nodes/modify_columns_node.scss";
 @import "./table_list.scss";
 @import "./widgets.scss";
+@import "./join_widgets.scss";
 
 .pf-query-builder-layout {
   // CSS variable for side panel width, used in both SCSS and TypeScript
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/builder.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/builder.ts
index 2239bd6..b3eed2b 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/builder.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/builder.ts
@@ -82,7 +82,6 @@
   SplitPanel,
   SplitPanelDrawerVisibility,
 } from '../../../widgets/split_panel';
-import {DataGridDataSource} from '../../../components/widgets/datagrid/common';
 import {SQLDataSource} from '../../../components/widgets/datagrid/sql_data_source';
 import {QueryResponse} from '../../../components/query_table/queries';
 import {addQueryResultsTab} from '../../../components/query_table/query_result_tab';
@@ -96,6 +95,7 @@
 import {nodeRegistry} from './node_registry';
 import {getAllDownstreamNodes} from './graph_utils';
 import {Popup, PopupPosition} from '../../../widgets/popup';
+import {DataSource} from '../../../components/widgets/datagrid/data_source';
 
 // Side panel width - must match --pf-qb-side-panel-width in builder.scss
 const SIDE_PANEL_WIDTH = 60;
@@ -183,7 +183,7 @@
   private previousSelectedNode?: QueryNode;
   private isExplorerCollapsed: boolean = false;
   private response?: QueryResponse;
-  private dataSource?: DataGridDataSource;
+  private dataSource?: DataSource;
   private drawerVisibility = SplitPanelDrawerVisibility.COLLAPSED;
   private selectedView: SelectedView = SelectedView.kInfo;
   private sidebarWidth: number = 500; // Default width in pixels
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/core_nodes.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/core_nodes.ts
index a605793..9c2606a 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/core_nodes.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/core_nodes.ts
@@ -239,6 +239,8 @@
         leftColumn: '',
         rightColumn: '',
         sqlExpression: '',
+        leftColumns: undefined,
+        rightColumns: undefined,
       };
       return new JoinNode(fullState);
     },
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/data_explorer.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/data_explorer.ts
index 270790b..b80f5cf 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/data_explorer.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/data_explorer.ts
@@ -14,15 +14,12 @@
 
 import m from 'mithril';
 import {QueryResponse} from '../../../components/query_table/queries';
+import {DataGrid} from '../../../components/widgets/datagrid/datagrid';
 import {
-  DataGridDataSource,
   CellRenderer,
-  ColumnDefinition,
-} from '../../../components/widgets/datagrid/common';
-import {
-  DataGrid,
-  columnsToSchema,
-} from '../../../components/widgets/datagrid/datagrid';
+  ColumnSchema,
+  SchemaRegistry,
+} from '../../../components/widgets/datagrid/column_schema';
 import {Button, ButtonVariant} from '../../../widgets/button';
 import {Spinner} from '../../../widgets/spinner';
 import {Switch} from '../../../widgets/switch';
@@ -39,13 +36,14 @@
 import {Time, Duration} from '../../../base/time';
 import {ColumnInfo} from './column_info';
 import {DetailsShell} from '../../../widgets/details_shell';
+import {DataSource} from '../../../components/widgets/datagrid/data_source';
 
 export interface DataExplorerAttrs {
   readonly trace: Trace;
   readonly node: QueryNode;
   readonly query?: Query | Error;
   readonly response?: QueryResponse;
-  readonly dataSource?: DataGridDataSource;
+  readonly dataSource?: DataSource;
   readonly isQueryRunning: boolean;
   readonly isAnalyzing: boolean;
   readonly isFullScreen: boolean;
@@ -208,14 +206,27 @@
       ],
     );
 
-    return [
+    // Collect all items that should have separators between them
+    const itemsWithSeparators = [
       runButton,
       statusIndicator,
       queryStats,
-      queryStats !== null ? separator() : null,
       autoExecuteSwitch,
-      positionMenu,
-    ];
+    ].filter((item) => item !== null && item !== false);
+
+    // Add separators between items
+    const menuItems: m.Children = [];
+    for (let i = 0; i < itemsWithSeparators.length; i++) {
+      menuItems.push(itemsWithSeparators[i]);
+      if (i < itemsWithSeparators.length - 1) {
+        menuItems.push(separator());
+      }
+    }
+
+    // Add menu at the end without a separator
+    menuItems.push(positionMenu);
+
+    return menuItems;
   }
 
   private renderContent(attrs: DataExplorerAttrs): m.Children {
@@ -306,7 +317,9 @@
             })
           : null;
 
-      const columnDefs: ColumnDefinition[] = attrs.response.columns.map((c) => {
+      // Build schema directly
+      const columnSchema: ColumnSchema = {};
+      for (const c of attrs.response.columns) {
         let cellRenderer: CellRenderer | undefined;
 
         // Get column type information from the node
@@ -322,16 +335,16 @@
           }
         }
 
-        return {
-          name: c,
-          cellRenderer,
-        };
-      });
+        columnSchema[c] = {cellRenderer};
+      }
+      const schema: SchemaRegistry = {data: columnSchema};
 
       return [
         warning,
         m(DataGrid, {
-          ...columnsToSchema(columnDefs),
+          schema,
+          rootSchema: 'data',
+          initialColumns: attrs.response.columns,
           fillHeight: true,
           data: attrs.dataSource,
           structuredQueryCompatMode: true,
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/join_widgets.scss b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/join_widgets.scss
new file mode 100644
index 0000000..358274b
--- /dev/null
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/join_widgets.scss
@@ -0,0 +1,281 @@
+// Copyright (C) 2025 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 "./common";
+
+// Join condition selector - two-card layout
+.pf-join-condition-selector {
+  display: flex;
+  flex-direction: column;
+  gap: 16px;
+  container-type: inline-size;
+  width: 100%;
+
+  &.pf-join-condition--complete {
+    .pf-join-source-card {
+      border-color: var(--pf-color-primary);
+    }
+  }
+}
+
+.pf-join-condition-selector__cards {
+  display: grid;
+  grid-template-columns: 1fr 1fr;
+  gap: 16px;
+
+  // Stack vertically only on very narrow containers
+  @container (max-width: 500px) {
+    grid-template-columns: 1fr;
+    gap: 12px;
+  }
+}
+
+// Join source card
+.pf-join-source-card {
+  display: flex;
+  flex-direction: column;
+  min-width: 0;
+  transition: border-color 0.2s ease-in-out;
+}
+
+.pf-join-source-card__header {
+  font-size: 14px;
+  font-weight: 600;
+  color: var(--pf-color-text);
+  text-transform: uppercase;
+  letter-spacing: 0.5px;
+  padding: 0 0 12px 0;
+  border-bottom: 1px solid var(--pf-color-border);
+  margin-bottom: 12px;
+}
+
+.pf-join-source-card__content {
+  display: flex;
+  flex-direction: column;
+  gap: 12px;
+  flex: 1;
+}
+
+// Other columns list
+.pf-join-source-card__columns {
+  margin-top: 8px;
+  padding-top: 12px;
+  border-top: 1px solid var(--pf-color-border);
+}
+
+.pf-join-source-card__columns-label {
+  font-size: 12px;
+  font-weight: 600;
+  color: var(--pf-color-text-muted);
+  margin-bottom: 8px;
+  text-transform: uppercase;
+  letter-spacing: 0.5px;
+}
+
+.pf-join-source-card__columns-list {
+  display: flex;
+  flex-direction: column;
+  gap: 4px;
+  max-height: 150px;
+  overflow-y: auto;
+}
+
+.pf-join-source-card__column-item {
+  font-size: 13px;
+  color: var(--pf-color-text);
+  font-family: "Roboto Mono", monospace;
+  padding: 4px 8px;
+  background: var(--pf-color-background-secondary);
+  border-radius: 3px;
+}
+
+// Join condition preview (shown when both columns are selected)
+.pf-join-condition-preview {
+  padding: 12px 16px;
+  background: var(--pf-color-background);
+  border: 1px solid var(--pf-color-primary);
+  border-radius: 4px;
+  border-left-width: 4px;
+}
+
+.pf-join-condition-preview__code {
+  font-family: "Roboto Mono", monospace;
+  font-size: 14px;
+  color: var(--pf-color-text);
+  display: flex;
+  align-items: center;
+  gap: 4px;
+  flex-wrap: wrap;
+
+  .pf-join-column-ref {
+    color: var(--pf-color-primary);
+    font-weight: 600;
+  }
+
+  .pf-join-operator {
+    color: var(--pf-color-text-muted);
+    font-weight: 400;
+  }
+}
+
+// Compact join condition display (read-only, for node details)
+.pf-join-condition-display {
+  display: inline-flex;
+  align-items: center;
+  gap: 4px;
+  padding: 4px 8px;
+  background: var(--pf-color-background-secondary);
+  border-radius: 4px;
+  font-family: "Roboto Mono", monospace;
+  font-size: 13px;
+
+  .pf-join-column-ref {
+    color: var(--pf-color-primary);
+    font-weight: 600;
+  }
+
+  .pf-join-operator {
+    color: var(--pf-color-text-muted);
+    font-weight: 400;
+  }
+}
+
+// Additional styles for join-specific UI elements
+
+// Join modal - wider to accommodate two-column layout
+.pf-join-modal-wide {
+  min-width: min(1000px, 90vw);
+  max-width: 1200px;
+}
+
+// Join modal layout (for AddColumnsNode guided mode)
+.pf-join-modal-layout {
+  display: grid;
+  grid-template-columns: 1fr 1fr;
+  gap: 24px;
+  min-height: 400px;
+
+  @media (max-width: 1000px) {
+    grid-template-columns: 1fr;
+
+    .pf-join-modal-info {
+      display: none; // Hide table info on narrow screens
+    }
+  }
+}
+
+.pf-join-modal-controls {
+  display: flex;
+  flex-direction: column;
+  gap: 16px;
+}
+
+.pf-join-modal-info {
+  overflow-y: auto;
+  display: flex;
+  flex-direction: column;
+}
+
+// Styles for the join condition in node details
+.pf-exp-join-condition {
+  display: flex;
+  align-items: center;
+  gap: 8px;
+  flex-wrap: wrap;
+  padding: 8px 0;
+}
+
+.pf-exp-join-equals {
+  color: var(--pf-color-text-muted);
+  font-weight: 600;
+  font-family: "Roboto Mono", monospace;
+}
+
+// Filter during clip row
+.pf-filter-during-clip-row {
+  padding: 12px 16px;
+  background: var(--pf-color-background-secondary);
+  border: 1px solid var(--pf-color-border);
+  border-radius: 4px;
+}
+
+// Join column selector - for selecting columns with checkboxes and aliasing
+.pf-join-column-selector {
+  display: flex;
+  gap: 24px;
+  flex-direction: column;
+}
+
+.pf-join-column-section {
+  display: flex;
+  flex-direction: column;
+  gap: 12px;
+}
+
+.pf-join-column-section__header {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding-bottom: 8px;
+  border-bottom: 1px solid var(--pf-color-border);
+
+  h4 {
+    font-size: 14px;
+    font-weight: 600;
+    color: var(--pf-color-text);
+    margin: 0;
+    text-transform: uppercase;
+    letter-spacing: 0.5px;
+  }
+}
+
+.pf-join-column-list {
+  display: flex;
+  flex-direction: column;
+  gap: 8px;
+  max-height: 400px;
+  overflow-y: auto;
+}
+
+.pf-join-column-row {
+  display: flex;
+  align-items: center;
+  gap: 12px;
+  padding: 8px;
+  border-radius: 4px;
+  background: var(--pf-color-background);
+  border: 1px solid var(--pf-color-border);
+
+  &:hover {
+    background: var(--pf-color-background-secondary);
+  }
+
+  .pf-checkbox {
+    flex: 1;
+  }
+
+  .pf-text-input {
+    width: 150px;
+    flex-shrink: 0;
+  }
+}
+
+// Spacing for form components in configuration modal
+.pf-join-modal-info {
+  .pf-form {
+    display: flex;
+    flex-direction: column;
+    gap: 16px;
+  }
+}
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/join_widgets.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/join_widgets.ts
new file mode 100644
index 0000000..71aeb12
--- /dev/null
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/join_widgets.ts
@@ -0,0 +1,404 @@
+// Copyright (C) 2025 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 m from 'mithril';
+import {ColumnInfo} from './column_info';
+import {
+  OutlinedField,
+  DataExplorerEmptyState,
+  SelectDeselectAllButtons,
+} from './widgets';
+import {classNames} from '../../../base/classnames';
+import {Card} from '../../../widgets/card';
+import {Checkbox} from '../../../widgets/checkbox';
+import {TextInput} from '../../../widgets/text_input';
+
+/**
+ * Widget for displaying a join source as a card
+ * Shows join column selector and checkboxes for selecting other columns
+ */
+export interface JoinSourceCardAttrs {
+  label: string; // e.g., "Left", "Right"
+  columns: ColumnInfo[];
+  otherSideColumns: ColumnInfo[]; // Columns from the other side to check for duplicates
+  selectedColumn?: string;
+  joinColumnDisabled?: boolean; // Whether the join column selector should be disabled
+  onColumnChange: (columnName: string) => void;
+  onColumnToggle: (index: number, checked: boolean) => void;
+  onColumnAlias: (index: number, alias: string) => void;
+}
+
+export class JoinSourceCard implements m.ClassComponent<JoinSourceCardAttrs> {
+  view({attrs}: m.Vnode<JoinSourceCardAttrs>) {
+    const {
+      label,
+      columns,
+      otherSideColumns,
+      selectedColumn,
+      joinColumnDisabled,
+      onColumnChange,
+      onColumnToggle,
+      onColumnAlias,
+    } = attrs;
+
+    // Show empty state if no columns are available (no node connected)
+    if (columns.length === 0) {
+      return m(
+        Card,
+        {className: 'pf-join-source-card'},
+        m('.pf-join-source-card__header', label),
+        m(
+          '.pf-join-source-card__content',
+          m(DataExplorerEmptyState, {
+            icon: 'cable',
+            title: `Connect a node to the ${label} input`,
+          }),
+        ),
+      );
+    }
+
+    return m(
+      Card,
+      {className: 'pf-join-source-card'},
+      m('.pf-join-source-card__header', label),
+      m(
+        '.pf-join-source-card__content',
+        // Join column selector
+        m(
+          OutlinedField,
+          {
+            label: 'Join Column',
+            value: selectedColumn || '',
+            disabled: joinColumnDisabled,
+            onchange: (e: Event) => {
+              const target = e.target as HTMLSelectElement;
+              onColumnChange(target.value);
+            },
+          },
+          [
+            m(
+              'option',
+              {
+                value: '',
+                selected: !selectedColumn,
+                disabled: true,
+              },
+              'Select column',
+            ),
+            ...columns.map((col) =>
+              m(
+                'option',
+                {
+                  value: col.column.name,
+                  selected: col.column.name === selectedColumn,
+                },
+                col.column.name,
+              ),
+            ),
+          ],
+        ),
+        // Column selection with checkboxes and aliasing
+        columns.length > 0 &&
+          m(
+            '.pf-join-source-card__columns',
+            m(
+              '.pf-join-source-card__columns-label',
+              'Select columns to include:',
+            ),
+            m(
+              '.pf-join-source-card__columns-list',
+              columns.map((col, index) => {
+                // Check if this column's final name conflicts with the other side
+                // Use alias if available, otherwise use the column name
+                const finalName = col.alias ?? col.column.name;
+                const isDuplicate = otherSideColumns.some(
+                  (otherCol) =>
+                    otherCol.checked &&
+                    (otherCol.alias ?? otherCol.column.name) === finalName,
+                );
+                const isDisabled = isDuplicate && !col.checked;
+
+                return m(
+                  '.pf-join-column-row',
+                  {
+                    className: classNames(isDisabled && 'pf-disabled'),
+                  },
+                  m(Checkbox, {
+                    checked: col.checked,
+                    disabled: isDisabled,
+                    label: col.column.name,
+                    onchange: (e) => {
+                      onColumnToggle(
+                        index,
+                        (e.target as HTMLInputElement).checked,
+                      );
+                    },
+                  }),
+                  m(TextInput, {
+                    // Always allow editing alias - that's how users resolve conflicts
+                    oninput: (e: Event) => {
+                      const inputValue = (e.target as HTMLInputElement).value;
+                      onColumnAlias(
+                        index,
+                        inputValue.trim() === '' ? '' : inputValue,
+                      );
+                    },
+                    placeholder: 'alias',
+                    value: col.alias ?? '',
+                  }),
+                );
+              }),
+            ),
+          ),
+      ),
+    );
+  }
+}
+
+/**
+ * Widget for displaying the join condition between two sources
+ * Shows two cards side-by-side for left and right sources
+ */
+export interface JoinConditionSelectorAttrs {
+  leftLabel: string; // e.g., "Left", "Primary"
+  rightLabel: string; // e.g., "Right", "Secondary"
+  leftColumns: ColumnInfo[];
+  rightColumns: ColumnInfo[];
+  leftColumn?: string;
+  rightColumn?: string;
+  onLeftColumnChange: (columnName: string) => void;
+  onRightColumnChange: (columnName: string) => void;
+  onLeftColumnToggle: (index: number, checked: boolean) => void;
+  onRightColumnToggle: (index: number, checked: boolean) => void;
+  onLeftColumnAlias: (index: number, alias: string) => void;
+  onRightColumnAlias: (index: number, alias: string) => void;
+}
+
+export class JoinConditionSelector
+  implements m.ClassComponent<JoinConditionSelectorAttrs>
+{
+  view({attrs}: m.Vnode<JoinConditionSelectorAttrs>) {
+    const {
+      leftLabel,
+      rightLabel,
+      leftColumns,
+      rightColumns,
+      leftColumn,
+      rightColumn,
+      onLeftColumnChange,
+      onRightColumnChange,
+      onLeftColumnToggle,
+      onRightColumnToggle,
+      onLeftColumnAlias,
+      onRightColumnAlias,
+    } = attrs;
+
+    const hasValidJoin = leftColumn && rightColumn;
+
+    return m(
+      '.pf-join-condition-selector',
+      {
+        className: classNames(hasValidJoin && 'pf-join-condition--complete'),
+      },
+      m(
+        '.pf-join-condition-selector__cards',
+        // Left source card
+        m(JoinSourceCard, {
+          label: leftLabel,
+          columns: leftColumns,
+          otherSideColumns: rightColumns,
+          selectedColumn: leftColumn,
+          onColumnChange: onLeftColumnChange,
+          onColumnToggle: onLeftColumnToggle,
+          onColumnAlias: onLeftColumnAlias,
+        }),
+        // Right source card
+        m(JoinSourceCard, {
+          label: rightLabel,
+          columns: rightColumns,
+          otherSideColumns: leftColumns,
+          selectedColumn: rightColumn,
+          onColumnChange: onRightColumnChange,
+          onColumnToggle: onRightColumnToggle,
+          onColumnAlias: onRightColumnAlias,
+        }),
+      ),
+    );
+  }
+}
+
+/**
+ * Compact join condition display (read-only)
+ * Used in node details view to show the current join condition
+ */
+export interface JoinConditionDisplayAttrs {
+  leftAlias: string;
+  rightAlias: string;
+  leftColumn: string;
+  rightColumn: string;
+  operator?: string;
+}
+
+export class JoinConditionDisplay
+  implements m.ClassComponent<JoinConditionDisplayAttrs>
+{
+  view({attrs}: m.Vnode<JoinConditionDisplayAttrs>) {
+    const {
+      leftAlias,
+      rightAlias,
+      leftColumn,
+      rightColumn,
+      operator = '=',
+    } = attrs;
+
+    return m('.pf-join-condition-display', [
+      m('span.pf-join-column-ref', `${leftAlias}.${leftColumn}`),
+      m('span.pf-join-operator', ` ${operator} `),
+      m('span.pf-join-column-ref', `${rightAlias}.${rightColumn}`),
+    ]);
+  }
+}
+
+/**
+ * Component for selecting which columns to include from a join
+ * Shows columns from both left and right sources with checkboxes and aliasing
+ */
+export interface JoinColumnSelectorAttrs {
+  leftAlias: string;
+  rightAlias: string;
+  leftColumns: ColumnInfo[];
+  rightColumns: ColumnInfo[];
+  onLeftColumnToggle: (index: number, checked: boolean) => void;
+  onRightColumnToggle: (index: number, checked: boolean) => void;
+  onLeftColumnAlias: (index: number, alias: string) => void;
+  onRightColumnAlias: (index: number, alias: string) => void;
+  onSelectAllLeft: () => void;
+  onDeselectAllLeft: () => void;
+  onSelectAllRight: () => void;
+  onDeselectAllRight: () => void;
+}
+
+export class JoinColumnSelector
+  implements m.ClassComponent<JoinColumnSelectorAttrs>
+{
+  private renderColumnRow(
+    col: ColumnInfo,
+    index: number,
+    onToggle: (index: number, checked: boolean) => void,
+    onAlias: (index: number, alias: string) => void,
+  ): m.Child {
+    return m(
+      '.pf-join-column-row',
+      m(Checkbox, {
+        checked: col.checked,
+        label: col.column.name,
+        onchange: (e) => {
+          onToggle(index, (e.target as HTMLInputElement).checked);
+        },
+      }),
+      m(TextInput, {
+        oninput: (e: Event) => {
+          const inputValue = (e.target as HTMLInputElement).value;
+          // Normalize empty strings to undefined (no alias)
+          onAlias(index, inputValue.trim() === '' ? '' : inputValue);
+        },
+        placeholder: 'alias',
+        value: col.alias ?? '',
+      }),
+    );
+  }
+
+  view({attrs}: m.Vnode<JoinColumnSelectorAttrs>) {
+    const {
+      leftAlias,
+      rightAlias,
+      leftColumns,
+      rightColumns,
+      onLeftColumnToggle,
+      onRightColumnToggle,
+      onLeftColumnAlias,
+      onRightColumnAlias,
+      onSelectAllLeft,
+      onDeselectAllLeft,
+      onSelectAllRight,
+      onDeselectAllRight,
+    } = attrs;
+
+    const leftSelectedCount = leftColumns.filter((c) => c.checked).length;
+    const rightSelectedCount = rightColumns.filter((c) => c.checked).length;
+
+    return m('.pf-join-column-selector', [
+      // Left columns section
+      m('.pf-join-column-section', [
+        m(
+          '.pf-join-column-section__header',
+          m(
+            'h4',
+            `${leftAlias} (${leftSelectedCount} / ${leftColumns.length} selected)`,
+          ),
+          m(SelectDeselectAllButtons, {
+            onSelectAll: onSelectAllLeft,
+            onDeselectAll: onDeselectAllLeft,
+          }),
+        ),
+        m(
+          '.pf-join-column-list',
+          leftColumns.length === 0
+            ? m(DataExplorerEmptyState, {
+                icon: 'cable',
+                title: 'Connect left source',
+              })
+            : leftColumns.map((col, i) =>
+                this.renderColumnRow(
+                  col,
+                  i,
+                  onLeftColumnToggle,
+                  onLeftColumnAlias,
+                ),
+              ),
+        ),
+      ]),
+      // Right columns section
+      m('.pf-join-column-section', [
+        m(
+          '.pf-join-column-section__header',
+          m(
+            'h4',
+            `${rightAlias} (${rightSelectedCount} / ${rightColumns.length} selected)`,
+          ),
+          m(SelectDeselectAllButtons, {
+            onSelectAll: onSelectAllRight,
+            onDeselectAll: onDeselectAllRight,
+          }),
+        ),
+        m(
+          '.pf-join-column-list',
+          rightColumns.length === 0
+            ? m(DataExplorerEmptyState, {
+                icon: 'cable',
+                title: 'Connect right source',
+              })
+            : rightColumns.map((col, i) =>
+                this.renderColumnRow(
+                  col,
+                  i,
+                  onRightColumnToggle,
+                  onRightColumnAlias,
+                ),
+              ),
+        ),
+      ]),
+    ]);
+  }
+}
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/node_explorer.scss b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/node_explorer.scss
index 3cc29ab..ef8db03 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/node_explorer.scss
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/node_explorer.scss
@@ -175,15 +175,12 @@
   position: relative;
 }
 
-.pf-exp-node-explorer__buttons {
-  display: flex;
-  flex-direction: column;
-  justify-content: space-between;
+// Top buttons container - absolutely positioned overlay
+.pf-exp-node-explorer__buttons-top-container {
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
-  bottom: 0;
   pointer-events: none;
   z-index: 10;
 
@@ -192,13 +189,28 @@
   }
 }
 
-.pf-exp-node-explorer__buttons-top,
+.pf-exp-node-explorer__buttons-top {
+  display: flex;
+  justify-content: space-between;
+  padding: 1rem 0;
+  gap: 0.5rem;
+}
+
+// Bottom buttons - sticky at bottom of scrolling container
 .pf-exp-node-explorer__buttons-bottom {
   display: flex;
   justify-content: space-between;
-  // Only vertical padding - horizontal padding comes from article
-  padding: 1rem 0;
+  padding: 1rem 0.5rem 0.5rem 0;
   gap: 0.5rem;
+  position: sticky;
+  bottom: -0.5rem;
+  margin-top: auto;
+  z-index: 10;
+  pointer-events: none;
+
+  .pf-button {
+    pointer-events: auto;
+  }
 }
 
 .pf-exp-node-explorer__buttons-top-left,
@@ -210,6 +222,14 @@
   flex-wrap: wrap;
 }
 
+.pf-exp-node-explorer__buttons-bottom-left,
+.pf-exp-node-explorer__buttons-bottom-right {
+  .pf-button {
+    pointer-events: auto;
+    background-color: var(--pf-color-background);
+  }
+}
+
 .pf-exp-node-explorer__sections {
   display: flex;
   flex-direction: column;
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/node_explorer.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/node_explorer.ts
index 7d0532b..5997138 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/node_explorer.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/node_explorer.ts
@@ -181,17 +181,12 @@
     return result;
   }
 
-  private renderCornerButtons(buttons: NodeModifyAttrs): m.Child {
-    if (
-      !buttons.topLeftButtons &&
-      !buttons.topRightButtons &&
-      !buttons.bottomLeftButtons &&
-      !buttons.bottomRightButtons
-    ) {
+  private renderTopButtons(buttons: NodeModifyAttrs): m.Child {
+    if (!buttons.topLeftButtons && !buttons.topRightButtons) {
       return null;
     }
 
-    return m('.pf-exp-node-explorer__buttons', [
+    return m('.pf-exp-node-explorer__buttons-top-container', [
       m('.pf-exp-node-explorer__buttons-top', [
         m(
           '.pf-exp-node-explorer__buttons-top-left',
@@ -202,16 +197,23 @@
           this.renderButtons(buttons.topRightButtons),
         ),
       ]),
-      m('.pf-exp-node-explorer__buttons-bottom', [
-        m(
-          '.pf-exp-node-explorer__buttons-bottom-left',
-          this.renderButtons(buttons.bottomLeftButtons),
-        ),
-        m(
-          '.pf-exp-node-explorer__buttons-bottom-right',
-          this.renderButtons(buttons.bottomRightButtons),
-        ),
-      ]),
+    ]);
+  }
+
+  private renderBottomButtons(buttons: NodeModifyAttrs): m.Child {
+    if (!buttons.bottomLeftButtons && !buttons.bottomRightButtons) {
+      return null;
+    }
+
+    return m('.pf-exp-node-explorer__buttons-bottom', [
+      m(
+        '.pf-exp-node-explorer__buttons-bottom-left',
+        this.renderButtons(buttons.bottomLeftButtons),
+      ),
+      m(
+        '.pf-exp-node-explorer__buttons-bottom-right',
+        this.renderButtons(buttons.bottomRightButtons),
+      ),
     ]);
   }
 
@@ -241,8 +243,9 @@
       const attrs = modifyResult as NodeModifyAttrs;
       return m('.pf-exp-node-explorer__modify', [
         m(InfoBox, attrs.info),
-        this.renderCornerButtons(attrs),
+        this.renderTopButtons(attrs),
         this.renderSections(attrs.sections),
+        this.renderBottomButtons(attrs),
       ]);
     }
 
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/node_propagation_unittest.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/node_propagation_unittest.ts
index 8df848c..b8996f7 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/node_propagation_unittest.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/node_propagation_unittest.ts
@@ -14,33 +14,14 @@
 
 import {ModifyColumnsNode} from './nodes/modify_columns_node';
 import {AggregationNode} from './nodes/aggregation_node';
-import {QueryNode, NodeType} from '../query_node';
-import {columnInfoFromSqlColumn} from './column_info';
-import {NodeDetailsAttrs} from './node_explorer_types';
+import {
+  createMockSourceNode,
+  connectNodes,
+  initializeNodeChain,
+  expectColumnNames,
+} from './testing/test_utils';
 
 describe('Node Propagation', () => {
-  function createMockSourceNode(): QueryNode {
-    return {
-      nodeId: 'source',
-      type: NodeType.kTable,
-      nextNodes: [],
-      finalCols: [
-        columnInfoFromSqlColumn({name: 'id', type: {kind: 'int'}}, true),
-        columnInfoFromSqlColumn({name: 'name', type: {kind: 'string'}}, true),
-        columnInfoFromSqlColumn({name: 'value', type: {kind: 'int'}}, true),
-      ],
-      state: {},
-      validate: () => true,
-      getTitle: () => 'Source',
-      nodeSpecificModify: () => null,
-      nodeDetails: (): NodeDetailsAttrs => ({content: null}),
-      nodeInfo: () => null,
-      clone: () => createMockSourceNode(),
-      getStructuredQuery: () => undefined,
-      serializeState: () => ({}),
-    } as QueryNode;
-  }
-
   describe('column rename propagation', () => {
     it('REGRESSION: should update AggregationNode when ModifyColumnsNode columns change', () => {
       // This test reproduces the original bug: when you rename a column in
@@ -55,14 +36,11 @@
       });
 
       // Connect the nodes
-      sourceNode.nextNodes.push(modifyNode);
-      modifyNode.primaryInput = sourceNode;
-      modifyNode.nextNodes.push(aggNode);
-      aggNode.primaryInput = modifyNode;
+      connectNodes(sourceNode, modifyNode);
+      connectNodes(modifyNode, aggNode);
 
       // Initialize the nodes
-      modifyNode.onPrevNodesUpdated?.();
-      aggNode.onPrevNodesUpdated?.();
+      initializeNodeChain([modifyNode, aggNode]);
 
       // Initial state: AggregationNode should have columns: id, name, value
       expect(aggNode.state.groupByColumns.map((c) => c.name)).toEqual([
@@ -95,10 +73,8 @@
       });
 
       // Connect the nodes
-      sourceNode.nextNodes.push(modifyNode);
-      modifyNode.primaryInput = sourceNode;
-      modifyNode.nextNodes.push(aggNode);
-      aggNode.primaryInput = modifyNode;
+      connectNodes(sourceNode, modifyNode);
+      connectNodes(modifyNode, aggNode);
 
       // Initialize the modify node to get columns from source
       modifyNode.onPrevNodesUpdated?.();
@@ -148,14 +124,11 @@
       });
 
       // Connect the nodes
-      sourceNode.nextNodes.push(modifyNode);
-      modifyNode.primaryInput = sourceNode;
-      modifyNode.nextNodes.push(aggNode);
-      aggNode.primaryInput = modifyNode;
+      connectNodes(sourceNode, modifyNode);
+      connectNodes(modifyNode, aggNode);
 
       // Initialize both nodes
-      modifyNode.onPrevNodesUpdated?.();
-      aggNode.onPrevNodesUpdated?.();
+      initializeNodeChain([modifyNode, aggNode]);
 
       // Check a column in the aggregation node
       aggNode.state.groupByColumns[1].checked = true; // Check 'name'
@@ -186,14 +159,11 @@
       });
 
       // Connect the nodes
-      sourceNode.nextNodes.push(modifyNode);
-      modifyNode.primaryInput = sourceNode;
-      modifyNode.nextNodes.push(aggNode);
-      aggNode.primaryInput = modifyNode;
+      connectNodes(sourceNode, modifyNode);
+      connectNodes(modifyNode, aggNode);
 
       // Initialize both nodes
-      modifyNode.onPrevNodesUpdated?.();
-      aggNode.onPrevNodesUpdated?.();
+      initializeNodeChain([modifyNode, aggNode]);
 
       // Initially should have 3 columns
       expect(aggNode.state.groupByColumns).toHaveLength(3);
@@ -225,28 +195,21 @@
       });
 
       // Connect the nodes
-      sourceNode.nextNodes.push(modifyNode);
-      modifyNode.primaryInput = sourceNode;
-      modifyNode.nextNodes.push(aggNode);
-      aggNode.primaryInput = modifyNode;
+      connectNodes(sourceNode, modifyNode);
+      connectNodes(modifyNode, aggNode);
 
       // Initialize both nodes
-      modifyNode.onPrevNodesUpdated?.();
-      aggNode.onPrevNodesUpdated?.();
+      initializeNodeChain([modifyNode, aggNode]);
 
       // Initially: id, name, value
-      expect(modifyNode.finalCols[0].name).toBe('id');
-      expect(modifyNode.finalCols[1].name).toBe('name');
-      expect(modifyNode.finalCols[2].name).toBe('value');
+      expectColumnNames(modifyNode, ['id', 'name', 'value']);
 
       // Reorder: move 'value' to the front
       const cols = modifyNode.state.selectedColumns;
       modifyNode.state.selectedColumns = [cols[2], cols[0], cols[1]];
 
       // Verify modify node's finalCols are reordered
-      expect(modifyNode.finalCols[0].name).toBe('value');
-      expect(modifyNode.finalCols[1].name).toBe('id');
-      expect(modifyNode.finalCols[2].name).toBe('name');
+      expectColumnNames(modifyNode, ['value', 'id', 'name']);
 
       // Notify downstream
       aggNode.onPrevNodesUpdated?.();
@@ -267,58 +230,28 @@
       const modify3 = new ModifyColumnsNode({selectedColumns: []});
 
       // Connect the nodes
-      sourceNode.nextNodes.push(modify1);
-      modify1.primaryInput = sourceNode;
-      modify1.nextNodes.push(modify2);
-      modify2.primaryInput = modify1;
-      modify2.nextNodes.push(modify3);
-      modify3.primaryInput = modify2;
+      connectNodes(sourceNode, modify1);
+      connectNodes(modify1, modify2);
+      connectNodes(modify2, modify3);
 
       // Initialize all nodes
-      modify1.onPrevNodesUpdated?.();
-      modify2.onPrevNodesUpdated?.();
-      modify3.onPrevNodesUpdated?.();
+      initializeNodeChain([modify1, modify2, modify3]);
 
       // Verify initial state - all have 'id', 'name', 'value'
-      expect(modify1.finalCols.map((c) => c.name)).toEqual([
-        'id',
-        'name',
-        'value',
-      ]);
-      expect(modify2.finalCols.map((c) => c.name)).toEqual([
-        'id',
-        'name',
-        'value',
-      ]);
-      expect(modify3.finalCols.map((c) => c.name)).toEqual([
-        'id',
-        'name',
-        'value',
-      ]);
+      expectColumnNames(modify1, ['id', 'name', 'value']);
+      expectColumnNames(modify2, ['id', 'name', 'value']);
+      expectColumnNames(modify3, ['id', 'name', 'value']);
 
       // Rename 'name' to 'user_name' in modify1
       modify1.state.selectedColumns[1].alias = 'user_name';
 
       // Notify all downstream nodes (simulating builder's onchange)
-      modify2.onPrevNodesUpdated?.();
-      modify3.onPrevNodesUpdated?.();
+      initializeNodeChain([modify2, modify3]);
 
       // All downstream nodes should see the renamed column
-      expect(modify1.finalCols.map((c) => c.name)).toEqual([
-        'id',
-        'user_name',
-        'value',
-      ]);
-      expect(modify2.finalCols.map((c) => c.name)).toEqual([
-        'id',
-        'user_name',
-        'value',
-      ]);
-      expect(modify3.finalCols.map((c) => c.name)).toEqual([
-        'id',
-        'user_name',
-        'value',
-      ]);
+      expectColumnNames(modify1, ['id', 'user_name', 'value']);
+      expectColumnNames(modify2, ['id', 'user_name', 'value']);
+      expectColumnNames(modify3, ['id', 'user_name', 'value']);
     });
 
     it('should propagate changes through 5-node chain with middle node edit', () => {
@@ -331,59 +264,29 @@
       const modify5 = new ModifyColumnsNode({selectedColumns: []});
 
       // Connect the nodes
-      sourceNode.nextNodes.push(modify1);
-      modify1.primaryInput = sourceNode;
-      modify1.nextNodes.push(modify2);
-      modify2.primaryInput = modify1;
-      modify2.nextNodes.push(modify3);
-      modify3.primaryInput = modify2;
-      modify3.nextNodes.push(modify4);
-      modify4.primaryInput = modify3;
-      modify4.nextNodes.push(modify5);
-      modify5.primaryInput = modify4;
+      connectNodes(sourceNode, modify1);
+      connectNodes(modify1, modify2);
+      connectNodes(modify2, modify3);
+      connectNodes(modify3, modify4);
+      connectNodes(modify4, modify5);
 
       // Initialize all nodes
-      modify1.onPrevNodesUpdated?.();
-      modify2.onPrevNodesUpdated?.();
-      modify3.onPrevNodesUpdated?.();
-      modify4.onPrevNodesUpdated?.();
-      modify5.onPrevNodesUpdated?.();
+      initializeNodeChain([modify1, modify2, modify3, modify4, modify5]);
 
       // Edit the MIDDLE node (modify3) - rename 'value' to 'amount'
       modify3.state.selectedColumns[2].alias = 'amount';
 
       // Notify all downstream nodes (simulating builder's onchange)
-      modify4.onPrevNodesUpdated?.();
-      modify5.onPrevNodesUpdated?.();
+      initializeNodeChain([modify4, modify5]);
 
       // Nodes before modify3 should not be affected
-      expect(modify1.finalCols.map((c) => c.name)).toEqual([
-        'id',
-        'name',
-        'value',
-      ]);
-      expect(modify2.finalCols.map((c) => c.name)).toEqual([
-        'id',
-        'name',
-        'value',
-      ]);
+      expectColumnNames(modify1, ['id', 'name', 'value']);
+      expectColumnNames(modify2, ['id', 'name', 'value']);
 
       // modify3 and all downstream nodes should see the change
-      expect(modify3.finalCols.map((c) => c.name)).toEqual([
-        'id',
-        'name',
-        'amount',
-      ]);
-      expect(modify4.finalCols.map((c) => c.name)).toEqual([
-        'id',
-        'name',
-        'amount',
-      ]);
-      expect(modify5.finalCols.map((c) => c.name)).toEqual([
-        'id',
-        'name',
-        'amount',
-      ]);
+      expectColumnNames(modify3, ['id', 'name', 'amount']);
+      expectColumnNames(modify4, ['id', 'name', 'amount']);
+      expectColumnNames(modify5, ['id', 'name', 'amount']);
     });
 
     it('should propagate changes through mixed node types: Modify -> Agg -> Modify', () => {
@@ -397,16 +300,12 @@
       const modify2 = new ModifyColumnsNode({selectedColumns: []});
 
       // Connect the nodes
-      sourceNode.nextNodes.push(modify1);
-      modify1.primaryInput = sourceNode;
-      modify1.nextNodes.push(aggNode);
-      aggNode.primaryInput = modify1;
-      aggNode.nextNodes.push(modify2);
-      modify2.primaryInput = aggNode;
+      connectNodes(sourceNode, modify1);
+      connectNodes(modify1, aggNode);
+      connectNodes(aggNode, modify2);
 
       // Initialize all nodes
-      modify1.onPrevNodesUpdated?.();
-      aggNode.onPrevNodesUpdated?.();
+      initializeNodeChain([modify1, aggNode]);
 
       // Check columns BEFORE renaming and BEFORE initializing modify2
       aggNode.state.groupByColumns[0].checked = true; // Check 'id'
@@ -423,8 +322,7 @@
       modify1.state.selectedColumns[1].alias = 'user_name';
 
       // Notify all downstream nodes
-      aggNode.onPrevNodesUpdated?.();
-      modify2.onPrevNodesUpdated?.();
+      initializeNodeChain([aggNode, modify2]);
 
       // Aggregation should see the renamed column in its available columns
       // Note: The old 'name' column is preserved as a "missing" column
@@ -462,48 +360,30 @@
       const modify3 = new ModifyColumnsNode({selectedColumns: []});
 
       // Connect the nodes
-      sourceNode.nextNodes.push(modify1);
-      modify1.primaryInput = sourceNode;
-      modify1.nextNodes.push(modify2);
-      modify2.primaryInput = modify1;
-      modify2.nextNodes.push(modify3);
-      modify3.primaryInput = modify2;
+      connectNodes(sourceNode, modify1);
+      connectNodes(modify1, modify2);
+      connectNodes(modify2, modify3);
 
       // Initialize all nodes
-      modify1.onPrevNodesUpdated?.();
-      modify2.onPrevNodesUpdated?.();
-      modify3.onPrevNodesUpdated?.();
+      initializeNodeChain([modify1, modify2, modify3]);
 
       // First edit: modify1 renames 'name' to 'user_name'
       modify1.state.selectedColumns[1].alias = 'user_name';
-      modify2.onPrevNodesUpdated?.();
-      modify3.onPrevNodesUpdated?.();
+      initializeNodeChain([modify2, modify3]);
 
-      expect(modify3.finalCols.map((c) => c.name)).toEqual([
-        'id',
-        'user_name',
-        'value',
-      ]);
+      expectColumnNames(modify3, ['id', 'user_name', 'value']);
 
       // Second edit: modify2 renames 'user_name' to 'username'
       modify2.state.selectedColumns[1].alias = 'username';
       modify3.onPrevNodesUpdated?.();
 
-      expect(modify3.finalCols.map((c) => c.name)).toEqual([
-        'id',
-        'username',
-        'value',
-      ]);
+      expectColumnNames(modify3, ['id', 'username', 'value']);
 
       // Third edit: modify2 also renames 'id' to 'identifier'
       modify2.state.selectedColumns[0].alias = 'identifier';
       modify3.onPrevNodesUpdated?.();
 
-      expect(modify3.finalCols.map((c) => c.name)).toEqual([
-        'identifier',
-        'username',
-        'value',
-      ]);
+      expectColumnNames(modify3, ['identifier', 'username', 'value']);
     });
 
     it('should propagate column removal through entire chain', () => {
@@ -515,34 +395,26 @@
       const modify4 = new ModifyColumnsNode({selectedColumns: []});
 
       // Connect the nodes
-      sourceNode.nextNodes.push(modify1);
-      modify1.primaryInput = sourceNode;
-      modify1.nextNodes.push(modify2);
-      modify2.primaryInput = modify1;
-      modify2.nextNodes.push(modify3);
-      modify3.primaryInput = modify2;
-      modify3.nextNodes.push(modify4);
-      modify4.primaryInput = modify3;
+      connectNodes(sourceNode, modify1);
+      connectNodes(modify1, modify2);
+      connectNodes(modify2, modify3);
+      connectNodes(modify3, modify4);
 
       // Initialize all nodes
-      modify1.onPrevNodesUpdated?.();
-      modify2.onPrevNodesUpdated?.();
-      modify3.onPrevNodesUpdated?.();
-      modify4.onPrevNodesUpdated?.();
+      initializeNodeChain([modify1, modify2, modify3, modify4]);
 
       // All should have 3 columns initially
       expect(modify4.finalCols).toHaveLength(3);
 
       // Remove 'name' column in modify2 (middle of chain)
       modify2.state.selectedColumns[1].checked = false;
-      modify3.onPrevNodesUpdated?.();
-      modify4.onPrevNodesUpdated?.();
+      initializeNodeChain([modify3, modify4]);
 
       // All downstream nodes should only have 2 columns now
       expect(modify2.finalCols).toHaveLength(2);
       expect(modify3.finalCols).toHaveLength(2);
       expect(modify4.finalCols).toHaveLength(2);
-      expect(modify4.finalCols.map((c) => c.name)).toEqual(['id', 'value']);
+      expectColumnNames(modify4, ['id', 'value']);
     });
   });
 
@@ -556,10 +428,8 @@
       });
 
       // Connect the nodes
-      sourceNode.nextNodes.push(modifyNode);
-      modifyNode.primaryInput = sourceNode;
-      modifyNode.nextNodes.push(aggNode);
-      aggNode.primaryInput = modifyNode;
+      connectNodes(sourceNode, modifyNode);
+      connectNodes(modifyNode, aggNode);
 
       // Spy on onPrevNodesUpdated
       const aggOnPrevNodesUpdatedSpy = jest.spyOn(
@@ -568,8 +438,7 @@
       );
 
       // Initialize
-      modifyNode.onPrevNodesUpdated?.();
-      aggNode.onPrevNodesUpdated?.();
+      initializeNodeChain([modifyNode, aggNode]);
 
       // Clear the spy
       aggOnPrevNodesUpdatedSpy.mockClear();
@@ -600,10 +469,8 @@
       const modifyNode = new ModifyColumnsNode({selectedColumns: []});
 
       // Connect the nodes
-      sourceNode.nextNodes.push(aggNode);
-      aggNode.primaryInput = sourceNode;
-      aggNode.nextNodes.push(modifyNode);
-      modifyNode.primaryInput = aggNode;
+      connectNodes(sourceNode, aggNode);
+      connectNodes(aggNode, modifyNode);
 
       // Initialize the aggregation node
       aggNode.onPrevNodesUpdated?.();
@@ -663,10 +530,8 @@
       const modifyNode = new ModifyColumnsNode({selectedColumns: []});
 
       // Connect the nodes
-      sourceNode.nextNodes.push(aggNode);
-      aggNode.primaryInput = sourceNode;
-      aggNode.nextNodes.push(modifyNode);
-      modifyNode.primaryInput = aggNode;
+      connectNodes(sourceNode, aggNode);
+      connectNodes(aggNode, modifyNode);
 
       // Initialize the aggregation node
       aggNode.onPrevNodesUpdated?.();
@@ -721,12 +586,9 @@
       const modify2 = new ModifyColumnsNode({selectedColumns: []});
 
       // Connect the nodes
-      sourceNode.nextNodes.push(aggNode);
-      aggNode.primaryInput = sourceNode;
-      aggNode.nextNodes.push(modify1);
-      modify1.primaryInput = aggNode;
-      modify1.nextNodes.push(modify2);
-      modify2.primaryInput = modify1;
+      connectNodes(sourceNode, aggNode);
+      connectNodes(aggNode, modify1);
+      connectNodes(modify1, modify2);
 
       // Initialize
       aggNode.onPrevNodesUpdated?.();
@@ -736,29 +598,21 @@
         newColumnName: 'count',
       });
 
-      modify1.onPrevNodesUpdated?.();
-      modify2.onPrevNodesUpdated?.();
+      initializeNodeChain([modify1, modify2]);
 
       // Verify initial state - both modify nodes should see 'name' and 'count'
-      expect(modify1.finalCols.map((c) => c.name)).toEqual(['name', 'count']);
-      expect(modify2.finalCols.map((c) => c.name)).toEqual(['name', 'count']);
+      expectColumnNames(modify1, ['name', 'count']);
+      expectColumnNames(modify2, ['name', 'count']);
 
       // Rename aggregation column
       aggNode.state.aggregations[0].newColumnName = 'total_count';
 
       // Propagate to both downstream nodes
-      modify1.onPrevNodesUpdated?.();
-      modify2.onPrevNodesUpdated?.();
+      initializeNodeChain([modify1, modify2]);
 
       // Both should see the change
-      expect(modify1.finalCols.map((c) => c.name)).toEqual([
-        'name',
-        'total_count',
-      ]);
-      expect(modify2.finalCols.map((c) => c.name)).toEqual([
-        'name',
-        'total_count',
-      ]);
+      expectColumnNames(modify1, ['name', 'total_count']);
+      expectColumnNames(modify2, ['name', 'total_count']);
     });
 
     it('should handle propagation with filter node between: Source -> Agg -> Filter -> ModifyColumns', () => {
@@ -773,12 +627,9 @@
       const modifyNode = new ModifyColumnsNode({selectedColumns: []});
 
       // Connect: Source -> Agg -> MiddleNode -> ModifyColumns
-      sourceNode.nextNodes.push(aggNode);
-      aggNode.primaryInput = sourceNode;
-      aggNode.nextNodes.push(middleNode);
-      middleNode.primaryInput = aggNode;
-      middleNode.nextNodes.push(modifyNode);
-      modifyNode.primaryInput = middleNode;
+      connectNodes(sourceNode, aggNode);
+      connectNodes(aggNode, middleNode);
+      connectNodes(middleNode, modifyNode);
 
       // Initialize
       aggNode.onPrevNodesUpdated?.();
@@ -788,24 +639,19 @@
         newColumnName: 'count',
       });
 
-      middleNode.onPrevNodesUpdated?.();
-      modifyNode.onPrevNodesUpdated?.();
+      initializeNodeChain([middleNode, modifyNode]);
 
       // Verify initial state
-      expect(modifyNode.finalCols.map((c) => c.name)).toEqual(['id', 'count']);
+      expectColumnNames(modifyNode, ['id', 'count']);
 
       // Rename aggregation column
       aggNode.state.aggregations[0].newColumnName = 'row_count';
 
       // Propagate through middle node to modify node
-      middleNode.onPrevNodesUpdated?.();
-      modifyNode.onPrevNodesUpdated?.();
+      initializeNodeChain([middleNode, modifyNode]);
 
       // Verify change propagated through the chain
-      expect(modifyNode.finalCols.map((c) => c.name)).toEqual([
-        'id',
-        'row_count',
-      ]);
+      expectColumnNames(modifyNode, ['id', 'row_count']);
     });
 
     it('should handle multiple stacked aggregations: Source -> Agg1 -> Agg2 -> ModifyColumns', () => {
@@ -821,12 +667,9 @@
       const modifyNode = new ModifyColumnsNode({selectedColumns: []});
 
       // Connect: Source -> Agg1 -> Agg2 -> ModifyColumns
-      sourceNode.nextNodes.push(agg1);
-      agg1.primaryInput = sourceNode;
-      agg1.nextNodes.push(agg2);
-      agg2.primaryInput = agg1;
-      agg2.nextNodes.push(modifyNode);
-      modifyNode.primaryInput = agg2;
+      connectNodes(sourceNode, agg1);
+      connectNodes(agg1, agg2);
+      connectNodes(agg2, modifyNode);
 
       // Initialize agg1
       agg1.onPrevNodesUpdated?.();
@@ -853,7 +696,7 @@
 
       // Initialize modify node
       modifyNode.onPrevNodesUpdated?.();
-      expect(modifyNode.finalCols.map((c) => c.name)).toEqual(['id', 'count']);
+      expectColumnNames(modifyNode, ['id', 'count']);
 
       // Now change column name in FIRST aggregation (agg1)
       agg1.state.aggregations[0].newColumnName = 'sum_value';
@@ -866,17 +709,14 @@
 
       // The modify node should still see 'id' and 'count'
       // because agg2 is doing COUNT(*) which doesn't depend on agg1's output column names
-      expect(modifyNode.finalCols.map((c) => c.name)).toEqual(['id', 'count']);
+      expectColumnNames(modifyNode, ['id', 'count']);
 
       // Now also change column name in SECOND aggregation (agg2)
       agg2.state.aggregations[0].newColumnName = 'num_groups';
 
       // Propagate to modify node
       modifyNode.onPrevNodesUpdated?.();
-      expect(modifyNode.finalCols.map((c) => c.name)).toEqual([
-        'id',
-        'num_groups',
-      ]);
+      expectColumnNames(modifyNode, ['id', 'num_groups']);
     });
 
     it('REGRESSION: should not propagate invalid aggregations to downstream nodes', () => {
@@ -892,10 +732,8 @@
       const modifyNode = new ModifyColumnsNode({selectedColumns: []});
 
       // Connect the nodes
-      sourceNode.nextNodes.push(aggNode);
-      aggNode.primaryInput = sourceNode;
-      aggNode.nextNodes.push(modifyNode);
-      modifyNode.primaryInput = aggNode;
+      connectNodes(sourceNode, aggNode);
+      connectNodes(aggNode, modifyNode);
 
       // Initialize
       aggNode.onPrevNodesUpdated?.();
@@ -945,10 +783,8 @@
       const modifyNode = new ModifyColumnsNode({selectedColumns: []});
 
       // Connect the nodes
-      sourceNode.nextNodes.push(aggNode);
-      aggNode.primaryInput = sourceNode;
-      aggNode.nextNodes.push(modifyNode);
-      modifyNode.primaryInput = aggNode;
+      connectNodes(sourceNode, aggNode);
+      connectNodes(aggNode, modifyNode);
 
       // Initialize
       aggNode.onPrevNodesUpdated?.();
@@ -992,10 +828,8 @@
       const modifyNode = new ModifyColumnsNode({selectedColumns: []});
 
       // Connect the nodes
-      sourceNode.nextNodes.push(aggNode);
-      aggNode.primaryInput = sourceNode;
-      aggNode.nextNodes.push(modifyNode);
-      modifyNode.primaryInput = aggNode;
+      connectNodes(sourceNode, aggNode);
+      connectNodes(aggNode, modifyNode);
 
       // Initialize
       aggNode.onPrevNodesUpdated?.();
@@ -1051,10 +885,8 @@
       const modifyNode = new ModifyColumnsNode({selectedColumns: []});
 
       // Connect the nodes
-      sourceNode.nextNodes.push(aggNode);
-      aggNode.primaryInput = sourceNode;
-      aggNode.nextNodes.push(modifyNode);
-      modifyNode.primaryInput = aggNode;
+      connectNodes(sourceNode, aggNode);
+      connectNodes(aggNode, modifyNode);
 
       // Initialize
       aggNode.onPrevNodesUpdated?.();
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/add_columns_configuration_modal.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/add_columns_configuration_modal.ts
new file mode 100644
index 0000000..8cf3ddd
--- /dev/null
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/add_columns_configuration_modal.ts
@@ -0,0 +1,144 @@
+// Copyright (C) 2025 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 m from 'mithril';
+import {Callout} from '../../../../widgets/callout';
+import {Form, FormSection} from '../../../../widgets/form';
+import {IssueList, OutlinedField} from '../widgets';
+import {JoinSourceCard} from '../join_widgets';
+import {ColumnInfo} from '../column_info';
+
+/**
+ * Modal for configuring column selection from an already-connected join source
+ * Shown when a secondary input is already connected
+ */
+export interface AddColumnsConfigurationModalAttrs {
+  // Data
+  readonly sourceCols: ColumnInfo[];
+  readonly rightCols: ColumnInfo[];
+  readonly leftColumn?: string;
+  readonly rightColumn?: string;
+  readonly selectedColumns: string[];
+  readonly columnAliases?: Map<string, string>;
+
+  // Callbacks
+  readonly getJoinColumnErrors: (
+    selectedColumns: string[],
+  ) => Array<{column: string; error: string}>;
+  readonly onLeftColumnChange: (columnName: string) => void;
+  readonly onRightColumnChange: (columnName: string) => void;
+  readonly onColumnToggle: (columnName: string, checked: boolean) => void;
+  readonly onColumnAlias: (columnName: string, alias: string) => void;
+}
+
+export class AddColumnsConfigurationModal
+  implements m.ClassComponent<AddColumnsConfigurationModalAttrs>
+{
+  view({attrs}: m.Vnode<AddColumnsConfigurationModalAttrs>) {
+    const {
+      sourceCols,
+      rightCols,
+      leftColumn,
+      rightColumn,
+      selectedColumns,
+      columnAliases,
+      getJoinColumnErrors,
+      onLeftColumnChange,
+      onRightColumnChange,
+      onColumnToggle,
+      onColumnAlias,
+    } = attrs;
+
+    const noColumnsSelected = selectedColumns.length === 0;
+
+    // Create rightCols with checked state based on selectedColumns
+    const rightColsWithChecked = rightCols.map((col) => ({
+      ...col,
+      checked: selectedColumns.includes(col.column.name),
+      alias: columnAliases?.get(col.column.name),
+    }));
+
+    return m(
+      Form,
+      noColumnsSelected &&
+        m(
+          Callout,
+          {icon: 'info'},
+          'Select at least one column to add from the joined source.',
+        ),
+      selectedColumns.length > 0 &&
+        m(IssueList, {
+          icon: 'error',
+          title: 'Column name conflicts:',
+          items: getJoinColumnErrors(selectedColumns).map((err) => err.error),
+        }),
+      // Primary join column selector
+      m(FormSection, {label: 'Join Condition'}, [
+        m(
+          OutlinedField,
+          {
+            label: 'Primary Join Column',
+            value: leftColumn || '',
+            onchange: (e: Event) => {
+              const target = e.target as HTMLSelectElement;
+              onLeftColumnChange(target.value);
+            },
+          },
+          [
+            m(
+              'option',
+              {
+                value: '',
+                selected: !leftColumn,
+                disabled: true,
+              },
+              'Select column',
+            ),
+            ...sourceCols.map((col) =>
+              m(
+                'option',
+                {
+                  value: col.column.name,
+                  selected: col.column.name === leftColumn,
+                },
+                col.column.name,
+              ),
+            ),
+          ],
+        ),
+      ]),
+      // Source card with join column and column selection
+      m(JoinSourceCard, {
+        label: 'Source',
+        columns: rightColsWithChecked,
+        otherSideColumns: sourceCols.map((col) => ({
+          ...col,
+          checked: true, // All primary columns are considered for conflict detection
+        })),
+        selectedColumn: rightColumn,
+        onColumnChange: (columnName: string) => {
+          onRightColumnChange(columnName);
+        },
+        onColumnToggle: (index: number, checked: boolean) => {
+          const colName = rightCols[index].column.name;
+          onColumnToggle(colName, checked);
+        },
+        onColumnAlias: (index: number, alias: string) => {
+          const colName = rightCols[index].column.name;
+          onColumnAlias(colName, alias);
+        },
+      }),
+    );
+  }
+}
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/add_columns_node.scss b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/add_columns_node.scss
new file mode 100644
index 0000000..502d4f3
--- /dev/null
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/add_columns_node.scss
@@ -0,0 +1,20 @@
+// Copyright (C) 2025 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.
+
+// List of added columns in add columns node
+.pf-added-columns-list {
+  display: flex;
+  flex-direction: column;
+  gap: 8px;
+}
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/add_columns_node.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/add_columns_node.ts
index 4d97d0e..0d03b51 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/add_columns_node.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/add_columns_node.ts
@@ -14,7 +14,6 @@
 
 import {
   QueryNode,
-  QueryNodeState,
   nextNodeId,
   NodeType,
   getSecondaryInput,
@@ -37,401 +36,29 @@
 import {Button, ButtonVariant} from '../../../../widgets/button';
 import {TextInput} from '../../../../widgets/text_input';
 import {showModal, redrawModal, closeModal} from '../../../../widgets/modal';
-import {Switch} from '../../../../widgets/switch';
-import {Icon} from '../../../../widgets/icon';
 import {
   StructuredQueryBuilder,
   ColumnSpec,
   JoinCondition,
 } from '../structured_query_builder';
 import {setValidationError} from '../node_issues';
-import {
-  ListItem,
-  LabeledControl,
-  TableDescription,
-  IssueList,
-  OutlinedMultiSelect,
-  MultiSelectDiff,
-  OutlinedField,
-  FormListItem,
-  AddItemPlaceholder,
-} from '../widgets';
+import {ListItem} from '../widgets';
 import {EmptyState} from '../../../../widgets/empty_state';
 import {Callout} from '../../../../widgets/callout';
-import {Form, FormLabel, FormSection} from '../../../../widgets/form';
+import {Form, FormSection} from '../../../../widgets/form';
 import {NodeModifyAttrs, NodeDetailsAttrs} from '../node_explorer_types';
 import {NodeDetailsMessage, ColumnName} from '../node_styling_widgets';
 import {Spinner} from '../../../../widgets/spinner';
 import {STR} from '../../../../trace_processor/query_result';
 import {sqliteString} from '../../../../base/string_utils';
 import {loadNodeDoc} from '../node_doc_loader';
+import {NewColumn, AddColumnsNodeState} from './add_columns_types';
+import {SwitchComponent, IfComponent} from './computed_column_components';
+import {AddColumnsSuggestionModal} from './add_columns_suggestion_modal';
+import {AddColumnsConfigurationModal} from './add_columns_configuration_modal';
 
-// Helper components for computed columns (SWITCH and IF)
-class SwitchComponent
-  implements
-    m.ClassComponent<{
-      column: NewColumn;
-      columns: ColumnInfo[];
-      onchange: () => void;
-    }>
-{
-  view({
-    attrs,
-  }: m.Vnode<{
-    column: NewColumn;
-    columns: ColumnInfo[];
-    onchange: () => void;
-  }>) {
-    const {column, columns, onchange} = attrs;
-
-    if (column.type !== 'switch') {
-      return m('');
-    }
-
-    const setSwitchOn = (newSwitchOn: string) => {
-      column.switchOn = newSwitchOn;
-      this.updateExpression(column);
-      onchange();
-    };
-
-    const setDefaultValue = (newDefaultValue: string) => {
-      column.defaultValue = newDefaultValue;
-      this.updateExpression(column);
-      onchange();
-    };
-
-    const setCaseWhen = (index: number, newWhen: string) => {
-      if (!column.cases) return;
-      column.cases[index].when = newWhen;
-      this.updateExpression(column);
-      onchange();
-    };
-
-    const setCaseThen = (index: number, newThen: string) => {
-      if (!column.cases) return;
-      column.cases[index].then = newThen;
-      this.updateExpression(column);
-      onchange();
-    };
-
-    const addCase = () => {
-      if (!column.cases) {
-        column.cases = [];
-      }
-      column.cases.push({when: '', then: ''});
-      this.updateExpression(column);
-      onchange();
-    };
-
-    const removeCase = (index: number) => {
-      if (!column.cases) return;
-      column.cases.splice(index, 1);
-      this.updateExpression(column);
-      onchange();
-    };
-
-    if (column.switchOn === undefined || column.switchOn === '') {
-      const columnNames = columns.map((c) => c.column.name);
-      return m(
-        OutlinedField,
-        {
-          label: 'Switch on column',
-          value: '',
-          onchange: (e: Event) => {
-            setSwitchOn((e.target as HTMLSelectElement).value);
-          },
-        },
-        [
-          m('option', {value: ''}, 'Select column'),
-          ...columnNames.map((name) => m('option', {value: name}, name)),
-        ],
-      );
-    }
-
-    const columnNames = columns.map((c) => c.column.name);
-
-    const selectedColumn = columns.find(
-      (c) => c.column.name === column.switchOn,
-    );
-    const isStringColumn = selectedColumn?.type === 'STRING';
-
-    return m('.pf-inline-edit-list', [
-      m(
-        OutlinedField,
-        {
-          label: 'Switch on column',
-          value: column.switchOn,
-          onchange: (e: Event) => {
-            setSwitchOn((e.target as HTMLSelectElement).value);
-          },
-        },
-        columnNames.map((name) => m('option', {value: name}, name)),
-      ),
-      isStringColumn &&
-        m(Switch, {
-          label: 'Use glob matching',
-          checked: column.useGlob ?? false,
-          onchange: (e: Event) => {
-            column.useGlob = (e.target as HTMLInputElement).checked;
-            this.updateExpression(column);
-            onchange();
-          },
-        }),
-      m(OutlinedField, {
-        label: 'Default value',
-        placeholder: 'default value',
-        value: column.defaultValue || '',
-        oninput: (e: Event) => {
-          setDefaultValue((e.target as HTMLInputElement).value);
-        },
-      }),
-      ...(column.cases || []).map((c, i) =>
-        m(FormListItem, {
-          item: c,
-          isValid: c.when.trim() !== '' && c.then.trim() !== '',
-          onUpdate: () => {},
-          onRemove: () => removeCase(i),
-          children: [
-            m(OutlinedField, {
-              label: 'When',
-              placeholder: 'is equal to',
-              value: c.when,
-              oninput: (e: Event) => {
-                setCaseWhen(i, (e.target as HTMLInputElement).value);
-              },
-            }),
-            m(OutlinedField, {
-              label: 'Then',
-              placeholder: 'then value',
-              value: c.then,
-              oninput: (e: Event) => {
-                setCaseThen(i, (e.target as HTMLInputElement).value);
-              },
-            }),
-          ],
-        }),
-      ),
-      m(AddItemPlaceholder, {
-        label: 'Add case',
-        icon: 'add',
-        onclick: addCase,
-      }),
-    ]);
-  }
-
-  private updateExpression(col: NewColumn) {
-    if (col.type !== 'switch' || !col.switchOn) {
-      col.expression = '';
-      return;
-    }
-
-    const operator = col.useGlob ? 'GLOB' : '=';
-    const casesStr = (col.cases || [])
-      .filter((c) => c.when.trim() !== '' && c.then.trim() !== '')
-      .map((c) => `WHEN ${col.switchOn} ${operator} ${c.when} THEN ${c.then}`)
-      .join(' ');
-
-    const defaultStr = col.defaultValue ? `ELSE ${col.defaultValue}` : '';
-
-    if (casesStr === '' && defaultStr === '') {
-      col.expression = '';
-      return;
-    }
-
-    col.expression = `CASE ${casesStr} ${defaultStr} END`;
-  }
-}
-
-class IfComponent
-  implements
-    m.ClassComponent<{
-      column: NewColumn;
-      onchange: () => void;
-    }>
-{
-  view({
-    attrs,
-  }: m.Vnode<{
-    column: NewColumn;
-    onchange: () => void;
-  }>) {
-    const {column, onchange} = attrs;
-
-    if (column.type !== 'if') {
-      return m('');
-    }
-
-    const setIfCondition = (index: number, newIf: string) => {
-      if (!column.clauses) return;
-      column.clauses[index].if = newIf;
-      this.updateExpression(column);
-      onchange();
-    };
-
-    const setThenValue = (index: number, newThen: string) => {
-      if (!column.clauses) return;
-      column.clauses[index].then = newThen;
-      this.updateExpression(column);
-      onchange();
-    };
-
-    const setElseValue = (newElse: string) => {
-      column.elseValue = newElse;
-      this.updateExpression(column);
-      onchange();
-    };
-
-    const addElseIf = () => {
-      if (!column.clauses) {
-        column.clauses = [];
-      }
-      column.clauses.push({if: '', then: ''});
-      this.updateExpression(column);
-      onchange();
-    };
-
-    const removeClause = (index: number) => {
-      if (!column.clauses) return;
-      column.clauses.splice(index, 1);
-      this.updateExpression(column);
-      onchange();
-    };
-
-    const hasElse = column.elseValue !== undefined;
-
-    return m('.pf-inline-edit-list', [
-      ...(column.clauses || []).map((c, i) =>
-        m(FormListItem, {
-          item: c,
-          isValid: c.if.trim() !== '' && c.then.trim() !== '',
-          onUpdate: () => {},
-          onRemove: () => removeClause(i),
-          children: [
-            m(OutlinedField, {
-              label: i === 0 ? 'If' : 'Else If',
-              placeholder: 'condition',
-              value: c.if,
-              oninput: (e: Event) => {
-                setIfCondition(i, (e.target as HTMLInputElement).value);
-              },
-            }),
-            m(OutlinedField, {
-              label: 'Then',
-              placeholder: 'value',
-              value: c.then,
-              oninput: (e: Event) => {
-                setThenValue(i, (e.target as HTMLInputElement).value);
-              },
-            }),
-          ],
-        }),
-      ),
-      hasElse &&
-        m(OutlinedField, {
-          label: 'Else',
-          placeholder: 'value',
-          value: column.elseValue || '',
-          oninput: (e: Event) => {
-            setElseValue((e.target as HTMLInputElement).value);
-          },
-        }),
-      !hasElse &&
-        m(AddItemPlaceholder, {
-          label: 'Add ELSE IF',
-          icon: 'add',
-          onclick: addElseIf,
-        }),
-      !hasElse &&
-        m(AddItemPlaceholder, {
-          label: 'Add ELSE',
-          icon: 'add',
-          onclick: () => {
-            column.elseValue = '';
-            this.updateExpression(column);
-            onchange();
-          },
-        }),
-    ]);
-  }
-
-  private updateExpression(col: NewColumn) {
-    if (col.type !== 'if') {
-      col.expression = '';
-      return;
-    }
-
-    const clausesStr = (col.clauses || [])
-      .filter((c) => c.if.trim() !== '' && c.then.trim() !== '')
-      .map((c) => `WHEN ${c.if} THEN ${c.then}`)
-      .join(' ');
-
-    const elseStr =
-      col.elseValue !== undefined ? `ELSE ${col.elseValue.trim()}` : '';
-
-    if (clausesStr === '' && elseStr === '') {
-      col.expression = '';
-      return;
-    }
-
-    col.expression = `CASE ${clausesStr} ${elseStr} END`;
-  }
-}
-
-interface IfClause {
-  if: string;
-  then: string;
-}
-
-interface NewColumn {
-  expression: string;
-  name: string;
-  module?: string;
-
-  // For switch columns
-  type?: 'switch' | 'if';
-  switchOn?: string;
-  cases?: {when: string; then: string}[];
-  defaultValue?: string;
-  useGlob?: boolean;
-
-  // For if columns
-  clauses?: IfClause[];
-  elseValue?: string;
-
-  // SQL type for preserving type information across serialization
-  sqlType?: string;
-}
-
-export interface AddColumnsNodeState extends QueryNodeState {
-  selectedColumns?: string[];
-  leftColumn?: string;
-  rightColumn?: string;
-  // Note: sqlTable is no longer used - we get columns from the connected node
-
-  // Note: onAddAndConnectTable callback is now provided through
-  // QueryNodeState.actions.onAddAndConnectTable
-
-  // Pre-selected columns for each suggested table (before connecting)
-  suggestionSelections?: Map<string, string[]>;
-
-  // Track which suggestions are expanded to show column selection
-  expandedSuggestions?: Set<string>;
-
-  // Currently selected suggestion table (for single-selection UI)
-  selectedSuggestionTable?: string;
-
-  // Map from column name to its alias (for renaming added columns)
-  columnAliases?: Map<string, string>;
-
-  // Map from column name to its alias for suggestion mode (before applying)
-  suggestionAliases?: Map<string, string>;
-
-  // Track if connection was made through guided suggestion
-  isGuidedConnection?: boolean;
-
-  // Computed columns (expressions, SWITCH, IF)
-  computedColumns?: NewColumn[];
-}
+// Re-export types for backwards compatibility
+export {NewColumn, AddColumnsNodeState} from './add_columns_types';
 
 export class AddColumnsNode implements QueryNode {
   readonly nodeId: string;
@@ -775,20 +402,6 @@
     return errors;
   }
 
-  // Get error for a specific column (for UI display)
-  private getJoinColumnError(
-    colName: string,
-    selectedColumns: string[],
-    useSuggestionAliases: boolean,
-  ): string | undefined {
-    const errors = this.getJoinColumnErrors(
-      selectedColumns,
-      useSuggestionAliases,
-    );
-    const error = errors.find((e) => e.column === colName);
-    return error?.error;
-  }
-
   nodeDetails(): NodeDetailsAttrs {
     const hasConnectedNode = this.rightNode !== undefined;
     const hasComputedColumns = (this.state.computedColumns?.length ?? 0) > 0;
@@ -897,7 +510,9 @@
     const modalKey = 'add-join-modal';
 
     showModal({
-      title: 'Add Columns from Another Source',
+      title: this.rightNode
+        ? 'Configure Joined Columns'
+        : 'Add Columns from Another Source',
       key: modalKey,
       className: 'pf-join-modal-wide',
       content: () => {
@@ -1388,296 +1003,105 @@
 
   private renderSuggestionMode(): m.Child {
     const suggestions = this.getJoinSuggestions();
-
-    if (suggestions.length === 0) {
-      return m(
-        Form,
-        m(
-          'p',
-          'No JOINID columns found in your data. You can still connect any node to the left port.',
-        ),
-      );
-    }
-
     const selectedTable = this.state.selectedSuggestionTable;
-    const selectedSuggestion = suggestions.find(
-      (s) => s.suggestedTable === selectedTable,
-    );
-    const tableInfo = selectedTable ? this.getTable(selectedTable) : undefined;
-    const availableColumns = selectedTable
-      ? this.getTableColumns(selectedTable)
-      : [];
     const selectedColumns = selectedTable
       ? this.state.suggestionSelections?.get(selectedTable) ?? []
       : [];
 
-    return m(
-      '.pf-join-modal-layout',
-      m(
-        '.pf-join-modal-controls',
-        m(
-          Form,
-          selectedSuggestion &&
-            selectedColumns.length === 0 &&
-            m(
-              Callout,
-              {icon: 'info'},
-              'Select at least one column to add from the joined table.',
-            ),
-          selectedSuggestion &&
-            selectedColumns.length > 0 &&
-            m(IssueList, {
-              icon: 'error',
-              title: 'Column name conflicts:',
-              items: this.getJoinColumnErrors(selectedColumns, true).map(
-                (err) => err.error,
-              ),
-            }),
-          m(FormSection, {label: 'Select Table to Join'}, [
-            m(
-              Select,
-              {
-                onchange: (e: Event) => {
-                  const value = (e.target as HTMLSelectElement).value;
-                  this.state.selectedSuggestionTable = value || undefined;
-                  m.redraw();
-                },
-              },
-              m(
-                'option',
-                {value: '', selected: !selectedTable},
-                'Choose a table',
-              ),
-              suggestions.map((s) =>
-                m(
-                  'option',
-                  {
-                    value: s.suggestedTable,
-                    selected: s.suggestedTable === selectedTable,
-                  },
-                  `${s.suggestedTable} (on ${s.colName})`,
-                ),
-              ),
-            ),
-          ]),
-          selectedSuggestion &&
-            m(
-              LabeledControl,
-              {label: 'Join on:'},
-              m(
-                'span',
-                m('code', selectedSuggestion.colName),
-                ' = ',
-                m('code', selectedSuggestion.targetColumn),
-              ),
-            ),
-          selectedSuggestion &&
-            m(
-              LabeledControl,
-              {label: 'Columns:'},
-              m(OutlinedMultiSelect, {
-                label:
-                  selectedColumns.length > 0
-                    ? selectedColumns.join(', ')
-                    : 'Select columns to add',
-                showNumSelected: false,
-                compact: true,
-                options: availableColumns.map((col) => ({
-                  id: col,
-                  name: col,
-                  checked: selectedColumns.includes(col),
-                })),
-                onChange: (diffs: MultiSelectDiff[]) => {
-                  if (!this.state.suggestionSelections) {
-                    this.state.suggestionSelections = new Map();
-                  }
-                  const current =
-                    this.state.suggestionSelections.get(selectedTable!) ?? [];
-                  let updated = [...current];
-                  for (const diff of diffs) {
-                    if (diff.checked) {
-                      if (!updated.includes(diff.id)) {
-                        updated.push(diff.id);
-                      }
-                    } else {
-                      updated = updated.filter((c) => c !== diff.id);
-                    }
-                  }
-                  this.state.suggestionSelections.set(selectedTable!, updated);
-                  m.redraw();
-                },
-              }),
-            ),
-          selectedSuggestion &&
-            selectedColumns.length > 0 &&
-            this.renderColumnAliases(selectedColumns, true),
-        ),
-      ),
-      tableInfo &&
-        m('.pf-join-modal-info', m(TableDescription, {table: tableInfo})),
-    );
+    return m(AddColumnsSuggestionModal, {
+      suggestions,
+      sourceCols: this.sourceCols,
+      selectedTable,
+      selectedColumns,
+      suggestionAliases: this.state.suggestionAliases,
+      getTable: (tableName: string) => this.getTable(tableName),
+      getJoinColumnErrors: (cols: string[]) =>
+        this.getJoinColumnErrors(cols, true),
+      onTableSelect: (tableName: string | undefined) => {
+        this.state.selectedSuggestionTable = tableName;
+        m.redraw();
+      },
+      onColumnToggle: (colName: string, checked: boolean) => {
+        if (!selectedTable) return;
+        if (!this.state.suggestionSelections) {
+          this.state.suggestionSelections = new Map();
+        }
+        const current =
+          this.state.suggestionSelections.get(selectedTable) ?? [];
+        let updated = [...current];
+        if (checked) {
+          if (!updated.includes(colName)) {
+            updated.push(colName);
+          }
+        } else {
+          updated = updated.filter((c) => c !== colName);
+          this.state.suggestionAliases?.delete(colName);
+        }
+        this.state.suggestionSelections.set(selectedTable, updated);
+        m.redraw();
+      },
+      onColumnAlias: (colName: string, alias: string) => {
+        if (!this.state.suggestionAliases) {
+          this.state.suggestionAliases = new Map();
+        }
+        if (alias.trim() === '') {
+          this.state.suggestionAliases.delete(colName);
+        } else {
+          this.state.suggestionAliases.set(colName, alias);
+        }
+        m.redraw();
+      },
+    });
   }
 
   private renderJoinConfiguration(): m.Child {
     const selectedColumns = this.state.selectedColumns ?? [];
-    const noColumnsSelected = selectedColumns.length === 0;
 
-    return m(
-      Form,
-      noColumnsSelected &&
-        m(
-          Callout,
-          {icon: 'info'},
-          'Select at least one column to add from the joined source.',
-        ),
-      selectedColumns.length > 0 &&
-        m(IssueList, {
-          icon: 'error',
-          title: 'Column name conflicts:',
-          items: this.getJoinColumnErrors(selectedColumns, false).map(
-            (err) => err.error,
-          ),
-        }),
-      m(
-        LabeledControl,
-        {label: 'Columns:'},
-        m(OutlinedMultiSelect, {
-          label: noColumnsSelected
-            ? 'Select columns to add'
-            : selectedColumns.join(', '),
-          showNumSelected: false,
-          compact: true,
-          options: this.rightCols.map((c) => ({
-            id: c.column.name,
-            name: c.column.name,
-            checked:
-              this.state.selectedColumns?.includes(c.column.name) ?? false,
-          })),
-          onChange: (diffs: MultiSelectDiff[]) => {
-            if (!this.state.selectedColumns) {
-              this.state.selectedColumns = [];
-            }
-            for (const diff of diffs) {
-              if (diff.checked) {
-                if (!this.state.selectedColumns.includes(diff.id)) {
-                  this.state.selectedColumns.push(diff.id);
-                }
-              } else {
-                this.state.selectedColumns = this.state.selectedColumns.filter(
-                  (c) => c !== diff.id,
-                );
-                this.state.columnAliases?.delete(diff.id);
-              }
-            }
-            this.state.onchange?.();
-          },
-        }),
-      ),
-      selectedColumns.length > 0 &&
-        this.renderColumnAliases(selectedColumns, false),
-      this.renderJoinConditionSelects(),
-    );
-  }
-
-  private renderColumnAliases(
-    selectedColumns: string[],
-    useSuggestionAliases: boolean,
-  ): m.Child {
-    const aliasMap = useSuggestionAliases
-      ? this.state.suggestionAliases
-      : this.state.columnAliases;
-
-    return m(FormSection, {label: 'Column Aliases (optional)'}, [
-      m(FormLabel, 'Rename columns to avoid conflicts:'),
-      selectedColumns.map((colName) => {
-        const error = this.getJoinColumnError(
-          colName,
-          selectedColumns,
-          useSuggestionAliases,
-        );
-        return m(
-          LabeledControl,
-          {label: `${colName} →`},
-          m(TextInput, {
-            placeholder: error ? 'alias required' : 'alias (optional)',
-            value: aliasMap?.get(colName) ?? '',
-            oninput: (e: InputEvent) => {
-              const target = e.target as HTMLInputElement;
-              const alias = target.value.trim();
-              const map = useSuggestionAliases
-                ? (this.state.suggestionAliases =
-                    this.state.suggestionAliases ?? new Map())
-                : (this.state.columnAliases =
-                    this.state.columnAliases ?? new Map());
-              if (alias) {
-                map.set(colName, alias);
-              } else {
-                map.delete(colName);
-              }
-              useSuggestionAliases ? m.redraw() : this.state.onchange?.();
-            },
-          }),
-          error && m(Icon, {icon: 'error'}),
-        );
-      }),
-    ]);
-  }
-
-  private renderJoinConditionSelects(): m.Child {
-    return m(FormSection, {label: 'Join Condition'}, [
-      m(FormLabel, 'Base Column'),
-      m(
-        Select,
-        {
-          onchange: (e: Event) => {
-            const target = e.target as HTMLSelectElement;
-            this.state.leftColumn = target.value;
-            this.state.onchange?.();
-          },
-        },
-        m(
-          'option',
-          {disabled: true, selected: !this.state.leftColumn},
-          'Select column',
-        ),
-        this.sourceCols.map((col) =>
-          m(
-            'option',
-            {
-              value: col.column.name,
-              selected: col.column.name === this.state.leftColumn,
-            },
-            col.column.name,
-          ),
-        ),
-      ),
-      m(FormLabel, 'Connected Node Column'),
-      m(
-        Select,
-        {
-          onchange: (e: Event) => {
-            const target = e.target as HTMLSelectElement;
-            this.state.rightColumn = target.value;
-            this.state.onchange?.();
-          },
-        },
-        m(
-          'option',
-          {disabled: true, selected: !this.state.rightColumn},
-          'Select column',
-        ),
-        this.rightCols.map((col) =>
-          m(
-            'option',
-            {
-              value: col.column.name,
-              selected: col.column.name === this.state.rightColumn,
-            },
-            col.column.name,
-          ),
-        ),
-      ),
-    ]);
+    return m(AddColumnsConfigurationModal, {
+      sourceCols: this.sourceCols,
+      rightCols: this.rightCols,
+      leftColumn: this.state.leftColumn,
+      rightColumn: this.state.rightColumn,
+      selectedColumns,
+      columnAliases: this.state.columnAliases,
+      getJoinColumnErrors: (cols: string[]) =>
+        this.getJoinColumnErrors(cols, false),
+      onLeftColumnChange: (columnName: string) => {
+        this.state.leftColumn = columnName;
+        this.state.onchange?.();
+      },
+      onRightColumnChange: (columnName: string) => {
+        this.state.rightColumn = columnName;
+        this.state.onchange?.();
+      },
+      onColumnToggle: (colName: string, checked: boolean) => {
+        if (!this.state.selectedColumns) {
+          this.state.selectedColumns = [];
+        }
+        if (checked) {
+          if (!this.state.selectedColumns.includes(colName)) {
+            this.state.selectedColumns.push(colName);
+          }
+        } else {
+          this.state.selectedColumns = this.state.selectedColumns.filter(
+            (c) => c !== colName,
+          );
+          this.state.columnAliases?.delete(colName);
+        }
+        this.state.onchange?.();
+      },
+      onColumnAlias: (colName: string, alias: string) => {
+        if (!this.state.columnAliases) {
+          this.state.columnAliases = new Map();
+        }
+        if (alias.trim() === '') {
+          this.state.columnAliases.delete(colName);
+        } else {
+          this.state.columnAliases.set(colName, alias);
+        }
+        this.state.onchange?.();
+      },
+    });
   }
 
   private renderComputedColumn(col: NewColumn, nameError?: string): m.Child {
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/add_columns_node_unittest.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/add_columns_node_unittest.ts
index 28c4a4e..52b7449 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/add_columns_node_unittest.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/add_columns_node_unittest.ts
@@ -13,8 +13,9 @@
 // limitations under the License.
 
 import {AddColumnsNode, AddColumnsNodeState} from './add_columns_node';
-import {QueryNode, NodeType} from '../../query_node';
+import {QueryNode} from '../../query_node';
 import protos from '../../../../protos';
+import {createMockNode, createColumnInfo} from '../testing/test_utils';
 
 describe('AddColumnsNode', () => {
   function createMockPrimaryNode(): QueryNode {
@@ -25,40 +26,16 @@
     table.columnNames = ['id', 'ts', 'dur'];
     sq.table = table;
 
-    return {
+    return createMockNode({
       nodeId: 'primary',
-      type: NodeType.kTable,
-      nextNodes: [],
-      finalCols: [
-        {
-          name: 'id',
-          type: 'INT',
-          checked: true,
-          column: {name: 'id'},
-        },
-        {
-          name: 'ts',
-          type: 'INT',
-          checked: true,
-          column: {name: 'ts'},
-        },
-        {
-          name: 'dur',
-          type: 'INT',
-          checked: true,
-          column: {name: 'dur'},
-        },
+      columns: [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('ts', 'int'),
+        createColumnInfo('dur', 'int'),
       ],
-      state: {},
-      validate: () => true,
       getTitle: () => 'Primary Table',
-      nodeSpecificModify: () => null,
-      nodeDetails: () => ({content: null}),
-      nodeInfo: () => null,
-      clone: () => createMockPrimaryNode(),
       getStructuredQuery: () => sq,
-      serializeState: () => ({}),
-    } as QueryNode;
+    });
   }
 
   function createMockSecondaryNode(): QueryNode {
@@ -69,40 +46,16 @@
     table.columnNames = ['id', 'name', 'category'];
     sq.table = table;
 
-    return {
+    return createMockNode({
       nodeId: 'secondary',
-      type: NodeType.kTable,
-      nextNodes: [],
-      finalCols: [
-        {
-          name: 'id',
-          type: 'INT',
-          checked: true,
-          column: {name: 'id'},
-        },
-        {
-          name: 'name',
-          type: 'STRING',
-          checked: true,
-          column: {name: 'name'},
-        },
-        {
-          name: 'category',
-          type: 'STRING',
-          checked: true,
-          column: {name: 'category'},
-        },
+      columns: [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('name', 'string'),
+        createColumnInfo('category', 'string'),
       ],
-      state: {},
-      validate: () => true,
       getTitle: () => 'Secondary Table',
-      nodeSpecificModify: () => null,
-      nodeDetails: () => ({content: null}),
-      nodeInfo: () => null,
-      clone: () => createMockSecondaryNode(),
       getStructuredQuery: () => sq,
-      serializeState: () => ({}),
-    } as QueryNode;
+    });
   }
 
   function createAddColumnsNodeWithInputs(
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/add_columns_suggestion_modal.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/add_columns_suggestion_modal.ts
new file mode 100644
index 0000000..5c2d96a
--- /dev/null
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/add_columns_suggestion_modal.ts
@@ -0,0 +1,201 @@
+// Copyright (C) 2025 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 m from 'mithril';
+import {Select} from '../../../../widgets/select';
+import {Callout} from '../../../../widgets/callout';
+import {Form, FormSection} from '../../../../widgets/form';
+import {
+  TableDescription,
+  DataExplorerEmptyState,
+  IssueList,
+  OutlinedFieldReadOnly,
+} from '../widgets';
+import {JoinSourceCard} from '../join_widgets';
+import {ColumnInfo, columnInfoFromSqlColumn} from '../column_info';
+import {
+  SqlTable,
+  SqlColumn,
+} from '../../../dev.perfetto.SqlModules/sql_modules';
+
+/**
+ * Modal for suggesting and connecting a new table to join
+ * Shown when no secondary input is connected yet
+ */
+export interface AddColumnsSuggestionModalAttrs {
+  // Data
+  readonly suggestions: Array<{
+    colName: string;
+    suggestedTable: string;
+    targetColumn: string;
+  }>;
+  readonly sourceCols: ColumnInfo[];
+  readonly selectedTable?: string;
+  readonly selectedColumns: string[];
+  readonly suggestionAliases?: Map<string, string>;
+
+  // Callbacks
+  readonly getTable: (tableName: string) => SqlTable | undefined;
+  readonly getJoinColumnErrors: (
+    selectedColumns: string[],
+  ) => Array<{column: string; error: string}>;
+  readonly onTableSelect: (tableName: string | undefined) => void;
+  readonly onColumnToggle: (columnName: string, checked: boolean) => void;
+  readonly onColumnAlias: (columnName: string, alias: string) => void;
+}
+
+export class AddColumnsSuggestionModal
+  implements m.ClassComponent<AddColumnsSuggestionModalAttrs>
+{
+  oncreate({attrs}: m.VnodeDOM<AddColumnsSuggestionModalAttrs>) {
+    // Auto-select if there's only one suggestion and nothing is selected yet
+    if (attrs.suggestions.length === 1 && !attrs.selectedTable) {
+      attrs.onTableSelect(attrs.suggestions[0].suggestedTable);
+    }
+  }
+
+  view({attrs}: m.Vnode<AddColumnsSuggestionModalAttrs>) {
+    const {
+      suggestions,
+      sourceCols,
+      selectedTable,
+      selectedColumns,
+      suggestionAliases,
+      getTable,
+      getJoinColumnErrors,
+      onTableSelect,
+      onColumnToggle,
+      onColumnAlias,
+    } = attrs;
+
+    if (suggestions.length === 0) {
+      return m(
+        Form,
+        m(
+          'p',
+          'No JOINID columns found in your data. You can still connect any node to the left port.',
+        ),
+      );
+    }
+
+    const hasOnlyOneSuggestion = suggestions.length === 1;
+    const selectedSuggestion = suggestions.find(
+      (s) => s.suggestedTable === selectedTable,
+    );
+    const tableInfo = selectedTable ? getTable(selectedTable) : undefined;
+
+    // Create ColumnInfo objects from table columns with checked state
+    const tableColsWithChecked: ColumnInfo[] = tableInfo
+      ? tableInfo.columns.map((col: SqlColumn) => ({
+          ...columnInfoFromSqlColumn(col),
+          checked: selectedColumns.includes(col.name),
+          alias: suggestionAliases?.get(col.name),
+        }))
+      : [];
+
+    return m(
+      '.pf-join-modal-layout',
+      m(
+        '.pf-join-modal-controls',
+        m(
+          Form,
+          selectedSuggestion &&
+            selectedColumns.length === 0 &&
+            m(
+              Callout,
+              {icon: 'info'},
+              'Select at least one column to add from the joined table.',
+            ),
+          selectedSuggestion &&
+            selectedColumns.length > 0 &&
+            m(IssueList, {
+              icon: 'error',
+              title: 'Column name conflicts:',
+              items: getJoinColumnErrors(selectedColumns).map(
+                (err) => err.error,
+              ),
+            }),
+          // Only show selector if there are multiple suggestions
+          !hasOnlyOneSuggestion &&
+            m(FormSection, {label: 'Select Table to Join'}, [
+              m(
+                Select,
+                {
+                  onchange: (e: Event) => {
+                    const value = (e.target as HTMLSelectElement).value;
+                    onTableSelect(value || undefined);
+                  },
+                },
+                m(
+                  'option',
+                  {value: '', selected: !selectedTable},
+                  'Choose a table',
+                ),
+                suggestions.map((s) =>
+                  m(
+                    'option',
+                    {
+                      value: s.suggestedTable,
+                      selected: s.suggestedTable === selectedTable,
+                    },
+                    `${s.suggestedTable} (on ${s.colName})`,
+                  ),
+                ),
+              ),
+            ]),
+          // Show table name as read-only OutlinedField when there's only one option
+          hasOnlyOneSuggestion &&
+            selectedSuggestion &&
+            m(OutlinedFieldReadOnly, {
+              label: 'Joining Table',
+              value: `${selectedSuggestion.suggestedTable} (on ${selectedSuggestion.colName})`,
+            }),
+          selectedSuggestion &&
+            m(JoinSourceCard, {
+              label: selectedTable ?? 'Source',
+              columns: tableColsWithChecked,
+              otherSideColumns: sourceCols.map((col) => ({
+                ...col,
+                checked: true,
+              })),
+              selectedColumn: selectedSuggestion.targetColumn,
+              joinColumnDisabled: true,
+              onColumnChange: () => {
+                // Join column is auto-detected, no change needed
+              },
+              onColumnToggle: (index: number, checked: boolean) => {
+                if (!tableInfo) return;
+                const colName = tableInfo.columns[index].name;
+                onColumnToggle(colName, checked);
+              },
+              onColumnAlias: (index: number, alias: string) => {
+                if (!tableInfo) return;
+                const colName = tableInfo.columns[index].name;
+                onColumnAlias(colName, alias);
+              },
+            }),
+        ),
+      ),
+      m(
+        '.pf-join-modal-info',
+        tableInfo
+          ? m(TableDescription, {table: tableInfo})
+          : m(DataExplorerEmptyState, {
+              icon: 'table',
+              title: 'Table information will appear here',
+            }),
+      ),
+    );
+  }
+}
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/add_columns_types.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/add_columns_types.ts
new file mode 100644
index 0000000..cf54d2f
--- /dev/null
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/add_columns_types.ts
@@ -0,0 +1,84 @@
+// Copyright (C) 2025 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 {QueryNodeState} from '../../query_node';
+
+/**
+ * Represents an IF clause for conditional column expressions.
+ */
+export interface IfClause {
+  if: string;
+  then: string;
+}
+
+/**
+ * Represents a case branch for SWITCH column expressions.
+ */
+export interface SwitchCase {
+  when: string;
+  then: string;
+}
+
+/**
+ * Represents a computed column definition (expression, SWITCH, or IF).
+ */
+export interface NewColumn {
+  expression: string;
+  name: string;
+  module?: string;
+
+  // For switch columns
+  type?: 'switch' | 'if';
+  switchOn?: string;
+  cases?: SwitchCase[];
+  defaultValue?: string;
+  useGlob?: boolean;
+
+  // For if columns
+  clauses?: IfClause[];
+  elseValue?: string;
+
+  // SQL type for preserving type information across serialization
+  sqlType?: string;
+}
+
+/**
+ * State interface for the AddColumnsNode.
+ */
+export interface AddColumnsNodeState extends QueryNodeState {
+  selectedColumns?: string[];
+  leftColumn?: string;
+  rightColumn?: string;
+
+  // Pre-selected columns for each suggested table (before connecting)
+  suggestionSelections?: Map<string, string[]>;
+
+  // Track which suggestions are expanded to show column selection
+  expandedSuggestions?: Set<string>;
+
+  // Currently selected suggestion table (for single-selection UI)
+  selectedSuggestionTable?: string;
+
+  // Map from column name to its alias (for renaming added columns)
+  columnAliases?: Map<string, string>;
+
+  // Map from column name to its alias for suggestion mode (before applying)
+  suggestionAliases?: Map<string, string>;
+
+  // Track if connection was made through guided suggestion
+  isGuidedConnection?: boolean;
+
+  // Computed columns (expressions, SWITCH, IF)
+  computedColumns?: NewColumn[];
+}
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/aggregation_node.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/aggregation_node.ts
index 125fb80..2c77ffc 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/aggregation_node.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/aggregation_node.ts
@@ -46,6 +46,7 @@
 } from '../widgets';
 import {NodeModifyAttrs, NodeDetailsAttrs} from '../node_explorer_types';
 import {loadNodeDoc} from '../node_doc_loader';
+import {ColumnName, NodeDetailsSpacer} from '../node_styling_widgets';
 
 export interface AggregationSerializedState {
   groupByColumns: {name: string; checked: boolean}[];
@@ -226,54 +227,78 @@
   }
 
   nodeDetails(): NodeDetailsAttrs {
-    const groupByOptions: MultiSelectOption[] = this.state.groupByColumns.map(
-      (col) => ({
-        id: col.name,
-        name: col.name,
-        checked: col.checked,
-      }),
+    const selectedGroupBy = this.state.groupByColumns.filter((c) => c.checked);
+
+    const details: m.Child[] = [];
+
+    // Display group by columns
+    if (selectedGroupBy.length > 0) {
+      details.push(
+        m(
+          'div',
+          'Group by: ',
+          selectedGroupBy.map((c, index) => [
+            ColumnName(c.name),
+            index < selectedGroupBy.length - 1 ? ', ' : '',
+          ]),
+        ),
+      );
+    } else {
+      details.push(m('div', 'Group by: None'));
+    }
+
+    const validAggregations = this.state.aggregations.filter(
+      (agg) => agg.isValid,
     );
 
-    const selectedGroupBy = this.state.groupByColumns.filter((c) => c.checked);
-    const label =
-      selectedGroupBy.length > 0
-        ? selectedGroupBy.map((c) => c.name).join(', ')
-        : 'None';
+    // Add spacing before aggregations if there are any
+    if (validAggregations.length > 0) {
+      details.push(NodeDetailsSpacer());
+    }
 
-    const details: m.Child[] = [
-      m(
-        LabeledControl,
-        {label: 'Grouping columns:'},
-        m(OutlinedMultiSelect, {
-          label,
-          options: groupByOptions,
-          showNumSelected: false,
-          compact: true,
-          onChange: (diffs: MultiSelectDiff[]) => {
-            for (const diff of diffs) {
-              const column = this.state.groupByColumns.find(
-                (c) => c.name === diff.id,
-              );
-              if (column) {
-                column.checked = diff.checked;
-              }
-            }
-            this.state.onchange?.();
-          },
-        }),
-      ),
-    ];
+    // Show each aggregation on its own line with styled column names
+    validAggregations.forEach((agg) => {
+      const resultName = agg.newColumnName ?? placeholderNewColumnName(agg);
 
-    const aggs = this.state.aggregations
-      .filter((agg) => agg.isValid)
-      .map((agg) => {
-        const aggDisplay = getAggregationDisplay(agg);
-        return `${aggDisplay} AS ${agg.newColumnName ?? placeholderNewColumnName(agg)}`;
-      });
-
-    // Show each aggregation on its own line
-    aggs.forEach((agg) => {
-      details.push(m('div', agg));
+      if (isCountAll(agg)) {
+        details.push(m('div', 'COUNT(*) AS ', ColumnName(resultName)));
+      } else if (
+        agg.aggregationOp === 'COUNT_DISTINCT' &&
+        agg.column !== undefined
+      ) {
+        details.push(
+          m(
+            'div',
+            'COUNT(DISTINCT ',
+            ColumnName(agg.column.name),
+            ') AS ',
+            ColumnName(resultName),
+          ),
+        );
+      } else if (
+        agg.aggregationOp === 'PERCENTILE' &&
+        agg.percentile !== undefined
+      ) {
+        details.push(
+          m(
+            'div',
+            'PERCENTILE(',
+            ColumnName(agg.column?.name ?? ''),
+            `, ${agg.percentile}) AS `,
+            ColumnName(resultName),
+          ),
+        );
+      } else if (agg.column !== undefined) {
+        details.push(
+          m(
+            'div',
+            `${agg.aggregationOp}(`,
+            ColumnName(agg.column.name),
+            ') AS ',
+            ColumnName(resultName),
+          ),
+        );
+      }
     });
 
     return {
@@ -783,25 +808,6 @@
   return agg.aggregationOp === 'COUNT(*)';
 }
 
-// Helper to get display string for an aggregation
-function getAggregationDisplay(agg: Aggregation): string {
-  if (isCountAll(agg)) {
-    return 'COUNT(*)';
-  } else if (
-    agg.aggregationOp === 'COUNT_DISTINCT' &&
-    agg.column !== undefined
-  ) {
-    return `COUNT(DISTINCT ${agg.column.name})`;
-  } else if (
-    agg.aggregationOp === 'PERCENTILE' &&
-    agg.percentile !== undefined
-  ) {
-    return `PERCENTILE(${agg.column?.name}, ${agg.percentile})`;
-  } else {
-    return `${agg.aggregationOp}(${agg.column?.name})`;
-  }
-}
-
 const AGGREGATION_OPS = [
   'COUNT',
   'COUNT(*)',
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/aggregation_node_unittest.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/aggregation_node_unittest.ts
index f1520bb..0de1cb0 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/aggregation_node_unittest.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/aggregation_node_unittest.ts
@@ -19,57 +19,29 @@
   AggregationNodeState,
 } from './aggregation_node';
 import {Trace} from '../../../../public/trace';
-import {ColumnInfo} from '../column_info';
-import {QueryNode, NodeType} from '../../query_node';
+import {QueryNode} from '../../query_node';
+import {
+  createMockNode,
+  createColumnInfo,
+  connectNodes,
+} from '../testing/test_utils';
 
 describe('AggregationNode', () => {
   function createMockTrace(): Trace {
     return {} as Trace;
   }
 
-  function createMockPrevNode(cols: ColumnInfo[] = []): QueryNode {
-    return {
-      nodeId: 'mock',
-      type: NodeType.kTable,
-      nextNodes: [],
-      finalCols: cols,
-      state: {},
-      validate: () => true,
-      getTitle: () => 'Mock',
-      nodeSpecificModify: () => null,
-      nodeDetails: () => ({content: null}),
-      nodeInfo: () => null,
-      clone: () => createMockPrevNode(cols),
-      getStructuredQuery: () => undefined,
-      serializeState: () => ({}),
-    } as QueryNode;
-  }
-
   function createAggregationNodeWithInput(
     state: AggregationNodeState,
     inputNode?: QueryNode,
   ): AggregationNode {
     const node = new AggregationNode(state);
     if (inputNode) {
-      // Directly set the connection without triggering onPrevNodesUpdated
-      // to preserve the test's explicitly provided columns
-      inputNode.nextNodes.push(node);
-      node.primaryInput = inputNode;
+      connectNodes(inputNode, node);
     }
     return node;
   }
 
-  function createColumnInfo(name: string, type: string): ColumnInfo {
-    return {
-      name,
-      type,
-      checked: false,
-      column: {
-        name,
-      },
-    };
-  }
-
   describe('placeholderNewColumnName', () => {
     it('should generate placeholder for COUNT(*) without column', () => {
       const agg: Aggregation = {
@@ -81,7 +53,7 @@
     it('should generate placeholder for PERCENTILE with column', () => {
       const agg: Aggregation = {
         aggregationOp: 'PERCENTILE',
-        column: createColumnInfo('dur', 'INT'),
+        column: createColumnInfo('dur', 'int'),
         percentile: 95,
       };
       expect(placeholderNewColumnName(agg)).toBe('percentile_dur');
@@ -90,7 +62,7 @@
     it('should generate placeholder for MEDIAN with column', () => {
       const agg: Aggregation = {
         aggregationOp: 'MEDIAN',
-        column: createColumnInfo('value', 'DOUBLE'),
+        column: createColumnInfo('value', 'double'),
       };
       expect(placeholderNewColumnName(agg)).toBe('median_value');
     });
@@ -98,7 +70,7 @@
     it('should generate placeholder for SUM with column', () => {
       const agg: Aggregation = {
         aggregationOp: 'SUM',
-        column: createColumnInfo('dur', 'INT'),
+        column: createColumnInfo('dur', 'int'),
       };
       expect(placeholderNewColumnName(agg)).toBe('sum_dur');
     });
@@ -106,7 +78,7 @@
     it('should generate placeholder for COUNT with column', () => {
       const agg: Aggregation = {
         aggregationOp: 'COUNT',
-        column: createColumnInfo('name', 'STRING'),
+        column: createColumnInfo('name', 'string'),
       };
       expect(placeholderNewColumnName(agg)).toBe('count_name');
     });
@@ -126,7 +98,7 @@
     it('should use lowercase in placeholder', () => {
       const agg: Aggregation = {
         aggregationOp: 'MEAN',
-        column: createColumnInfo('Value', 'DOUBLE'),
+        column: createColumnInfo('Value', 'double'),
       };
       expect(placeholderNewColumnName(agg)).toBe('mean_Value');
     });
@@ -142,7 +114,7 @@
           groupByColumns: [],
           aggregations: [],
         },
-        createMockPrevNode(),
+        createMockNode(),
       );
     });
 
@@ -168,7 +140,7 @@
       node.state.aggregations = [
         {
           aggregationOp: 'PERCENTILE',
-          column: createColumnInfo('dur', 'INT'),
+          column: createColumnInfo('dur', 'int'),
           percentile: 50,
           isValid: false,
         },
@@ -192,7 +164,7 @@
       node.state.aggregations = [
         {
           aggregationOp: 'PERCENTILE',
-          column: createColumnInfo('dur', 'INT'),
+          column: createColumnInfo('dur', 'int'),
           percentile: 150, // Invalid: > 100
           isValid: false,
         },
@@ -216,7 +188,7 @@
       node.state.aggregations = [
         {
           aggregationOp: 'PERCENTILE',
-          column: createColumnInfo('dur', 'INT'),
+          column: createColumnInfo('dur', 'int'),
           isValid: false,
         },
       ];
@@ -262,7 +234,7 @@
       node.state.aggregations = [
         {
           aggregationOp: 'MEDIAN',
-          column: createColumnInfo('value', 'DOUBLE'),
+          column: createColumnInfo('value', 'double'),
           isValid: false,
         },
       ];
@@ -307,7 +279,7 @@
       node.state.aggregations = [
         {
           aggregationOp: 'SUM',
-          column: createColumnInfo('dur', 'INT'),
+          column: createColumnInfo('dur', 'int'),
           isValid: false,
         },
       ];
@@ -335,13 +307,13 @@
           groupByColumns: [],
           aggregations: [],
         },
-        createMockPrevNode(),
+        createMockNode(),
       );
 
       node.state.aggregations = [
         {
           aggregationOp: 'PERCENTILE',
-          column: createColumnInfo('dur', 'INT'),
+          column: createColumnInfo('dur', 'int'),
           percentile: 95,
           newColumnName: 'p95_dur',
           isValid: true,
@@ -364,7 +336,7 @@
           groupByColumns: [],
           aggregations: [],
         },
-        createMockPrevNode(),
+        createMockNode(),
       );
 
       node.state.aggregations = [
@@ -391,13 +363,13 @@
           groupByColumns: [],
           aggregations: [],
         },
-        createMockPrevNode(),
+        createMockNode(),
       );
 
       node.state.aggregations = [
         {
           aggregationOp: 'MEDIAN',
-          column: createColumnInfo('value', 'DOUBLE'),
+          column: createColumnInfo('value', 'double'),
           newColumnName: 'median_value',
           isValid: true,
         },
@@ -419,7 +391,7 @@
           groupByColumns: [],
           aggregations: [],
         },
-        createMockPrevNode(),
+        createMockNode(),
       );
 
       node.state.aggregations = [
@@ -430,13 +402,13 @@
         },
         {
           aggregationOp: 'MEDIAN',
-          column: createColumnInfo('dur', 'INT'),
+          column: createColumnInfo('dur', 'int'),
           newColumnName: 'median_dur',
           isValid: true,
         },
         {
           aggregationOp: 'PERCENTILE',
-          column: createColumnInfo('dur', 'INT'),
+          column: createColumnInfo('dur', 'int'),
           percentile: 99,
           newColumnName: 'p99_dur',
           isValid: true,
@@ -462,14 +434,14 @@
           aggregations: [
             {
               aggregationOp: 'PERCENTILE',
-              column: createColumnInfo('dur', 'INT'),
+              column: createColumnInfo('dur', 'int'),
               percentile: 95,
               newColumnName: 'p95_dur',
               isValid: true,
             },
           ],
         },
-        createMockPrevNode(),
+        createMockNode(),
       );
 
       expect(node.state.aggregations.length).toBe(1);
@@ -491,7 +463,7 @@
             },
           ],
         },
-        createMockPrevNode(),
+        createMockNode(),
       );
 
       expect(node.state.aggregations.length).toBe(1);
@@ -508,13 +480,13 @@
           aggregations: [
             {
               aggregationOp: 'MEDIAN',
-              column: createColumnInfo('value', 'DOUBLE'),
+              column: createColumnInfo('value', 'double'),
               newColumnName: 'median_value',
               isValid: true,
             },
           ],
         },
-        createMockPrevNode(),
+        createMockNode(),
       );
 
       expect(node.state.aggregations.length).toBe(1);
@@ -538,7 +510,7 @@
         AggregationNode.deserializeState(serializedState);
       const node = createAggregationNodeWithInput(
         deserializedState,
-        createMockPrevNode(),
+        createMockNode(),
       );
 
       expect(node.state.aggregations.length).toBe(1);
@@ -552,11 +524,13 @@
     let mockPrevNode: QueryNode;
 
     beforeEach(() => {
-      mockPrevNode = createMockPrevNode([
-        createColumnInfo('name', 'STRING'),
-        createColumnInfo('dur', 'INT'),
-        createColumnInfo('ts', 'INT'),
-      ]);
+      mockPrevNode = createMockNode({
+        columns: [
+          createColumnInfo('name', 'string'),
+          createColumnInfo('dur', 'int'),
+          createColumnInfo('ts', 'int'),
+        ],
+      });
     });
 
     it('should validate node with only group by columns (no aggregations)', () => {
@@ -564,8 +538,8 @@
         {
           trace: createMockTrace(),
           groupByColumns: [
-            {...createColumnInfo('name', 'STRING'), checked: true},
-            {...createColumnInfo('dur', 'INT'), checked: false},
+            {...createColumnInfo('name', 'string'), checked: true},
+            {...createColumnInfo('dur', 'int'), checked: false},
           ],
           aggregations: [],
         },
@@ -580,8 +554,8 @@
         {
           trace: createMockTrace(),
           groupByColumns: [
-            {...createColumnInfo('name', 'STRING'), checked: false},
-            {...createColumnInfo('dur', 'INT'), checked: false},
+            {...createColumnInfo('name', 'string'), checked: false},
+            {...createColumnInfo('dur', 'int'), checked: false},
           ],
           aggregations: [
             {
@@ -601,13 +575,13 @@
         {
           trace: createMockTrace(),
           groupByColumns: [
-            {...createColumnInfo('name', 'STRING'), checked: true},
-            {...createColumnInfo('dur', 'INT'), checked: false},
+            {...createColumnInfo('name', 'string'), checked: true},
+            {...createColumnInfo('dur', 'int'), checked: false},
           ],
           aggregations: [
             {
               aggregationOp: 'SUM',
-              column: createColumnInfo('dur', 'INT'),
+              column: createColumnInfo('dur', 'int'),
               isValid: true,
             },
           ],
@@ -623,8 +597,8 @@
         {
           trace: createMockTrace(),
           groupByColumns: [
-            {...createColumnInfo('name', 'STRING'), checked: false},
-            {...createColumnInfo('dur', 'INT'), checked: false},
+            {...createColumnInfo('name', 'string'), checked: false},
+            {...createColumnInfo('dur', 'int'), checked: false},
           ],
           aggregations: [],
         },
@@ -642,7 +616,7 @@
         {
           trace: createMockTrace(),
           groupByColumns: [
-            {...createColumnInfo('name', 'STRING'), checked: false},
+            {...createColumnInfo('name', 'string'), checked: false},
           ],
           aggregations: [
             {
@@ -663,7 +637,7 @@
         {
           trace: createMockTrace(),
           groupByColumns: [
-            {...createColumnInfo('name', 'STRING'), checked: false},
+            {...createColumnInfo('name', 'string'), checked: false},
           ],
           aggregations: [
             {
@@ -672,12 +646,12 @@
             },
             {
               aggregationOp: 'SUM',
-              column: createColumnInfo('dur', 'INT'),
+              column: createColumnInfo('dur', 'int'),
               isValid: true,
             },
             {
               aggregationOp: 'MAX',
-              column: createColumnInfo('ts', 'INT'),
+              column: createColumnInfo('ts', 'int'),
               isValid: true,
             },
           ],
@@ -693,8 +667,8 @@
         {
           trace: createMockTrace(),
           groupByColumns: [
-            {...createColumnInfo('name', 'STRING'), checked: true},
-            {...createColumnInfo('missing_col', 'INT'), checked: true},
+            {...createColumnInfo('name', 'string'), checked: true},
+            {...createColumnInfo('missing_col', 'int'), checked: true},
           ],
           aggregations: [],
         },
@@ -729,10 +703,10 @@
   describe('column type propagation', () => {
     it('should set INT type for COUNT aggregation', () => {
       const inputCols = [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('dur', 'DURATION'),
+        createColumnInfo('id', 'int'),
+        createColumnInfo('dur', 'duration'),
       ];
-      const mockInput = createMockPrevNode(inputCols);
+      const mockInput = createMockNode({columns: inputCols});
       const node = createAggregationNodeWithInput(
         {
           trace: createMockTrace(),
@@ -755,8 +729,8 @@
     });
 
     it('should set INT type for COUNT(*) aggregation', () => {
-      const inputCols = [createColumnInfo('id', 'INT')];
-      const mockInput = createMockPrevNode(inputCols);
+      const inputCols = [createColumnInfo('id', 'int')];
+      const mockInput = createMockNode({columns: inputCols});
       const node = createAggregationNodeWithInput(
         {
           trace: createMockTrace(),
@@ -789,7 +763,7 @@
           },
         },
       ];
-      const mockInput = createMockPrevNode(inputCols);
+      const mockInput = createMockNode({columns: inputCols});
       const node = createAggregationNodeWithInput(
         {
           trace: createMockTrace(),
@@ -823,7 +797,7 @@
           },
         },
       ];
-      const mockInput = createMockPrevNode(inputCols);
+      const mockInput = createMockNode({columns: inputCols});
       const node = createAggregationNodeWithInput(
         {
           trace: createMockTrace(),
@@ -854,8 +828,8 @@
     });
 
     it('should set DOUBLE type for MEAN aggregation', () => {
-      const inputCols = [createColumnInfo('value', 'INT')];
-      const mockInput = createMockPrevNode(inputCols);
+      const inputCols = [createColumnInfo('value', 'int')];
+      const mockInput = createMockNode({columns: inputCols});
       const node = createAggregationNodeWithInput(
         {
           trace: createMockTrace(),
@@ -878,8 +852,8 @@
     });
 
     it('should set DOUBLE type for MEDIAN aggregation', () => {
-      const inputCols = [createColumnInfo('dur', 'INT')];
-      const mockInput = createMockPrevNode(inputCols);
+      const inputCols = [createColumnInfo('dur', 'int')];
+      const mockInput = createMockNode({columns: inputCols});
       const node = createAggregationNodeWithInput(
         {
           trace: createMockTrace(),
@@ -902,8 +876,8 @@
     });
 
     it('should set DOUBLE type for DURATION_WEIGHTED_MEAN aggregation', () => {
-      const inputCols = [createColumnInfo('dur', 'DURATION')];
-      const mockInput = createMockPrevNode(inputCols);
+      const inputCols = [createColumnInfo('dur', 'duration')];
+      const mockInput = createMockNode({columns: inputCols});
       const node = createAggregationNodeWithInput(
         {
           trace: createMockTrace(),
@@ -926,8 +900,8 @@
     });
 
     it('should set DOUBLE type for PERCENTILE aggregation', () => {
-      const inputCols = [createColumnInfo('dur', 'INT')];
-      const mockInput = createMockPrevNode(inputCols);
+      const inputCols = [createColumnInfo('dur', 'int')];
+      const mockInput = createMockNode({columns: inputCols});
       const node = createAggregationNodeWithInput(
         {
           trace: createMockTrace(),
@@ -961,13 +935,13 @@
             type: {kind: 'string' as const},
           },
         },
-        createColumnInfo('value', 'INT'),
+        createColumnInfo('value', 'int'),
       ];
-      const mockInput = createMockPrevNode(inputCols);
+      const mockInput = createMockNode({columns: inputCols});
       const node = createAggregationNodeWithInput(
         {
           trace: createMockTrace(),
-          groupByColumns: inputCols.map((c) => ({...c})),
+          groupByColumns: [{...inputCols[0]}],
           aggregations: [
             {
               aggregationOp: 'SUM',
@@ -994,7 +968,7 @@
     it('should handle PERCENTILE with 0 percentile', () => {
       const agg: Aggregation = {
         aggregationOp: 'PERCENTILE',
-        column: createColumnInfo('dur', 'INT'),
+        column: createColumnInfo('dur', 'int'),
         percentile: 0,
       };
 
@@ -1012,7 +986,7 @@
     it('should handle PERCENTILE with 100 percentile', () => {
       const agg: Aggregation = {
         aggregationOp: 'PERCENTILE',
-        column: createColumnInfo('dur', 'INT'),
+        column: createColumnInfo('dur', 'int'),
         percentile: 100,
       };
 
@@ -1030,7 +1004,7 @@
     it('should handle PERCENTILE with negative percentile', () => {
       const agg: Aggregation = {
         aggregationOp: 'PERCENTILE',
-        column: createColumnInfo('dur', 'INT'),
+        column: createColumnInfo('dur', 'int'),
         percentile: -1,
       };
 
@@ -1046,7 +1020,7 @@
     it('should handle aggregation with special characters in column name', () => {
       const agg: Aggregation = {
         aggregationOp: 'SUM',
-        column: createColumnInfo('dur_ns', 'INT'),
+        column: createColumnInfo('dur_ns', 'int'),
       };
 
       expect(placeholderNewColumnName(agg)).toBe('sum_dur_ns');
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/computed_column_components.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/computed_column_components.ts
new file mode 100644
index 0000000..0f0921f
--- /dev/null
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/computed_column_components.ts
@@ -0,0 +1,332 @@
+// Copyright (C) 2025 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 m from 'mithril';
+import {ColumnInfo} from '../column_info';
+import {Switch} from '../../../../widgets/switch';
+import {OutlinedField, FormListItem, AddItemPlaceholder} from '../widgets';
+import {NewColumn} from './add_columns_types';
+
+/**
+ * Attrs for the SwitchComponent.
+ */
+export interface SwitchComponentAttrs {
+  column: NewColumn;
+  columns: ColumnInfo[];
+  onchange: () => void;
+}
+
+/**
+ * Component for configuring a SWITCH/CASE computed column.
+ * Allows selecting a column to switch on, defining cases with when/then pairs,
+ * and an optional default value.
+ */
+export class SwitchComponent implements m.ClassComponent<SwitchComponentAttrs> {
+  view({attrs}: m.Vnode<SwitchComponentAttrs>) {
+    const {column, columns, onchange} = attrs;
+
+    if (column.type !== 'switch') {
+      return m('');
+    }
+
+    const setSwitchOn = (newSwitchOn: string) => {
+      column.switchOn = newSwitchOn;
+      this.updateExpression(column);
+      onchange();
+    };
+
+    const setDefaultValue = (newDefaultValue: string) => {
+      column.defaultValue = newDefaultValue;
+      this.updateExpression(column);
+      onchange();
+    };
+
+    const setCaseWhen = (index: number, newWhen: string) => {
+      if (!column.cases) return;
+      column.cases[index].when = newWhen;
+      this.updateExpression(column);
+      onchange();
+    };
+
+    const setCaseThen = (index: number, newThen: string) => {
+      if (!column.cases) return;
+      column.cases[index].then = newThen;
+      this.updateExpression(column);
+      onchange();
+    };
+
+    const addCase = () => {
+      if (!column.cases) {
+        column.cases = [];
+      }
+      column.cases.push({when: '', then: ''});
+      this.updateExpression(column);
+      onchange();
+    };
+
+    const removeCase = (index: number) => {
+      if (!column.cases) return;
+      column.cases.splice(index, 1);
+      this.updateExpression(column);
+      onchange();
+    };
+
+    if (column.switchOn === undefined || column.switchOn === '') {
+      const columnNames = columns.map((c) => c.column.name);
+      return m(
+        OutlinedField,
+        {
+          label: 'Switch on column',
+          value: '',
+          onchange: (e: Event) => {
+            setSwitchOn((e.target as HTMLSelectElement).value);
+          },
+        },
+        [
+          m('option', {value: ''}, 'Select column'),
+          ...columnNames.map((name) => m('option', {value: name}, name)),
+        ],
+      );
+    }
+
+    const columnNames = columns.map((c) => c.column.name);
+
+    const selectedColumn = columns.find(
+      (c) => c.column.name === column.switchOn,
+    );
+    const isStringColumn = selectedColumn?.type === 'STRING';
+
+    return m('.pf-inline-edit-list', [
+      m(
+        OutlinedField,
+        {
+          label: 'Switch on column',
+          value: column.switchOn,
+          onchange: (e: Event) => {
+            setSwitchOn((e.target as HTMLSelectElement).value);
+          },
+        },
+        columnNames.map((name) => m('option', {value: name}, name)),
+      ),
+      isStringColumn &&
+        m(Switch, {
+          label: 'Use glob matching',
+          checked: column.useGlob ?? false,
+          onchange: (e: Event) => {
+            column.useGlob = (e.target as HTMLInputElement).checked;
+            this.updateExpression(column);
+            onchange();
+          },
+        }),
+      m(OutlinedField, {
+        label: 'Default value',
+        placeholder: 'default value',
+        value: column.defaultValue || '',
+        oninput: (e: Event) => {
+          setDefaultValue((e.target as HTMLInputElement).value);
+        },
+      }),
+      ...(column.cases || []).map((c, i) =>
+        m(FormListItem, {
+          item: c,
+          isValid: c.when.trim() !== '' && c.then.trim() !== '',
+          onUpdate: () => {},
+          onRemove: () => removeCase(i),
+          children: [
+            m(OutlinedField, {
+              label: 'When',
+              placeholder: 'is equal to',
+              value: c.when,
+              oninput: (e: Event) => {
+                setCaseWhen(i, (e.target as HTMLInputElement).value);
+              },
+            }),
+            m(OutlinedField, {
+              label: 'Then',
+              placeholder: 'then value',
+              value: c.then,
+              oninput: (e: Event) => {
+                setCaseThen(i, (e.target as HTMLInputElement).value);
+              },
+            }),
+          ],
+        }),
+      ),
+      m(AddItemPlaceholder, {
+        label: 'Add case',
+        icon: 'add',
+        onclick: addCase,
+      }),
+    ]);
+  }
+
+  private updateExpression(col: NewColumn) {
+    if (col.type !== 'switch' || !col.switchOn) {
+      col.expression = '';
+      return;
+    }
+
+    const operator = col.useGlob ? 'GLOB' : '=';
+    const casesStr = (col.cases || [])
+      .filter((c) => c.when.trim() !== '' && c.then.trim() !== '')
+      .map((c) => `WHEN ${col.switchOn} ${operator} ${c.when} THEN ${c.then}`)
+      .join(' ');
+
+    const defaultStr = col.defaultValue ? `ELSE ${col.defaultValue}` : '';
+
+    if (casesStr === '' && defaultStr === '') {
+      col.expression = '';
+      return;
+    }
+
+    col.expression = `CASE ${casesStr} ${defaultStr} END`;
+  }
+}
+
+/**
+ * Attrs for the IfComponent.
+ */
+export interface IfComponentAttrs {
+  column: NewColumn;
+  onchange: () => void;
+}
+
+/**
+ * Component for configuring an IF/ELSE computed column.
+ * Allows defining multiple IF/ELSE IF conditions with then values,
+ * and an optional ELSE clause.
+ */
+export class IfComponent implements m.ClassComponent<IfComponentAttrs> {
+  view({attrs}: m.Vnode<IfComponentAttrs>) {
+    const {column, onchange} = attrs;
+
+    if (column.type !== 'if') {
+      return m('');
+    }
+
+    const setIfCondition = (index: number, newIf: string) => {
+      if (!column.clauses) return;
+      column.clauses[index].if = newIf;
+      this.updateExpression(column);
+      onchange();
+    };
+
+    const setThenValue = (index: number, newThen: string) => {
+      if (!column.clauses) return;
+      column.clauses[index].then = newThen;
+      this.updateExpression(column);
+      onchange();
+    };
+
+    const setElseValue = (newElse: string) => {
+      column.elseValue = newElse;
+      this.updateExpression(column);
+      onchange();
+    };
+
+    const addElseIf = () => {
+      if (!column.clauses) {
+        column.clauses = [];
+      }
+      column.clauses.push({if: '', then: ''});
+      this.updateExpression(column);
+      onchange();
+    };
+
+    const removeClause = (index: number) => {
+      if (!column.clauses) return;
+      column.clauses.splice(index, 1);
+      this.updateExpression(column);
+      onchange();
+    };
+
+    const hasElse = column.elseValue !== undefined;
+
+    return m('.pf-inline-edit-list', [
+      ...(column.clauses || []).map((c, i) =>
+        m(FormListItem, {
+          item: c,
+          isValid: c.if.trim() !== '' && c.then.trim() !== '',
+          onUpdate: () => {},
+          onRemove: () => removeClause(i),
+          children: [
+            m(OutlinedField, {
+              label: i === 0 ? 'If' : 'Else If',
+              placeholder: 'condition',
+              value: c.if,
+              oninput: (e: Event) => {
+                setIfCondition(i, (e.target as HTMLInputElement).value);
+              },
+            }),
+            m(OutlinedField, {
+              label: 'Then',
+              placeholder: 'value',
+              value: c.then,
+              oninput: (e: Event) => {
+                setThenValue(i, (e.target as HTMLInputElement).value);
+              },
+            }),
+          ],
+        }),
+      ),
+      hasElse &&
+        m(OutlinedField, {
+          label: 'Else',
+          placeholder: 'value',
+          value: column.elseValue || '',
+          oninput: (e: Event) => {
+            setElseValue((e.target as HTMLInputElement).value);
+          },
+        }),
+      !hasElse &&
+        m(AddItemPlaceholder, {
+          label: 'Add ELSE IF',
+          icon: 'add',
+          onclick: addElseIf,
+        }),
+      !hasElse &&
+        m(AddItemPlaceholder, {
+          label: 'Add ELSE',
+          icon: 'add',
+          onclick: () => {
+            column.elseValue = '';
+            this.updateExpression(column);
+            onchange();
+          },
+        }),
+    ]);
+  }
+
+  private updateExpression(col: NewColumn) {
+    if (col.type !== 'if') {
+      col.expression = '';
+      return;
+    }
+
+    const clausesStr = (col.clauses || [])
+      .filter((c) => c.if.trim() !== '' && c.then.trim() !== '')
+      .map((c) => `WHEN ${c.if} THEN ${c.then}`)
+      .join(' ');
+
+    const elseStr =
+      col.elseValue !== undefined ? `ELSE ${col.elseValue.trim()}` : '';
+
+    if (clausesStr === '' && elseStr === '') {
+      col.expression = '';
+      return;
+    }
+
+    col.expression = `CASE ${clausesStr} ${elseStr} END`;
+  }
+}
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/create_slices_node_unittest.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/create_slices_node_unittest.ts
index 9be0bc3..be92852 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/create_slices_node_unittest.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/create_slices_node_unittest.ts
@@ -13,58 +13,42 @@
 // limitations under the License.
 
 import {CreateSlicesNode} from './create_slices_node';
-import {QueryNode, NodeType} from '../../query_node';
+import {QueryNode} from '../../query_node';
 import {ColumnInfo} from '../column_info';
 import protos from '../../../../protos';
+import {
+  createMockNode,
+  createColumnInfo,
+  createMockStructuredQuery,
+  createNodeIssuesWithQueryError,
+  ColumnType,
+} from '../testing/test_utils';
 
 describe('CreateSlicesNode', () => {
   function createMockPrevNode(id: string, columns: ColumnInfo[]): QueryNode {
-    return {
+    return createMockNode({
       nodeId: id,
-      type: NodeType.kTable,
-      nextNodes: [],
-      finalCols: columns,
-      state: {},
-      validate: () => true,
+      columns,
       getTitle: () => `Mock ${id}`,
-      nodeSpecificModify: () => null,
-      nodeDetails: () => ({content: null}),
-      nodeInfo: () => null,
-      clone: () => createMockPrevNode(id, columns),
-      getStructuredQuery: () => undefined,
-      serializeState: () => ({}),
-    } as QueryNode;
+    });
   }
 
-  function createColumnInfo(
+  function createCol(
     name: string,
-    type:
-      | 'int'
-      | 'double'
-      | 'boolean'
-      | 'string'
-      | 'bytes'
-      | 'timestamp'
-      | 'duration'
-      | 'arg_set_id',
-    checked: boolean = true,
+    type: ColumnType,
+    checked = true,
   ): ColumnInfo {
-    return {
-      name,
-      type,
-      checked,
-      column: {name, type: {kind: type}},
-    };
+    return createColumnInfo(name, type, {checked});
   }
 
   describe('constructor', () => {
     it('should initialize with default values', () => {
       const startsNode = createMockPrevNode('starts', [
-        createColumnInfo('ts', 'timestamp'),
-        createColumnInfo('name', 'string'),
+        createCol('ts', 'timestamp'),
+        createCol('name', 'string'),
       ]);
       const endsNode = createMockPrevNode('ends', [
-        createColumnInfo('ts', 'timestamp'),
+        createCol('ts', 'timestamp'),
       ]);
 
       const createSlicesNode = new CreateSlicesNode({
@@ -96,10 +80,10 @@
 
     it('should accept custom timestamp column names', () => {
       const startsNode = createMockPrevNode('starts', [
-        createColumnInfo('acquire_ts', 'timestamp'),
+        createCol('acquire_ts', 'timestamp'),
       ]);
       const endsNode = createMockPrevNode('ends', [
-        createColumnInfo('release_ts', 'timestamp'),
+        createCol('release_ts', 'timestamp'),
       ]);
 
       const createSlicesNode = new CreateSlicesNode({
@@ -117,7 +101,7 @@
   describe('finalCols', () => {
     it('should return empty array when only starts node is provided', () => {
       const startsNode = createMockPrevNode('starts', [
-        createColumnInfo('ts', 'timestamp'),
+        createCol('ts', 'timestamp'),
       ]);
 
       const createSlicesNode = new CreateSlicesNode({
@@ -132,7 +116,7 @@
 
     it('should return empty array when only ends node is provided', () => {
       const endsNode = createMockPrevNode('ends', [
-        createColumnInfo('ts', 'timestamp'),
+        createCol('ts', 'timestamp'),
       ]);
 
       const createSlicesNode = new CreateSlicesNode({
@@ -147,10 +131,10 @@
 
     it('should return ts and dur columns when both nodes are provided', () => {
       const startsNode = createMockPrevNode('starts', [
-        createColumnInfo('ts', 'timestamp'),
+        createCol('ts', 'timestamp'),
       ]);
       const endsNode = createMockPrevNode('ends', [
-        createColumnInfo('ts', 'timestamp'),
+        createCol('ts', 'timestamp'),
       ]);
 
       const createSlicesNode = new CreateSlicesNode({
@@ -173,13 +157,13 @@
 
     it('should always return the same ts and dur columns regardless of input columns', () => {
       const startsNode = createMockPrevNode('starts', [
-        createColumnInfo('acquire_ts', 'timestamp'),
-        createColumnInfo('lock_id', 'int'),
-        createColumnInfo('thread_name', 'string'),
+        createCol('acquire_ts', 'timestamp'),
+        createCol('lock_id', 'int'),
+        createCol('thread_name', 'string'),
       ]);
       const endsNode = createMockPrevNode('ends', [
-        createColumnInfo('release_ts', 'timestamp'),
-        createColumnInfo('lock_id', 'int'),
+        createCol('release_ts', 'timestamp'),
+        createCol('lock_id', 'int'),
       ]);
 
       const createSlicesNode = new CreateSlicesNode({
@@ -248,7 +232,7 @@
 
     it('should fail when ends timestamp column is empty', () => {
       const startsNode = createMockPrevNode('starts', [
-        createColumnInfo('ts', 'timestamp'),
+        createCol('ts', 'timestamp'),
       ]);
       const endsNode = createMockPrevNode('ends', []);
 
@@ -266,17 +250,16 @@
     });
 
     it('should fail when starts node validation fails', () => {
-      const startsNode = {
-        ...createMockPrevNode('starts', [createColumnInfo('ts', 'timestamp')]),
+      const startsNode = createMockNode({
+        nodeId: 'starts',
+        columns: [createCol('ts', 'timestamp')],
         validate: () => false,
         state: {
-          issues: {
-            queryError: new Error('Starts node has errors'),
-          },
+          issues: createNodeIssuesWithQueryError('Starts node has errors'),
         },
-      } as QueryNode;
+      });
       const endsNode = createMockPrevNode('ends', [
-        createColumnInfo('ts', 'timestamp'),
+        createCol('ts', 'timestamp'),
       ]);
 
       const createSlicesNode = new CreateSlicesNode({
@@ -294,17 +277,16 @@
 
     it('should fail when ends node validation fails', () => {
       const startsNode = createMockPrevNode('starts', [
-        createColumnInfo('ts', 'timestamp'),
+        createCol('ts', 'timestamp'),
       ]);
-      const endsNode = {
-        ...createMockPrevNode('ends', [createColumnInfo('ts', 'timestamp')]),
+      const endsNode = createMockNode({
+        nodeId: 'ends',
+        columns: [createCol('ts', 'timestamp')],
         validate: () => false,
         state: {
-          issues: {
-            queryError: new Error('Ends node has errors'),
-          },
+          issues: createNodeIssuesWithQueryError('Ends node has errors'),
         },
-      } as QueryNode;
+      });
 
       const createSlicesNode = new CreateSlicesNode({
         startsNode,
@@ -321,10 +303,10 @@
 
     it('should fail when starts timestamp column does not exist in starts node', () => {
       const startsNode = createMockPrevNode('starts', [
-        createColumnInfo('other_column', 'int'),
+        createCol('other_column', 'int'),
       ]);
       const endsNode = createMockPrevNode('ends', [
-        createColumnInfo('ts', 'timestamp'),
+        createCol('ts', 'timestamp'),
       ]);
 
       const createSlicesNode = new CreateSlicesNode({
@@ -342,10 +324,10 @@
 
     it('should fail when ends timestamp column does not exist in ends node', () => {
       const startsNode = createMockPrevNode('starts', [
-        createColumnInfo('ts', 'timestamp'),
+        createCol('ts', 'timestamp'),
       ]);
       const endsNode = createMockPrevNode('ends', [
-        createColumnInfo('other_column', 'int'),
+        createCol('other_column', 'int'),
       ]);
 
       const createSlicesNode = new CreateSlicesNode({
@@ -363,10 +345,10 @@
 
     it('should pass validation with valid inputs', () => {
       const startsNode = createMockPrevNode('starts', [
-        createColumnInfo('ts', 'timestamp'),
+        createCol('ts', 'timestamp'),
       ]);
       const endsNode = createMockPrevNode('ends', [
-        createColumnInfo('ts', 'timestamp'),
+        createCol('ts', 'timestamp'),
       ]);
 
       const createSlicesNode = new CreateSlicesNode({
@@ -381,12 +363,12 @@
 
     it('should pass validation with custom timestamp columns', () => {
       const startsNode = createMockPrevNode('starts', [
-        createColumnInfo('acquire_ts', 'timestamp'),
-        createColumnInfo('lock_id', 'int'),
+        createCol('acquire_ts', 'timestamp'),
+        createCol('lock_id', 'int'),
       ]);
       const endsNode = createMockPrevNode('ends', [
-        createColumnInfo('release_ts', 'timestamp'),
-        createColumnInfo('lock_id', 'int'),
+        createCol('release_ts', 'timestamp'),
+        createCol('lock_id', 'int'),
       ]);
 
       const createSlicesNode = new CreateSlicesNode({
@@ -512,12 +494,13 @@
 
     it('should return undefined if starts node has no structured query', () => {
       const startsNode = createMockPrevNode('starts', [
-        createColumnInfo('ts', 'timestamp'),
+        createCol('ts', 'timestamp'),
       ]);
-      const endsNode = {
-        ...createMockPrevNode('ends', [createColumnInfo('ts', 'timestamp')]),
+      const endsNode = createMockNode({
+        nodeId: 'ends',
+        columns: [createCol('ts', 'timestamp')],
         getStructuredQuery: () => new protos.PerfettoSqlStructuredQuery(),
-      } as QueryNode;
+      });
 
       const createSlicesNode = new CreateSlicesNode({
         startsNode,
@@ -530,12 +513,13 @@
     });
 
     it('should return undefined if ends node has no structured query', () => {
-      const startsNode = {
-        ...createMockPrevNode('starts', [createColumnInfo('ts', 'timestamp')]),
+      const startsNode = createMockNode({
+        nodeId: 'starts',
+        columns: [createCol('ts', 'timestamp')],
         getStructuredQuery: () => new protos.PerfettoSqlStructuredQuery(),
-      } as QueryNode;
+      });
       const endsNode = createMockPrevNode('ends', [
-        createColumnInfo('ts', 'timestamp'),
+        createCol('ts', 'timestamp'),
       ]);
 
       const createSlicesNode = new CreateSlicesNode({
@@ -549,18 +533,20 @@
     });
 
     it('should create ExperimentalCreateSlices structured query', () => {
-      const mockSq1 = new protos.PerfettoSqlStructuredQuery();
-      const mockSq2 = new protos.PerfettoSqlStructuredQuery();
+      const mockSq1 = createMockStructuredQuery();
+      const mockSq2 = createMockStructuredQuery();
 
-      const startsNode = {
-        ...createMockPrevNode('starts', [createColumnInfo('ts', 'timestamp')]),
+      const startsNode = createMockNode({
+        nodeId: 'starts',
+        columns: [createCol('ts', 'timestamp')],
         getStructuredQuery: () => mockSq1,
-      } as QueryNode;
+      });
 
-      const endsNode = {
-        ...createMockPrevNode('ends', [createColumnInfo('ts', 'timestamp')]),
+      const endsNode = createMockNode({
+        nodeId: 'ends',
+        columns: [createCol('ts', 'timestamp')],
         getStructuredQuery: () => mockSq2,
-      } as QueryNode;
+      });
 
       const createSlicesNode = new CreateSlicesNode({
         startsNode,
@@ -580,22 +566,20 @@
     });
 
     it('should use custom timestamp column names', () => {
-      const mockSq1 = new protos.PerfettoSqlStructuredQuery();
-      const mockSq2 = new protos.PerfettoSqlStructuredQuery();
+      const mockSq1 = createMockStructuredQuery();
+      const mockSq2 = createMockStructuredQuery();
 
-      const startsNode = {
-        ...createMockPrevNode('starts', [
-          createColumnInfo('acquire_ts', 'timestamp'),
-        ]),
+      const startsNode = createMockNode({
+        nodeId: 'starts',
+        columns: [createCol('acquire_ts', 'timestamp')],
         getStructuredQuery: () => mockSq1,
-      } as QueryNode;
+      });
 
-      const endsNode = {
-        ...createMockPrevNode('ends', [
-          createColumnInfo('release_ts', 'timestamp'),
-        ]),
+      const endsNode = createMockNode({
+        nodeId: 'ends',
+        columns: [createCol('release_ts', 'timestamp')],
         getStructuredQuery: () => mockSq2,
-      } as QueryNode;
+      });
 
       const createSlicesNode = new CreateSlicesNode({
         startsNode,
@@ -612,18 +596,20 @@
     });
 
     it('should set the node id on the structured query', () => {
-      const mockSq1 = new protos.PerfettoSqlStructuredQuery();
-      const mockSq2 = new protos.PerfettoSqlStructuredQuery();
+      const mockSq1 = createMockStructuredQuery();
+      const mockSq2 = createMockStructuredQuery();
 
-      const startsNode = {
-        ...createMockPrevNode('starts', [createColumnInfo('ts', 'timestamp')]),
+      const startsNode = createMockNode({
+        nodeId: 'starts',
+        columns: [createCol('ts', 'timestamp')],
         getStructuredQuery: () => mockSq1,
-      } as QueryNode;
+      });
 
-      const endsNode = {
-        ...createMockPrevNode('ends', [createColumnInfo('ts', 'timestamp')]),
+      const endsNode = createMockNode({
+        nodeId: 'ends',
+        columns: [createCol('ts', 'timestamp')],
         getStructuredQuery: () => mockSq2,
-      } as QueryNode;
+      });
 
       const createSlicesNode = new CreateSlicesNode({
         startsNode,
@@ -638,21 +624,20 @@
     });
 
     it('should handle ts_dur mode for starts input', () => {
-      const mockSq1 = new protos.PerfettoSqlStructuredQuery();
-      const mockSq2 = new protos.PerfettoSqlStructuredQuery();
+      const mockSq1 = createMockStructuredQuery();
+      const mockSq2 = createMockStructuredQuery();
 
-      const startsNode = {
-        ...createMockPrevNode('starts', [
-          createColumnInfo('ts', 'timestamp'),
-          createColumnInfo('dur', 'duration'),
-        ]),
+      const startsNode = createMockNode({
+        nodeId: 'starts',
+        columns: [createCol('ts', 'timestamp'), createCol('dur', 'duration')],
         getStructuredQuery: () => mockSq1,
-      } as QueryNode;
+      });
 
-      const endsNode = {
-        ...createMockPrevNode('ends', [createColumnInfo('ts', 'timestamp')]),
+      const endsNode = createMockNode({
+        nodeId: 'ends',
+        columns: [createCol('ts', 'timestamp')],
         getStructuredQuery: () => mockSq2,
-      } as QueryNode;
+      });
 
       const createSlicesNode = new CreateSlicesNode({
         startsNode,
@@ -682,21 +667,20 @@
     });
 
     it('should handle ts_dur mode for ends input', () => {
-      const mockSq1 = new protos.PerfettoSqlStructuredQuery();
-      const mockSq2 = new protos.PerfettoSqlStructuredQuery();
+      const mockSq1 = createMockStructuredQuery();
+      const mockSq2 = createMockStructuredQuery();
 
-      const startsNode = {
-        ...createMockPrevNode('starts', [createColumnInfo('ts', 'timestamp')]),
+      const startsNode = createMockNode({
+        nodeId: 'starts',
+        columns: [createCol('ts', 'timestamp')],
         getStructuredQuery: () => mockSq1,
-      } as QueryNode;
+      });
 
-      const endsNode = {
-        ...createMockPrevNode('ends', [
-          createColumnInfo('ts', 'timestamp'),
-          createColumnInfo('dur', 'duration'),
-        ]),
+      const endsNode = createMockNode({
+        nodeId: 'ends',
+        columns: [createCol('ts', 'timestamp'), createCol('dur', 'duration')],
         getStructuredQuery: () => mockSq2,
-      } as QueryNode;
+      });
 
       const createSlicesNode = new CreateSlicesNode({
         startsNode,
@@ -726,24 +710,20 @@
     });
 
     it('should handle ts_dur mode for both inputs', () => {
-      const mockSq1 = new protos.PerfettoSqlStructuredQuery();
-      const mockSq2 = new protos.PerfettoSqlStructuredQuery();
+      const mockSq1 = createMockStructuredQuery();
+      const mockSq2 = createMockStructuredQuery();
 
-      const startsNode = {
-        ...createMockPrevNode('starts', [
-          createColumnInfo('ts', 'timestamp'),
-          createColumnInfo('dur', 'duration'),
-        ]),
+      const startsNode = createMockNode({
+        nodeId: 'starts',
+        columns: [createCol('ts', 'timestamp'), createCol('dur', 'duration')],
         getStructuredQuery: () => mockSq1,
-      } as QueryNode;
+      });
 
-      const endsNode = {
-        ...createMockPrevNode('ends', [
-          createColumnInfo('ts', 'timestamp'),
-          createColumnInfo('dur', 'duration'),
-        ]),
+      const endsNode = createMockNode({
+        nodeId: 'ends',
+        columns: [createCol('ts', 'timestamp'), createCol('dur', 'duration')],
         getStructuredQuery: () => mockSq2,
-      } as QueryNode;
+      });
 
       const createSlicesNode = new CreateSlicesNode({
         startsNode,
@@ -896,11 +876,11 @@
     it('should auto-select timestamp column based on type, not name', () => {
       // Create a node with a single timestamp column with a custom name
       const startsNode = createMockPrevNode('starts', [
-        createColumnInfo('custom_timestamp', 'timestamp'),
-        createColumnInfo('name', 'string'),
+        createCol('custom_timestamp', 'timestamp'),
+        createCol('name', 'string'),
       ]);
       const endsNode = createMockPrevNode('ends', [
-        createColumnInfo('another_ts_name', 'timestamp'),
+        createCol('another_ts_name', 'timestamp'),
       ]);
 
       const createSlicesNode = new CreateSlicesNode({
@@ -919,12 +899,12 @@
 
     it('should auto-select duration column based on type, not name', () => {
       const startsNode = createMockPrevNode('starts', [
-        createColumnInfo('my_ts', 'timestamp'),
-        createColumnInfo('my_duration', 'duration'),
+        createCol('my_ts', 'timestamp'),
+        createCol('my_duration', 'duration'),
       ]);
       const endsNode = createMockPrevNode('ends', [
-        createColumnInfo('end_ts', 'timestamp'),
-        createColumnInfo('end_duration', 'duration'),
+        createCol('end_ts', 'timestamp'),
+        createCol('end_duration', 'duration'),
       ]);
 
       const createSlicesNode = new CreateSlicesNode({
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/filter_during_node.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/filter_during_node.ts
index cd4406a..7a581eb 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/filter_during_node.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/filter_during_node.ts
@@ -41,11 +41,16 @@
  *
  * ## Required Columns
  *
- * All inputs (primary and filter intervals) must have:
+ * Primary input must have:
  *   - id: Unique identifier for the interval
  *   - ts: Timestamp (start time)
  *   - dur: Duration
  *
+ * Filter intervals input must have:
+ *   - ts: Timestamp (start time)
+ *   - dur: Duration
+ *   - id: (optional) If not present, a dummy id of 0 will be used
+ *
  * ## Example Use Cases
  *
  * - Filter CPU slices to only those during app startup
@@ -270,7 +275,7 @@
               icon: 'link_off',
               title: 'No filter intervals connected',
               detail:
-                'Connect a node to the left port that provides intervals (must have id, ts, dur columns).',
+                'Connect a node to the left port that provides intervals (must have ts, dur columns).',
             }),
           },
         ],
@@ -430,9 +435,12 @@
       return false;
     }
 
-    // Check that the secondary input has required columns
+    // Check that the secondary input has required columns (id is optional)
     const secondaryCols = new Set(secondaryInput.finalCols.map((c) => c.name));
-    const missingSecondary = requiredCols.filter((c) => !secondaryCols.has(c));
+    const requiredSecondaryColumns = ['ts', 'dur'];
+    const missingSecondary = requiredSecondaryColumns.filter(
+      (c) => !secondaryCols.has(c),
+    );
     if (missingSecondary.length > 0) {
       setValidationError(
         this.state,
@@ -472,8 +480,14 @@
 
     // Step 2: Wrap the secondary to select id, ts, dur, and partition columns
     // This avoids column conflicts in the interval intersection while preserving partition columns
+    // If secondary input doesn't have an id column, add a dummy id of 0
+    const secondaryHasId = secondaryInput.finalCols.some(
+      (c) => c.name === 'id',
+    );
     const secondaryColumnsOnly: ColumnSpec[] = [
-      {columnNameOrExpression: 'id'},
+      secondaryHasId
+        ? {columnNameOrExpression: 'id'}
+        : {columnNameOrExpression: '0', alias: 'id'},
       {columnNameOrExpression: 'ts'},
       {columnNameOrExpression: 'dur'},
       // Add partition columns so they're available for interval intersect
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/filter_during_node_unittest.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/filter_during_node_unittest.ts
index b3fae0c..62850a1 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/filter_during_node_unittest.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/filter_during_node_unittest.ts
@@ -268,6 +268,26 @@
 
       expect(node.validate()).toBe(true);
     });
+
+    it('should pass validation when secondary input has no id column', () => {
+      const primaryNode = createMockNode('primary', [
+        createColumnInfo('id', 'INT'),
+        createColumnInfo('ts', 'TIMESTAMP'),
+        createColumnInfo('dur', 'DURATION'),
+        createColumnInfo('name', 'STRING'),
+      ]);
+
+      const secondaryNode = createMockNode('secondary', [
+        createColumnInfo('ts', 'TIMESTAMP'),
+        createColumnInfo('dur', 'DURATION'),
+      ]);
+
+      const node = new FilterDuringNode({});
+      node.primaryInput = primaryNode;
+      node.secondaryInputs.connections.set(0, secondaryNode);
+
+      expect(node.validate()).toBe(true);
+    });
   });
 
   describe('getStructuredQuery', () => {
@@ -412,6 +432,29 @@
       // The query should be created successfully
       expect(sq).toBeDefined();
     });
+
+    it('should generate query when secondary input has no id column', () => {
+      const primaryNode = createMockNode('primary', [
+        createColumnInfo('id', 'INT'),
+        createColumnInfo('ts', 'TIMESTAMP'),
+        createColumnInfo('dur', 'DURATION'),
+        createColumnInfo('name', 'STRING'),
+      ]);
+
+      const secondaryNode = createMockNode('secondary', [
+        createColumnInfo('ts', 'TIMESTAMP'),
+        createColumnInfo('dur', 'DURATION'),
+      ]);
+
+      const node = new FilterDuringNode({});
+      node.primaryInput = primaryNode;
+      node.secondaryInputs.connections.set(0, secondaryNode);
+
+      const sq = node.getStructuredQuery();
+
+      expect(sq).toBeDefined();
+      expect(sq?.id).toBe(node.nodeId);
+    });
   });
 
   describe('serializeState', () => {
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/filter_node_unittest.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/filter_node_unittest.ts
index ec91464..52d2a13 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/filter_node_unittest.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/filter_node_unittest.ts
@@ -14,75 +14,28 @@
 
 import {FilterNode} from './filter_node';
 import {ModifyColumnsNode} from './modify_columns_node';
-import {QueryNode, NodeType} from '../../query_node';
-import {ColumnInfo} from '../column_info';
 import {UIFilter} from '../operations/filter';
+import {
+  createMockSourceNode,
+  createColumnInfo,
+  connectNodes,
+} from '../testing/test_utils';
 
 describe('FilterNode', () => {
-  function createMockTableNode(): QueryNode {
-    return {
-      nodeId: 'mock-table',
-      type: NodeType.kTable,
-      nextNodes: [],
-      finalCols: [
-        {
-          name: 'id',
-          type: 'INT',
-          checked: true,
-          column: {name: 'id', type: {kind: 'int'}},
-        },
-        {
-          name: 'name',
-          type: 'STRING',
-          checked: true,
-          column: {name: 'name', type: {kind: 'string'}},
-        },
-        {
-          name: 'value',
-          type: 'INT',
-          checked: true,
-          column: {name: 'value', type: {kind: 'int'}},
-        },
-      ],
-      state: {},
-      validate: () => true,
-      getTitle: () => 'Mock Table',
-      nodeSpecificModify: () => ({sections: []}),
-      nodeDetails: () => ({content: null}),
-      nodeInfo: () => null,
-      clone: () => createMockTableNode(),
-      getStructuredQuery: () => undefined,
-      serializeState: () => ({}),
-    } as QueryNode;
-  }
-
-  function createColumnInfo(name: string, type: string): ColumnInfo {
-    return {
-      name,
-      type,
-      checked: true,
-      column: {name, type: {kind: type.toLowerCase() as 'int' | 'string'}},
-    };
-  }
-
   describe('filter invalidation when columns are aliased', () => {
     it('should mark filter as invalid when column is aliased in modify columns node', () => {
       // Create a table source
-      const tableNode = createMockTableNode();
+      const tableNode = createMockSourceNode('mock-table');
 
       // Create a ModifyColumnsNode that aliases 'name' to 'full_name'
       const modifyNode = new ModifyColumnsNode({
         selectedColumns: [
-          createColumnInfo('id', 'INT'),
-          {
-            ...createColumnInfo('name', 'STRING'),
-            alias: 'full_name',
-          },
-          createColumnInfo('value', 'INT'),
+          createColumnInfo('id', 'int'),
+          createColumnInfo('name', 'string', {alias: 'full_name'}),
+          createColumnInfo('value', 'int'),
         ],
       });
-      tableNode.nextNodes.push(modifyNode);
-      modifyNode.primaryInput = tableNode;
+      connectNodes(tableNode, modifyNode);
 
       // Create a FilterNode that filters on 'name' (the original column name)
       const filterNode = new FilterNode({
@@ -95,8 +48,7 @@
           } as UIFilter,
         ],
       });
-      modifyNode.nextNodes.push(filterNode);
-      filterNode.primaryInput = modifyNode;
+      connectNodes(modifyNode, filterNode);
 
       // The filter should be invalid because 'name' doesn't exist in finalCols
       // (it's been aliased to 'full_name')
@@ -133,21 +85,17 @@
 
     it('should mark filter as invalid when column is unchecked in modify columns node', () => {
       // Create a table source
-      const tableNode = createMockTableNode();
+      const tableNode = createMockSourceNode('mock-table');
 
       // Create a ModifyColumnsNode that unchecks 'name'
       const modifyNode = new ModifyColumnsNode({
         selectedColumns: [
-          createColumnInfo('id', 'INT'),
-          {
-            ...createColumnInfo('name', 'STRING'),
-            checked: false, // Column is unchecked
-          },
-          createColumnInfo('value', 'INT'),
+          createColumnInfo('id', 'int'),
+          createColumnInfo('name', 'string', {checked: false}),
+          createColumnInfo('value', 'int'),
         ],
       });
-      tableNode.nextNodes.push(modifyNode);
-      modifyNode.primaryInput = tableNode;
+      connectNodes(tableNode, modifyNode);
 
       // Create a FilterNode that filters on 'name'
       const filterNode = new FilterNode({
@@ -160,8 +108,7 @@
           } as UIFilter,
         ],
       });
-      modifyNode.nextNodes.push(filterNode);
-      filterNode.primaryInput = modifyNode;
+      connectNodes(modifyNode, filterNode);
 
       // The filter should be invalid because 'name' doesn't exist in finalCols
       const sourceCols = filterNode.sourceCols;
@@ -189,21 +136,17 @@
 
     it('should keep filter valid when column is aliased but filter uses new name', () => {
       // Create a table source
-      const tableNode = createMockTableNode();
+      const tableNode = createMockSourceNode('mock-table');
 
       // Create a ModifyColumnsNode that aliases 'name' to 'full_name'
       const modifyNode = new ModifyColumnsNode({
         selectedColumns: [
-          createColumnInfo('id', 'INT'),
-          {
-            ...createColumnInfo('name', 'STRING'),
-            alias: 'full_name',
-          },
-          createColumnInfo('value', 'INT'),
+          createColumnInfo('id', 'int'),
+          createColumnInfo('name', 'string', {alias: 'full_name'}),
+          createColumnInfo('value', 'int'),
         ],
       });
-      tableNode.nextNodes.push(modifyNode);
-      modifyNode.primaryInput = tableNode;
+      connectNodes(tableNode, modifyNode);
 
       // Create a FilterNode that filters on 'full_name' (the aliased name)
       const filterNode = new FilterNode({
@@ -216,8 +159,7 @@
           } as UIFilter,
         ],
       });
-      modifyNode.nextNodes.push(filterNode);
-      filterNode.primaryInput = modifyNode;
+      connectNodes(modifyNode, filterNode);
 
       // The filter should be valid because 'full_name' exists in finalCols
       const sourceCols = filterNode.sourceCols;
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/interval_intersect_node_unittest.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/interval_intersect_node_unittest.ts
index fea2fcb..901472f 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/interval_intersect_node_unittest.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/interval_intersect_node_unittest.ts
@@ -14,30 +14,21 @@
 
 import {IntervalIntersectNode} from './interval_intersect_node';
 import {ModifyColumnsNode} from './modify_columns_node';
-import {QueryNode, NodeType, notifyNextNodes} from '../../query_node';
+import {QueryNode, notifyNextNodes} from '../../query_node';
 import {ColumnInfo} from '../column_info';
 import {
   PerfettoSqlType,
   PerfettoSqlTypes,
 } from '../../../../trace_processor/perfetto_sql_type';
+import {createMockNode} from '../testing/test_utils';
 
 describe('IntervalIntersectNode', () => {
   function createMockPrevNode(id: string, columns: ColumnInfo[]): QueryNode {
-    return {
+    return createMockNode({
       nodeId: id,
-      type: NodeType.kTable,
-      nextNodes: [],
-      finalCols: columns,
-      state: {},
-      validate: () => true,
+      columns,
       getTitle: () => `Mock ${id}`,
-      nodeSpecificModify: () => null,
-      nodeDetails: () => ({content: null}),
-      nodeInfo: () => null,
-      clone: () => createMockPrevNode(id, columns),
-      getStructuredQuery: () => undefined,
-      serializeState: () => ({}),
-    } as QueryNode;
+    });
   }
 
   function createColumnInfo(
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/join_node.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/join_node.ts
index 94dc4dd..6365e91 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/join_node.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/join_node.ts
@@ -22,22 +22,19 @@
   getSecondaryInput,
 } from '../../query_node';
 import protos from '../../../../protos';
-import {ColumnInfo} from '../column_info';
+import {ColumnInfo, newColumnInfoList} from '../column_info';
 import {Callout} from '../../../../widgets/callout';
 import {NodeIssues} from '../node_issues';
-import {TextInput} from '../../../../widgets/text_input';
-import {TabStrip} from '../../../../widgets/tabs';
-import {Select} from '../../../../widgets/select';
-import {Editor} from '../../../../widgets/editor';
 import {Switch} from '../../../../widgets/switch';
 import {
   StructuredQueryBuilder,
   JoinCondition,
 } from '../structured_query_builder';
 import {loadNodeDoc} from '../node_doc_loader';
-import {FormRow} from '../widgets';
 import {NodeModifyAttrs, NodeDetailsAttrs} from '../node_explorer_types';
-import {NodeTitle, ColumnName} from '../node_styling_widgets';
+import {NodeTitle} from '../node_styling_widgets';
+import {JoinConditionSelector, JoinConditionDisplay} from '../join_widgets';
+import {ResizableSqlEditor} from '../widgets';
 
 export interface JoinSerializedState {
   leftNodeId: string;
@@ -50,6 +47,18 @@
   rightColumn?: string;
   sqlExpression?: string;
   comment?: string;
+  leftColumns?: {
+    name: string;
+    type: string;
+    checked: boolean;
+    alias?: string;
+  }[];
+  rightColumns?: {
+    name: string;
+    type: string;
+    checked: boolean;
+    alias?: string;
+  }[];
 }
 
 export interface JoinNodeState extends QueryNodeState {
@@ -62,6 +71,9 @@
   leftColumn: string;
   rightColumn: string;
   sqlExpression: string;
+  // Column selections from left and right sources with checked/alias state
+  leftColumns?: ColumnInfo[];
+  rightColumns?: ColumnInfo[];
 }
 
 export class JoinNode implements QueryNode {
@@ -80,63 +92,20 @@
   }
 
   get finalCols(): ColumnInfo[] {
-    // Both nodes must be connected for join to produce columns
-    if (!this.leftNode || !this.rightNode) {
-      return [];
-    }
-
-    const leftCols = this.leftNode.finalCols;
-    const rightCols = this.rightNode.finalCols;
-
+    // Return only checked columns from both left and right sources
     const result: ColumnInfo[] = [];
-    const seenColumns = new Set<string>();
 
-    // Handle equality condition: if joining on same column name (e.g., id = id),
-    // include it once. Otherwise, handle equality columns separately.
-    if (this.state.conditionType === 'equality') {
-      if (this.state.leftColumn && this.state.rightColumn) {
-        if (this.state.leftColumn === this.state.rightColumn) {
-          // Same column name on both sides (e.g., id = id)
-          // Include it once in the output
-          const equalityCol = leftCols.find(
-            (c) => c.name === this.state.leftColumn,
-          );
-          if (equalityCol) {
-            result.push({...equalityCol, checked: true});
-            seenColumns.add(this.state.leftColumn);
-          }
-        }
-        // If different column names (e.g., id = parent_id), don't add to seenColumns yet
-        // They'll be handled in the deduplication logic below
+    // Add checked columns from left
+    for (const col of this.state.leftColumns ?? []) {
+      if (col.checked) {
+        result.push(col);
       }
     }
 
-    // Identify which columns are duplicated across inputs
-    const columnCounts = new Map<string, number>();
-    for (const col of leftCols) {
-      if (!seenColumns.has(col.name)) {
-        columnCounts.set(col.name, (columnCounts.get(col.name) ?? 0) + 1);
-      }
-    }
-    for (const col of rightCols) {
-      if (!seenColumns.has(col.name)) {
-        columnCounts.set(col.name, (columnCounts.get(col.name) ?? 0) + 1);
-      }
-    }
-
-    // Add only non-duplicated columns from left
-    for (const col of leftCols) {
-      if (!seenColumns.has(col.name) && columnCounts.get(col.name) === 1) {
-        result.push({...col, checked: true});
-        seenColumns.add(col.name);
-      }
-    }
-
-    // Add only non-duplicated columns from right
-    for (const col of rightCols) {
-      if (!seenColumns.has(col.name) && columnCounts.get(col.name) === 1) {
-        result.push({...col, checked: true});
-        seenColumns.add(col.name);
+    // Add checked columns from right
+    for (const col of this.state.rightColumns ?? []) {
+      if (col.checked) {
+        result.push(col);
       }
     }
 
@@ -155,6 +124,8 @@
       leftColumn: state.leftColumn ?? '',
       rightColumn: state.rightColumn ?? '',
       sqlExpression: state.sqlExpression ?? '',
+      leftColumns: state.leftColumns ?? [],
+      rightColumns: state.rightColumns ?? [],
     };
     this.secondaryInputs = {
       connections: new Map(),
@@ -173,6 +144,75 @@
       this.secondaryInputs.connections.set(1, state.rightNode);
     }
     this.nextNodes = [];
+
+    // Initialize column arrays from connected nodes if empty
+    this.updateColumnArrays();
+  }
+
+  onPrevNodesUpdated() {
+    // Update column arrays when input nodes change
+    this.updateColumnArrays();
+  }
+
+  // Update column arrays when nodes change or on initialization
+  private updateColumnArrays() {
+    // Update left columns if left node is connected
+    if (this.leftNode) {
+      const sourceCols = this.leftNode.finalCols;
+      const newLeftColumns = newColumnInfoList(sourceCols);
+
+      // Preserve checked status and aliases for columns that still exist
+      const existingLeftColumns = this.state.leftColumns ?? [];
+      for (const oldCol of existingLeftColumns) {
+        const newCol = newLeftColumns.find(
+          (c) => c.column.name === oldCol.column.name,
+        );
+        if (newCol) {
+          newCol.checked = oldCol.checked;
+          newCol.alias = oldCol.alias;
+        }
+      }
+
+      // Default all to unchecked if this is first initialization
+      if (existingLeftColumns.length === 0) {
+        for (const col of newLeftColumns) {
+          col.checked = false;
+        }
+      }
+
+      this.state.leftColumns = newLeftColumns;
+    } else {
+      this.state.leftColumns = [];
+    }
+
+    // Update right columns if right node is connected
+    if (this.rightNode) {
+      const sourceCols = this.rightNode.finalCols;
+      const newRightColumns = newColumnInfoList(sourceCols);
+
+      // Preserve checked status and aliases for columns that still exist
+      const existingRightColumns = this.state.rightColumns ?? [];
+      for (const oldCol of existingRightColumns) {
+        const newCol = newRightColumns.find(
+          (c) => c.column.name === oldCol.column.name,
+        );
+        if (newCol) {
+          newCol.checked = oldCol.checked;
+          newCol.alias = oldCol.alias;
+        }
+      }
+
+      // Default all to unchecked if this is first initialization
+      if (existingRightColumns.length === 0) {
+        for (const col of newRightColumns) {
+          col.checked = false;
+        }
+      }
+
+      this.state.rightColumns = newRightColumns;
+    } else {
+      this.state.rightColumns = [];
+    }
   }
 
   validate(): boolean {
@@ -231,10 +271,15 @@
       return false;
     }
 
-    // Check if there are any columns to expose after deduplication
-    if (this.finalCols.length === 0) {
+    // Check if there are any columns selected
+    const leftColumns = this.state.leftColumns ?? [];
+    const rightColumns = this.state.rightColumns ?? [];
+    const hasCheckedColumns =
+      leftColumns.some((c) => c.checked) || rightColumns.some((c) => c.checked);
+
+    if (!hasCheckedColumns) {
       this.setValidationError(
-        'No columns to expose. All columns are duplicated across both inputs. Use a Modify Columns node to alias columns in one of the sources.',
+        'No columns selected. Select at least one column from either source.',
       );
       return false;
     }
@@ -262,12 +307,12 @@
 
     if (this.state.conditionType === 'equality') {
       if (this.state.leftColumn && this.state.rightColumn) {
-        content = m(
-          '.pf-exp-join-condition',
-          ColumnName(`${this.state.leftQueryAlias}.${this.state.leftColumn}`),
-          m('span.pf-exp-join-equals', ' = '),
-          ColumnName(`${this.state.rightQueryAlias}.${this.state.rightColumn}`),
-        );
+        content = m(JoinConditionDisplay, {
+          leftAlias: this.state.leftQueryAlias,
+          rightAlias: this.state.rightQueryAlias,
+          leftColumn: this.state.leftColumn,
+          rightColumn: this.state.rightColumn,
+        });
       } else {
         content = m('.pf-exp-node-details-message', 'No condition set');
       }
@@ -288,11 +333,8 @@
     this.validate();
     const error = this.state.issues?.queryError;
 
-    // Get available columns from left and right nodes
-    const leftCols = this.leftNode?.finalCols ?? [];
-    const rightCols = this.rightNode?.finalCols ?? [];
-
     const sections: NodeModifyAttrs['sections'] = [];
+    const bottomRightButtons: NodeModifyAttrs['bottomRightButtons'] = [];
 
     // Add error if present
     if (error) {
@@ -301,150 +343,96 @@
       });
     }
 
-    // Query aliases section
-    sections.push({
-      title: 'Query Aliases',
-      content: [
-        m(
-          FormRow,
-          {label: 'Left Alias:'},
-          m(TextInput, {
-            value: this.state.leftQueryAlias,
-            placeholder: 'e.g., left, t1, base',
-            oninput: (e: Event) => {
-              const target = e.target as HTMLInputElement;
-              this.state.leftQueryAlias = target.value;
-              this.state.onchange?.();
-            },
-          }),
-        ),
-        m(
-          FormRow,
-          {label: 'Right Alias:'},
-          m(TextInput, {
-            value: this.state.rightQueryAlias,
-            placeholder: 'e.g., right, t2, other',
-            oninput: (e: Event) => {
-              const target = e.target as HTMLInputElement;
-              this.state.rightQueryAlias = target.value;
-              this.state.onchange?.();
-            },
-          }),
-        ),
-      ],
-    });
-
     // Join type section
     sections.push({
       title: 'Join Type',
-      content: m(
-        FormRow,
-        {label: 'Left Join:'},
-        m(Switch, {
-          checked: this.state.joinType === 'LEFT',
-          onchange: (e: Event) => {
-            const target = e.target as HTMLInputElement;
-            this.state.joinType = target.checked ? 'LEFT' : 'INNER';
-            this.state.onchange?.();
-          },
-        }),
-      ),
+      content: m(Switch, {
+        checked: this.state.joinType === 'LEFT',
+        label: 'Left Join',
+        onchange: (e: Event) => {
+          const target = e.target as HTMLInputElement;
+          this.state.joinType = target.checked ? 'LEFT' : 'INNER';
+          this.state.onchange?.();
+        },
+      }),
     });
 
-    // Join condition section
+    // Join condition section with integrated column selection
     sections.push({
-      title: 'Join Condition',
-      content: [
-        m(TabStrip, {
-          tabs: [
-            {key: 'equality', title: 'Equality'},
-            {key: 'freeform', title: 'Freeform SQL'},
-          ],
-          currentTabKey: this.state.conditionType,
-          onTabChange: (key: string) => {
-            this.state.conditionType = key as 'equality' | 'freeform';
-            this.state.onchange?.();
-          },
-        }),
-        m(
-          'div',
-          {style: {paddingTop: '10px'}},
-          this.state.conditionType === 'equality'
-            ? [
-                m(
-                  FormRow,
-                  {label: 'Left Column:'},
-                  m(
-                    Select,
-                    {
-                      onchange: (e: Event) => {
-                        const target = e.target as HTMLSelectElement;
-                        this.state.leftColumn = target.value;
-                        this.state.onchange?.();
-                      },
-                    },
-                    m(
-                      'option',
-                      {disabled: true, selected: !this.state.leftColumn},
-                      'Select column',
-                    ),
-                    leftCols.map((col) =>
-                      m(
-                        'option',
-                        {
-                          value: col.column.name,
-                          selected: col.column.name === this.state.leftColumn,
-                        },
-                        col.column.name,
-                      ),
-                    ),
-                  ),
-                ),
-                m(
-                  FormRow,
-                  {label: 'Right Column:'},
-                  m(
-                    Select,
-                    {
-                      onchange: (e: Event) => {
-                        const target = e.target as HTMLSelectElement;
-                        this.state.rightColumn = target.value;
-                        this.state.onchange?.();
-                      },
-                    },
-                    m(
-                      'option',
-                      {disabled: true, selected: !this.state.rightColumn},
-                      'Select column',
-                    ),
-                    rightCols.map((col) =>
-                      m(
-                        'option',
-                        {
-                          value: col.column.name,
-                          selected: col.column.name === this.state.rightColumn,
-                        },
-                        col.column.name,
-                      ),
-                    ),
-                  ),
-                ),
-              ]
-            : m(Editor, {
-                text: this.state.sqlExpression,
-                language: 'perfetto-sql',
-                onUpdate: (text: string) => {
-                  this.state.sqlExpression = text;
+      content:
+        this.state.conditionType === 'equality'
+          ? m(JoinConditionSelector, {
+              leftLabel: 'Left',
+              rightLabel: 'Right',
+              leftColumns: this.state.leftColumns ?? [],
+              rightColumns: this.state.rightColumns ?? [],
+              leftColumn: this.state.leftColumn,
+              rightColumn: this.state.rightColumn,
+              onLeftColumnChange: (columnName: string) => {
+                this.state.leftColumn = columnName;
+                this.state.onchange?.();
+              },
+              onRightColumnChange: (columnName: string) => {
+                this.state.rightColumn = columnName;
+                this.state.onchange?.();
+              },
+              onLeftColumnToggle: (index: number, checked: boolean) => {
+                if (this.state.leftColumns) {
+                  this.state.leftColumns[index].checked = checked;
                   this.state.onchange?.();
-                },
-              }),
-        ),
-      ],
+                }
+              },
+              onRightColumnToggle: (index: number, checked: boolean) => {
+                if (this.state.rightColumns) {
+                  this.state.rightColumns[index].checked = checked;
+                  this.state.onchange?.();
+                }
+              },
+              onLeftColumnAlias: (index: number, alias: string) => {
+                if (this.state.leftColumns) {
+                  this.state.leftColumns[index].alias =
+                    alias.trim() === '' ? undefined : alias;
+                  this.state.onchange?.();
+                }
+              },
+              onRightColumnAlias: (index: number, alias: string) => {
+                if (this.state.rightColumns) {
+                  this.state.rightColumns[index].alias =
+                    alias.trim() === '' ? undefined : alias;
+                  this.state.onchange?.();
+                }
+              },
+            })
+          : m(ResizableSqlEditor, {
+              sql: this.state.sqlExpression,
+              onUpdate: (text: string) => {
+                this.state.sqlExpression = text;
+                this.state.onchange?.();
+              },
+            }),
+    });
+
+    // Mode switch button
+    bottomRightButtons.push({
+      label:
+        this.state.conditionType === 'equality'
+          ? 'Switch to freeform SQL'
+          : 'Switch to equality',
+      icon: this.state.conditionType === 'equality' ? 'code' : 'view_column',
+      onclick: () => {
+        this.state.conditionType =
+          this.state.conditionType === 'equality' ? 'freeform' : 'equality';
+        // Disable auto-execute in freeform SQL mode
+        this.state.autoExecute = this.state.conditionType === 'equality';
+        this.state.onchange?.();
+      },
+      compact: true,
     });
 
     return {
       info: 'Combines rows from exactly two inputs side-by-side by matching on a join key. Each row from the first input is matched with rows from the second input where the join column values are equal.',
       sections,
+      bottomRightButtons,
     };
   }
 
@@ -460,6 +448,12 @@
       leftColumn: this.state.leftColumn,
       rightColumn: this.state.rightColumn,
       sqlExpression: this.state.sqlExpression,
+      leftColumns: this.state.leftColumns
+        ? newColumnInfoList(this.state.leftColumns)
+        : undefined,
+      rightColumns: this.state.rightColumns
+        ? newColumnInfoList(this.state.rightColumns)
+        : undefined,
     };
     return new JoinNode(stateCopy);
   }
@@ -492,10 +486,13 @@
     if (sq === undefined) return undefined;
 
     // Add select_columns to explicitly specify which columns to return
-    // This ensures we only expose the clean, well-defined columns from finalCols
+    // Include aliases if specified
     sq.selectColumns = this.finalCols.map((col) => {
       const selectCol = new protos.PerfettoSqlStructuredQuery.SelectColumn();
-      selectCol.columnNameOrExpression = col.name;
+      selectCol.columnNameOrExpression = col.column.name;
+      if (col.alias) {
+        selectCol.alias = col.alias;
+      }
       return selectCol;
     });
 
@@ -513,6 +510,18 @@
       leftColumn: this.state.leftColumn,
       rightColumn: this.state.rightColumn,
       sqlExpression: this.state.sqlExpression,
+      leftColumns: (this.state.leftColumns ?? []).map((c) => ({
+        name: c.name,
+        type: c.type,
+        checked: c.checked,
+        alias: c.alias,
+      })),
+      rightColumns: (this.state.rightColumns ?? []).map((c) => ({
+        name: c.name,
+        type: c.type,
+        checked: c.checked,
+        alias: c.alias,
+      })),
     };
   }
 
@@ -525,6 +534,22 @@
       leftColumn: state.leftColumn ?? '',
       rightColumn: state.rightColumn ?? '',
       sqlExpression: state.sqlExpression ?? '',
+      leftColumns:
+        state.leftColumns?.map((c) => ({
+          name: c.name,
+          type: c.type,
+          checked: c.checked,
+          column: {name: c.name},
+          alias: c.alias,
+        })) ?? [],
+      rightColumns:
+        state.rightColumns?.map((c) => ({
+          name: c.name,
+          type: c.type,
+          checked: c.checked,
+          column: {name: c.name},
+          alias: c.alias,
+        })) ?? [],
     };
   }
 
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/join_node_unittest.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/join_node_unittest.ts
index 08e0076..9b79922 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/join_node_unittest.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/join_node_unittest.ts
@@ -49,6 +49,18 @@
     };
   }
 
+  // Helper to create pre-checked column arrays for join node state
+  function createCheckedColumns(
+    columns: Array<{name: string; type: string; checked?: boolean}>,
+  ): ColumnInfo[] {
+    return columns.map((c) => ({
+      name: c.name,
+      type: c.type,
+      checked: c.checked ?? true,
+      column: {name: c.name},
+    }));
+  }
+
   describe('constructor', () => {
     it('should initialize with default values', () => {
       const node1 = createMockPrevNode('node1', [
@@ -70,6 +82,8 @@
         leftColumn: 'id',
         rightColumn: 'id',
         sqlExpression: '',
+        leftColumns: undefined,
+        rightColumns: undefined,
       });
 
       expect(joinNode.state.leftQueryAlias).toBe('left');
@@ -94,6 +108,8 @@
         leftColumn: '',
         rightColumn: '',
         sqlExpression: '',
+        leftColumns: undefined,
+        rightColumns: undefined,
       });
 
       expect(joinNode.state.leftQueryAlias).toBe('left');
@@ -117,12 +133,14 @@
         leftColumn: 'id',
         rightColumn: 'id',
         sqlExpression: '',
+        leftColumns: undefined,
+        rightColumns: undefined,
       });
 
       expect(joinNode.finalCols).toEqual([]);
     });
 
-    it('should include equality column once without prefix', () => {
+    it('should return empty when no columns are checked', () => {
       const node1 = createMockPrevNode('node1', [
         createColumnInfo('id', 'INT'),
         createColumnInfo('name', 'STRING'),
@@ -132,6 +150,35 @@
         createColumnInfo('value', 'INT'),
       ]);
 
+      // When leftColumns/rightColumns are undefined, updateColumnArrays()
+      // initializes all columns with checked: false
+      const joinNode = new JoinNode({
+        leftNode: node1,
+        rightNode: node2,
+        leftQueryAlias: 'left',
+        rightQueryAlias: 'right',
+        conditionType: 'equality',
+        joinType: 'INNER',
+        leftColumn: 'id',
+        rightColumn: 'id',
+        sqlExpression: '',
+        leftColumns: undefined,
+        rightColumns: undefined,
+      });
+
+      // All columns default to unchecked, so finalCols should be empty
+      expect(joinNode.finalCols).toEqual([]);
+    });
+
+    it('should return only checked columns from left source', () => {
+      const node1 = createMockPrevNode('node1', [
+        createColumnInfo('id', 'INT'),
+        createColumnInfo('name', 'STRING'),
+      ]);
+      const node2 = createMockPrevNode('node2', [
+        createColumnInfo('value', 'INT'),
+      ]);
+
       const joinNode = new JoinNode({
         leftNode: node1,
         rightNode: node2,
@@ -140,26 +187,29 @@
         conditionType: 'equality',
         joinType: 'INNER',
         leftColumn: 'id',
-        rightColumn: 'id',
+        rightColumn: 'value',
         sqlExpression: '',
+        // Pre-set leftColumns with only 'id' checked
+        leftColumns: createCheckedColumns([
+          {name: 'id', type: 'INT', checked: true},
+          {name: 'name', type: 'STRING', checked: false},
+        ]),
+        rightColumns: createCheckedColumns([
+          {name: 'value', type: 'INT', checked: false},
+        ]),
       });
 
       const finalCols = joinNode.finalCols;
-      const idColumns = finalCols.filter((c: ColumnInfo) => c.name === 'id');
-
-      expect(idColumns.length).toBe(1);
-      expect(idColumns[0].type).toBe('INT');
+      expect(finalCols.length).toBe(1);
+      expect(finalCols[0].name).toBe('id');
     });
 
-    it('should exclude duplicated columns', () => {
+    it('should return only checked columns from right source', () => {
       const node1 = createMockPrevNode('node1', [
         createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
-        createColumnInfo('ts', 'INT64'),
       ]);
       const node2 = createMockPrevNode('node2', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
+        createColumnInfo('parent_id', 'INT'),
         createColumnInfo('value', 'INT'),
       ]);
 
@@ -171,62 +221,26 @@
         conditionType: 'equality',
         joinType: 'INNER',
         leftColumn: 'id',
-        rightColumn: 'id',
+        rightColumn: 'parent_id',
         sqlExpression: '',
+        leftColumns: createCheckedColumns([
+          {name: 'id', type: 'INT', checked: false},
+        ]),
+        rightColumns: createCheckedColumns([
+          {name: 'parent_id', type: 'INT', checked: true},
+          {name: 'value', type: 'INT', checked: true},
+        ]),
       });
 
       const finalCols = joinNode.finalCols;
       const colNames = finalCols.map((c: ColumnInfo) => c.name);
 
-      // Should include 'id' once (equality column)
-      expect(colNames.filter((n: string) => n === 'id').length).toBe(1);
-
-      // Should NOT include 'name' (duplicated, not the equality column)
-      expect(colNames).not.toContain('name');
-
-      // Should include 'ts' (only in left)
-      expect(colNames).toContain('ts');
-
-      // Should include 'value' (only in right)
+      expect(colNames).toContain('parent_id');
       expect(colNames).toContain('value');
+      expect(colNames.length).toBe(2);
     });
 
-    it('should include all non-duplicated columns from both inputs', () => {
-      const node1 = createMockPrevNode('node1', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('left_only_1', 'STRING'),
-        createColumnInfo('left_only_2', 'INT64'),
-      ]);
-      const node2 = createMockPrevNode('node2', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('right_only_1', 'STRING'),
-        createColumnInfo('right_only_2', 'INT64'),
-      ]);
-
-      const joinNode = new JoinNode({
-        leftNode: node1,
-        rightNode: node2,
-        leftQueryAlias: 'left',
-        rightQueryAlias: 'right',
-        conditionType: 'equality',
-        joinType: 'INNER',
-        leftColumn: 'id',
-        rightColumn: 'id',
-        sqlExpression: '',
-      });
-
-      const finalCols = joinNode.finalCols;
-      const colNames = finalCols.map((c: ColumnInfo) => c.name);
-
-      expect(colNames).toContain('id');
-      expect(colNames).toContain('left_only_1');
-      expect(colNames).toContain('left_only_2');
-      expect(colNames).toContain('right_only_1');
-      expect(colNames).toContain('right_only_2');
-      expect(colNames.length).toBe(5);
-    });
-
-    it('should handle equality on different column names', () => {
+    it('should return checked columns from both sources', () => {
       const node1 = createMockPrevNode('node1', [
         createColumnInfo('id', 'INT'),
         createColumnInfo('name', 'STRING'),
@@ -247,99 +261,26 @@
         leftColumn: 'id',
         rightColumn: 'parent_id',
         sqlExpression: '',
+        leftColumns: createCheckedColumns([
+          {name: 'id', type: 'INT', checked: true},
+          {name: 'name', type: 'STRING', checked: false},
+          {name: 'ts', type: 'INT64', checked: true},
+        ]),
+        rightColumns: createCheckedColumns([
+          {name: 'parent_id', type: 'INT', checked: false},
+          {name: 'value', type: 'INT', checked: true},
+        ]),
       });
 
       const finalCols = joinNode.finalCols;
       const colNames = finalCols.map((c: ColumnInfo) => c.name);
 
-      // When joining on different column names (id = parent_id),
-      // both should be included if they're not duplicated
       expect(colNames).toContain('id');
-      expect(colNames).toContain('parent_id');
-      expect(colNames).toContain('name');
       expect(colNames).toContain('ts');
       expect(colNames).toContain('value');
-      expect(colNames.length).toBe(5);
-    });
-
-    it('should handle equality on same column name with all duplicates', () => {
-      // This is the slice-to-slice scenario: joining slice with slice on id = id
-      // When both tables have identical columns and we join on id = id,
-      // we should only get 'id' once, and all other duplicates should be excluded
-      const node1 = createMockPrevNode('node1', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
-        createColumnInfo('ts', 'INT64'),
-      ]);
-      const node2 = createMockPrevNode('node2', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
-        createColumnInfo('ts', 'INT64'),
-      ]);
-
-      const joinNode = new JoinNode({
-        leftNode: node1,
-        rightNode: node2,
-        leftQueryAlias: 'left',
-        rightQueryAlias: 'right',
-        conditionType: 'equality',
-        joinType: 'INNER',
-        leftColumn: 'id',
-        rightColumn: 'id',
-        sqlExpression: '',
-      });
-
-      const finalCols = joinNode.finalCols;
-      const colNames = finalCols.map((c: ColumnInfo) => c.name);
-
-      // Should only include 'id' once (the equality column)
-      expect(colNames).toContain('id');
-      expect(colNames.filter((n: string) => n === 'id').length).toBe(1);
-
-      // Should NOT include 'name' or 'ts' (duplicated across both inputs)
       expect(colNames).not.toContain('name');
-      expect(colNames).not.toContain('ts');
-
-      // Final result should only have the 'id' column
-      expect(colNames.length).toBe(1);
-    });
-
-    it('should not include equality columns in freeform mode', () => {
-      const node1 = createMockPrevNode('node1', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
-        createColumnInfo('ts', 'INT64'),
-      ]);
-      const node2 = createMockPrevNode('node2', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('parent_id', 'INT'),
-        createColumnInfo('value', 'INT'),
-      ]);
-
-      const joinNode = new JoinNode({
-        leftNode: node1,
-        rightNode: node2,
-        leftQueryAlias: 't1',
-        rightQueryAlias: 't2',
-        conditionType: 'freeform',
-        joinType: 'INNER',
-        leftColumn: '',
-        rightColumn: '',
-        sqlExpression: 't1.id = t2.parent_id',
-      });
-
-      const finalCols = joinNode.finalCols;
-      const colNames = finalCols.map((c: ColumnInfo) => c.name);
-
-      // In freeform mode, no columns are treated as equality columns
-      // id is duplicated, so it should be excluded
-      expect(colNames).not.toContain('id');
-
-      // Non-duplicated columns should be included
-      expect(colNames).toContain('name');
-      expect(colNames).toContain('ts');
-      expect(colNames).toContain('parent_id');
-      expect(colNames).toContain('value');
+      expect(colNames).not.toContain('parent_id');
+      expect(colNames.length).toBe(3);
     });
 
     it('should handle empty column lists', () => {
@@ -356,18 +297,19 @@
         leftColumn: '',
         rightColumn: '',
         sqlExpression: '',
+        leftColumns: undefined,
+        rightColumns: undefined,
       });
 
       expect(joinNode.finalCols).toEqual([]);
     });
 
-    it('should set all columns as checked', () => {
+    it('should return columns with checked=true status', () => {
       const node1 = createMockPrevNode('node1', [
         createColumnInfo('id', 'INT'),
         createColumnInfo('name', 'STRING'),
       ]);
       const node2 = createMockPrevNode('node2', [
-        createColumnInfo('id', 'INT'),
         createColumnInfo('value', 'INT'),
       ]);
 
@@ -379,14 +321,60 @@
         conditionType: 'equality',
         joinType: 'INNER',
         leftColumn: 'id',
-        rightColumn: 'id',
+        rightColumn: 'value',
         sqlExpression: '',
+        leftColumns: createCheckedColumns([
+          {name: 'id', type: 'INT', checked: true},
+          {name: 'name', type: 'STRING', checked: true},
+        ]),
+        rightColumns: createCheckedColumns([
+          {name: 'value', type: 'INT', checked: true},
+        ]),
       });
 
       const finalCols = joinNode.finalCols;
 
       expect(finalCols.every((c) => c.checked === true)).toBe(true);
     });
+
+    it('should preserve column aliases in finalCols', () => {
+      const node1 = createMockPrevNode('node1', [
+        createColumnInfo('id', 'INT'),
+      ]);
+      const node2 = createMockPrevNode('node2', [
+        createColumnInfo('id', 'INT'),
+      ]);
+
+      const leftCols = createCheckedColumns([
+        {name: 'id', type: 'INT', checked: true},
+      ]);
+      leftCols[0].alias = 'left_id';
+
+      const rightCols = createCheckedColumns([
+        {name: 'id', type: 'INT', checked: true},
+      ]);
+      rightCols[0].alias = 'right_id';
+
+      const joinNode = new JoinNode({
+        leftNode: node1,
+        rightNode: node2,
+        leftQueryAlias: 'left',
+        rightQueryAlias: 'right',
+        conditionType: 'equality',
+        joinType: 'INNER',
+        leftColumn: 'id',
+        rightColumn: 'id',
+        sqlExpression: '',
+        leftColumns: leftCols,
+        rightColumns: rightCols,
+      });
+
+      const finalCols = joinNode.finalCols;
+
+      expect(finalCols.length).toBe(2);
+      expect(finalCols[0].alias).toBe('left_id');
+      expect(finalCols[1].alias).toBe('right_id');
+    });
   });
 
   describe('validation', () => {
@@ -403,6 +391,8 @@
         leftColumn: 'id',
         rightColumn: 'id',
         sqlExpression: '',
+        leftColumns: undefined,
+        rightColumns: undefined,
       });
 
       expect(joinNode.validate()).toBe(false);
@@ -411,7 +401,7 @@
       );
     });
 
-    it('should pass when aliases are set by constructor defaults', () => {
+    it('should pass when aliases are set by constructor defaults and columns selected', () => {
       const node1 = createMockPrevNode('node1', [
         createColumnInfo('id', 'INT'),
       ]);
@@ -429,6 +419,13 @@
         leftColumn: 'id',
         rightColumn: 'id',
         sqlExpression: '',
+        // Provide checked columns for validation to pass
+        leftColumns: createCheckedColumns([
+          {name: 'id', type: 'INT', checked: true},
+        ]),
+        rightColumns: createCheckedColumns([
+          {name: 'id', type: 'INT', checked: false},
+        ]),
       });
 
       // Constructor sets default aliases to 'left' and 'right', so this should pass
@@ -449,6 +446,8 @@
         leftColumn: '',
         rightColumn: '',
         sqlExpression: '',
+        leftColumns: undefined,
+        rightColumns: undefined,
       });
 
       expect(joinNode.validate()).toBe(false);
@@ -471,6 +470,8 @@
         leftColumn: '',
         rightColumn: '',
         sqlExpression: '',
+        leftColumns: undefined,
+        rightColumns: undefined,
       });
 
       expect(joinNode.validate()).toBe(false);
@@ -479,7 +480,7 @@
       );
     });
 
-    it('should pass validation with valid equality condition', () => {
+    it('should pass validation with valid equality condition and checked columns', () => {
       const node1 = createMockPrevNode('node1', [
         createColumnInfo('id', 'INT'),
       ]);
@@ -497,22 +498,26 @@
         leftColumn: 'id',
         rightColumn: 'id',
         sqlExpression: '',
+        // Provide at least one checked column
+        leftColumns: createCheckedColumns([
+          {name: 'id', type: 'INT', checked: true},
+        ]),
+        rightColumns: createCheckedColumns([
+          {name: 'id', type: 'INT', checked: false},
+        ]),
       });
 
       expect(joinNode.validate()).toBe(true);
     });
 
-    it('should fail when all columns are duplicated', () => {
-      // Freeform mode with all columns duplicated - no equality column special handling
+    it('should fail when no columns are checked', () => {
       const node1 = createMockPrevNode('node1', [
         createColumnInfo('id', 'INT'),
         createColumnInfo('name', 'STRING'),
-        createColumnInfo('ts', 'INT64'),
       ]);
       const node2 = createMockPrevNode('node2', [
         createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
-        createColumnInfo('ts', 'INT64'),
+        createColumnInfo('value', 'INT'),
       ]);
 
       const joinNode = new JoinNode({
@@ -520,23 +525,60 @@
         rightNode: node2,
         leftQueryAlias: 'left',
         rightQueryAlias: 'right',
-        conditionType: 'freeform',
+        conditionType: 'equality',
         joinType: 'INNER',
-        leftColumn: '',
-        rightColumn: '',
-        sqlExpression: 'left.id = right.id',
+        leftColumn: 'id',
+        rightColumn: 'id',
+        sqlExpression: '',
+        // All columns unchecked
+        leftColumns: createCheckedColumns([
+          {name: 'id', type: 'INT', checked: false},
+          {name: 'name', type: 'STRING', checked: false},
+        ]),
+        rightColumns: createCheckedColumns([
+          {name: 'id', type: 'INT', checked: false},
+          {name: 'value', type: 'INT', checked: false},
+        ]),
       });
 
       expect(joinNode.validate()).toBe(false);
       expect(joinNode.state.issues?.queryError?.message).toContain(
-        'No columns to expose',
-      );
-      expect(joinNode.state.issues?.queryError?.message).toContain(
-        'Modify Columns',
+        'No columns selected',
       );
     });
 
-    it('should pass validation with valid freeform condition', () => {
+    it('should fail when columns default to unchecked', () => {
+      // When leftColumns/rightColumns are undefined, columns default to unchecked
+      const node1 = createMockPrevNode('node1', [
+        createColumnInfo('id', 'INT'),
+        createColumnInfo('name', 'STRING'),
+      ]);
+      const node2 = createMockPrevNode('node2', [
+        createColumnInfo('id', 'INT'),
+        createColumnInfo('value', 'INT'),
+      ]);
+
+      const joinNode = new JoinNode({
+        leftNode: node1,
+        rightNode: node2,
+        leftQueryAlias: 'left',
+        rightQueryAlias: 'right',
+        conditionType: 'equality',
+        joinType: 'INNER',
+        leftColumn: 'id',
+        rightColumn: 'id',
+        sqlExpression: '',
+        leftColumns: undefined,
+        rightColumns: undefined,
+      });
+
+      expect(joinNode.validate()).toBe(false);
+      expect(joinNode.state.issues?.queryError?.message).toContain(
+        'No columns selected',
+      );
+    });
+
+    it('should pass validation with valid freeform condition and checked columns', () => {
       const node1 = createMockPrevNode('node1', [
         createColumnInfo('id', 'INT'),
       ]);
@@ -554,6 +596,13 @@
         leftColumn: '',
         rightColumn: '',
         sqlExpression: 't1.id = t2.parent_id',
+        // Provide at least one checked column
+        leftColumns: createCheckedColumns([
+          {name: 'id', type: 'INT', checked: true},
+        ]),
+        rightColumns: createCheckedColumns([
+          {name: 'parent_id', type: 'INT', checked: true},
+        ]),
       });
 
       expect(joinNode.validate()).toBe(true);
@@ -575,6 +624,8 @@
         leftColumn: '',
         rightColumn: '',
         sqlExpression: '',
+        leftColumns: undefined,
+        rightColumns: undefined,
       });
 
       expect(joinNode.getTitle()).toBe('Join');
@@ -596,6 +647,8 @@
         leftColumn: '',
         rightColumn: '',
         sqlExpression: '',
+        leftColumns: undefined,
+        rightColumns: undefined,
       });
 
       const portNames = joinNode.secondaryInputs.portNames;
@@ -622,6 +675,8 @@
         leftColumn: 'id',
         rightColumn: 'id',
         sqlExpression: '',
+        leftColumns: undefined,
+        rightColumns: undefined,
       });
 
       const cloned = joinNode.clone() as JoinNode;
@@ -648,6 +703,8 @@
         leftColumn: 'id',
         rightColumn: 'id',
         sqlExpression: '',
+        leftColumns: undefined,
+        rightColumns: undefined,
       });
 
       const cloned = joinNode.clone() as JoinNode;
@@ -674,6 +731,8 @@
         leftColumn: '',
         rightColumn: '',
         sqlExpression: '',
+        leftColumns: undefined,
+        rightColumns: undefined,
       });
 
       expect(joinNode.getStructuredQuery()).toBeUndefined();
@@ -710,6 +769,15 @@
         leftColumn: 'id',
         rightColumn: 'id',
         sqlExpression: '',
+        // Provide checked columns
+        leftColumns: createCheckedColumns([
+          {name: 'id', type: 'INT', checked: true},
+          {name: 'name', type: 'STRING', checked: true},
+        ]),
+        rightColumns: createCheckedColumns([
+          {name: 'id', type: 'INT', checked: false},
+          {name: 'value', type: 'INT', checked: true},
+        ]),
       });
 
       const sq = joinNode.getStructuredQuery();
@@ -723,6 +791,7 @@
       const finalColNames = joinNode.finalCols.map((c: ColumnInfo) => c.name);
 
       expect(selectColNames).toEqual(finalColNames);
+      expect(selectColNames).toEqual(['id', 'name', 'value']);
     });
 
     it('should create equality join condition for equality mode', () => {
@@ -750,6 +819,13 @@
         leftColumn: 'id',
         rightColumn: 'id',
         sqlExpression: '',
+        // Provide checked columns
+        leftColumns: createCheckedColumns([
+          {name: 'id', type: 'INT', checked: true},
+        ]),
+        rightColumns: createCheckedColumns([
+          {name: 'id', type: 'INT', checked: false},
+        ]),
       });
 
       const sq = joinNode.getStructuredQuery();
@@ -786,6 +862,13 @@
         leftColumn: '',
         rightColumn: '',
         sqlExpression: 't1.id = t2.parent_id',
+        // Provide checked columns
+        leftColumns: createCheckedColumns([
+          {name: 'id', type: 'INT', checked: true},
+        ]),
+        rightColumns: createCheckedColumns([
+          {name: 'parent_id', type: 'INT', checked: true},
+        ]),
       });
 
       const sq = joinNode.getStructuredQuery();
@@ -820,6 +903,8 @@
         leftColumn: 'id',
         rightColumn: 'id',
         sqlExpression: '',
+        leftColumns: undefined,
+        rightColumns: undefined,
       });
 
       const serialized = joinNode.serializeState();
@@ -845,6 +930,8 @@
         leftColumn: 'id',
         rightColumn: 'id',
         sqlExpression: '',
+        leftColumns: undefined,
+        rightColumns: undefined,
       };
 
       const state = JoinNode.deserializeState(serialized);
@@ -876,6 +963,8 @@
         leftColumn: 'id',
         rightColumn: 'id',
         sqlExpression: '',
+        leftColumns: undefined,
+        rightColumns: undefined,
       });
 
       expect(connections.leftNode).toBe(node1);
@@ -895,6 +984,8 @@
         leftColumn: 'id',
         rightColumn: 'id',
         sqlExpression: '',
+        leftColumns: undefined,
+        rightColumns: undefined,
       });
 
       expect(connections.leftNode).toBeUndefined();
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/modify_columns_node_unittest.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/modify_columns_node_unittest.ts
index 5b519a6..94be2f3 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/modify_columns_node_unittest.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/modify_columns_node_unittest.ts
@@ -13,45 +13,23 @@
 // limitations under the License.
 
 import {ModifyColumnsNode, ModifyColumnsState} from './modify_columns_node';
-import {QueryNode, NodeType} from '../../query_node';
-import {ColumnInfo} from '../column_info';
+import {QueryNode} from '../../query_node';
+import {
+  createMockNode,
+  createColumnInfo,
+  connectNodes,
+} from '../testing/test_utils';
 
 describe('ModifyColumnsNode', () => {
   function createMockPrevNode(): QueryNode {
-    return {
+    return createMockNode({
       nodeId: 'mock',
-      type: NodeType.kTable,
-      nextNodes: [],
-      finalCols: [
-        {
-          name: 'id',
-          type: 'INT',
-          checked: true,
-          column: {name: 'id'},
-        },
-        {
-          name: 'status',
-          type: 'STRING',
-          checked: true,
-          column: {name: 'status'},
-        },
-        {
-          name: 'value',
-          type: 'INT',
-          checked: true,
-          column: {name: 'value'},
-        },
+      columns: [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('status', 'string'),
+        createColumnInfo('value', 'int'),
       ],
-      state: {},
-      validate: () => true,
-      getTitle: () => 'Mock',
-      nodeSpecificModify: () => null,
-      nodeDetails: () => ({content: null}),
-      nodeInfo: () => null,
-      clone: () => createMockPrevNode(),
-      getStructuredQuery: () => undefined,
-      serializeState: () => ({}),
-    } as QueryNode;
+    });
   }
 
   function createModifyColumnsNodeWithInput(
@@ -62,26 +40,16 @@
     if (inputNode) {
       // Directly set the connection without triggering onPrevNodesUpdated
       // to preserve the test's explicitly provided selectedColumns
-      inputNode.nextNodes.push(node);
-      node.primaryInput = inputNode;
+      connectNodes(inputNode, node);
     }
     return node;
   }
 
-  function createColumnInfo(name: string, type: string): ColumnInfo {
-    return {
-      name,
-      type,
-      checked: true,
-      column: {name},
-    };
-  }
-
   describe('validation', () => {
     it('should validate when at least one column is selected', () => {
       const node = createModifyColumnsNodeWithInput(
         {
-          selectedColumns: [createColumnInfo('id', 'INT')],
+          selectedColumns: [createColumnInfo('id', 'int')],
         },
         createMockPrevNode(),
       );
@@ -106,7 +74,7 @@
     });
 
     it('should allow empty alias (uses original column name)', () => {
-      const col = createColumnInfo('id', 'INT');
+      const col = createColumnInfo('id', 'int');
       col.alias = '';
       const node = createModifyColumnsNodeWithInput(
         {
@@ -120,9 +88,8 @@
     });
 
     it('should fail validation for duplicate column names', () => {
-      const col1 = createColumnInfo('id', 'INT');
-      const col2 = createColumnInfo('status', 'STRING');
-      col2.alias = 'id'; // Same as col1's name
+      const col1 = createColumnInfo('id', 'int');
+      const col2 = createColumnInfo('status', 'string', {alias: 'id'});
       const node = createModifyColumnsNodeWithInput(
         {
           selectedColumns: [col1, col2],
@@ -134,9 +101,10 @@
     });
 
     it('should allow columns with different names', () => {
-      const col1 = createColumnInfo('id', 'INT');
-      const col2 = createColumnInfo('status', 'STRING');
-      col2.alias = 'status_renamed';
+      const col1 = createColumnInfo('id', 'int');
+      const col2 = createColumnInfo('status', 'string', {
+        alias: 'status_renamed',
+      });
       const node = createModifyColumnsNodeWithInput(
         {
           selectedColumns: [col1, col2],
@@ -153,8 +121,8 @@
       const node = createModifyColumnsNodeWithInput(
         {
           selectedColumns: [
-            createColumnInfo('id', 'INT'),
-            createColumnInfo('status', 'STRING'),
+            createColumnInfo('id', 'int'),
+            createColumnInfo('status', 'string'),
           ],
         },
         createMockPrevNode(),
@@ -169,9 +137,10 @@
     });
 
     it('should serialize column aliases correctly', () => {
-      const col1 = createColumnInfo('id', 'INT');
-      const col2 = createColumnInfo('status', 'STRING');
-      col2.alias = 'status_renamed';
+      const col1 = createColumnInfo('id', 'int');
+      const col2 = createColumnInfo('status', 'string', {
+        alias: 'status_renamed',
+      });
       const node = createModifyColumnsNodeWithInput(
         {
           selectedColumns: [col1, col2],
@@ -186,9 +155,8 @@
     });
 
     it('should serialize checked status correctly', () => {
-      const col1 = createColumnInfo('id', 'INT');
-      const col2 = createColumnInfo('status', 'STRING');
-      col2.checked = false;
+      const col1 = createColumnInfo('id', 'int');
+      const col2 = createColumnInfo('status', 'string', {checked: false});
       const node = createModifyColumnsNodeWithInput(
         {
           selectedColumns: [col1, col2],
@@ -205,10 +173,9 @@
 
   describe('finalCols computation', () => {
     it('should include only checked columns', () => {
-      const col1 = createColumnInfo('id', 'INT');
-      const col2 = createColumnInfo('status', 'STRING');
-      col2.checked = false;
-      const col3 = createColumnInfo('value', 'INT');
+      const col1 = createColumnInfo('id', 'int');
+      const col2 = createColumnInfo('status', 'string', {checked: false});
+      const col3 = createColumnInfo('value', 'int');
       const node = createModifyColumnsNodeWithInput(
         {
           selectedColumns: [col1, col2, col3],
@@ -224,8 +191,7 @@
     });
 
     it('should use alias as column name in finalCols', () => {
-      const col1 = createColumnInfo('id', 'INT');
-      col1.alias = 'identifier';
+      const col1 = createColumnInfo('id', 'int', {alias: 'identifier'});
       const node = createModifyColumnsNodeWithInput(
         {
           selectedColumns: [col1],
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/sources/timerange_source.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/sources/timerange_source.ts
index 50e62df..9ada49f 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/sources/timerange_source.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/sources/timerange_source.ts
@@ -160,30 +160,41 @@
     };
   }
 
-  private static generateSql(start: time, dur: bigint): string {
-    return `SELECT 0 AS id, ${start} AS ts, ${dur} AS dur`;
-  }
-
   getStructuredQuery(): protos.PerfettoSqlStructuredQuery | undefined {
-    if (!this.validate()) {
-      return undefined;
-    }
-
-    // Type narrowing - validate() already checked that start and end are defined
+    // For dynamic nodes without start/end set, we can still generate a query
+    // that uses trace_start() and trace_end() - the backend handles this.
+    // Only validate for static nodes or when we have explicit values.
     const start = this.state.start;
     const end = this.state.end;
-    if (start === undefined || end === undefined) {
+
+    // If both are set, calculate duration
+    if (start !== undefined && end !== undefined) {
+      if (end < start) {
+        // Invalid range - can't generate query
+        return undefined;
+      }
+      const dur = end - start;
+      return StructuredQueryBuilder.fromTimeRange(start, dur, this.nodeId);
+    }
+
+    // If only start is set, let backend calculate dur from trace_end()
+    if (start !== undefined) {
+      return StructuredQueryBuilder.fromTimeRange(
+        start,
+        undefined,
+        this.nodeId,
+      );
+    }
+
+    // If only end is set without start, we cannot generate a meaningful query
+    if (end !== undefined) {
       return undefined;
     }
 
-    const dur = end - start;
-
-    const sql = TimeRangeSourceNode.generateSql(start, dur);
-
-    return StructuredQueryBuilder.fromSql(
-      sql,
-      [], // no dependencies
-      ['id', 'ts', 'dur'], // column names
+    // If neither is set (dynamic node), let backend use trace bounds
+    return StructuredQueryBuilder.fromTimeRange(
+      undefined,
+      undefined,
       this.nodeId,
     );
   }
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/sources/timerange_source_unittest.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/sources/timerange_source_unittest.ts
index 03ae41f..8c57c56 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/sources/timerange_source_unittest.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/sources/timerange_source_unittest.ts
@@ -194,11 +194,13 @@
       const query = node.getStructuredQuery();
 
       expect(query).toBeDefined();
-      // Query should contain the start, duration calculation
-      expect(query?.sql?.sql).toBe('SELECT 0 AS id, 100 AS ts, 400 AS dur');
+      // Query should use experimentalTimeRange with STATIC mode (0)
+      expect(query?.experimentalTimeRange?.mode).toBe(0); // STATIC
+      expect(query?.experimentalTimeRange?.ts).toBe(100);
+      expect(query?.experimentalTimeRange?.dur).toBe(400);
     });
 
-    it('should return undefined for invalid node', () => {
+    it('should return query with unset ts/dur for node without start/end', () => {
       const node = new TimeRangeSourceNode({
         trace: createMockTrace(),
         isDynamic: false,
@@ -206,7 +208,10 @@
 
       const query = node.getStructuredQuery();
 
-      expect(query).toBeUndefined();
+      // Should return a valid query with DYNAMIC mode - backend will use trace_start()/trace_dur()
+      expect(query).toBeDefined();
+      expect(query?.experimentalTimeRange).toBeDefined();
+      expect(query?.experimentalTimeRange?.mode).toBe(1); // DYNAMIC
     });
 
     it('should handle zero duration', () => {
@@ -220,7 +225,22 @@
       const query = node.getStructuredQuery();
 
       expect(query).toBeDefined();
-      expect(query?.sql?.sql).toBe('SELECT 0 AS id, 100 AS ts, 0 AS dur');
+      expect(query?.experimentalTimeRange?.mode).toBe(0); // STATIC
+      expect(query?.experimentalTimeRange?.ts).toBe(100);
+      expect(query?.experimentalTimeRange?.dur).toBe(0);
+    });
+
+    it('should return undefined when only end is set without start', () => {
+      const node = new TimeRangeSourceNode({
+        trace: createMockTrace(),
+        end: Time.fromRaw(500n),
+        isDynamic: false,
+      });
+
+      const query = node.getStructuredQuery();
+
+      // Cannot generate a query without a start point
+      expect(query).toBeUndefined();
     });
   });
 
@@ -490,7 +510,8 @@
 
       expect(node.validate()).toBe(true);
       const query = node.getStructuredQuery();
-      expect(query?.sql?.sql).toBe('SELECT 0 AS id, 0 AS ts, 1000 AS dur');
+      expect(query?.experimentalTimeRange?.ts).toBe(0);
+      expect(query?.experimentalTimeRange?.dur).toBe(1000);
     });
 
     it('should serialize and deserialize round-trip correctly for static node', () => {
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/union_node_unittest.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/union_node_unittest.ts
index d395f37..ca9cbc1 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/union_node_unittest.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/nodes/union_node_unittest.ts
@@ -13,62 +13,41 @@
 // limitations under the License.
 
 import {UnionNode} from './union_node';
-import {QueryNode, NodeType} from '../../query_node';
+import {QueryNode} from '../../query_node';
 import {ColumnInfo} from '../column_info';
-import protos from '../../../../protos';
+import {
+  createMockNode,
+  createColumnInfo,
+  createMockStructuredQuery,
+} from '../testing/test_utils';
 
 describe('UnionNode', () => {
-  function createMockNode(id: string, columns: ColumnInfo[]): QueryNode {
-    return {
+  function createMockNodeWithSq(id: string, columns: ColumnInfo[]): QueryNode {
+    const sq = createMockStructuredQuery(id);
+    return createMockNode({
       nodeId: id,
-      type: NodeType.kTable,
-      nextNodes: [],
-      finalCols: columns,
-      state: {},
-      validate: () => true,
+      columns,
       getTitle: () => `Mock ${id}`,
-      nodeSpecificModify: () => null,
-      nodeDetails: () => ({content: null}),
-      nodeInfo: () => null,
-      clone: () => createMockNode(id, columns),
-      getStructuredQuery: () => {
-        const sq = new protos.PerfettoSqlStructuredQuery();
-        sq.id = id;
-        return sq;
-      },
-      serializeState: () => ({}),
-    } as QueryNode;
-  }
-
-  function createColumnInfo(
-    name: string,
-    type: string,
-    checked: boolean = true,
-  ): ColumnInfo {
-    return {
-      name,
-      type,
-      checked,
-      column: {name},
-    };
+      getStructuredQuery: () => sq,
+    });
   }
 
   describe('constructor', () => {
     it('should initialize with default values', () => {
-      const node1 = createMockNode('node1', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
+      const node1 = createMockNodeWithSq('node1', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('name', 'string'),
       ]);
-      const node2 = createMockNode('node2', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
+      const node2 = createMockNodeWithSq('node2', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('name', 'string'),
       ]);
 
       const unionNode = new UnionNode({
         inputNodes: [node1, node2],
         selectedColumns: [
-          createColumnInfo('id', 'INT'),
-          createColumnInfo('name', 'STRING'),
+          createColumnInfo('id', 'int'),
+          createColumnInfo('name', 'string'),
         ],
       });
 
@@ -79,9 +58,9 @@
     });
 
     it('should initialize connections from inputNodes', () => {
-      const node1 = createMockNode('node1', []);
-      const node2 = createMockNode('node2', []);
-      const node3 = createMockNode('node3', []);
+      const node1 = createMockNodeWithSq('node1', []);
+      const node2 = createMockNodeWithSq('node2', []);
+      const node3 = createMockNodeWithSq('node3', []);
 
       const unionNode = new UnionNode({
         inputNodes: [node1, node2, node3],
@@ -106,9 +85,9 @@
     });
 
     it('should return all columns from single input', () => {
-      const node1 = createMockNode('node1', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
+      const node1 = createMockNodeWithSq('node1', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('name', 'string'),
       ]);
 
       const unionNode = new UnionNode({
@@ -122,15 +101,15 @@
     });
 
     it('should return only common columns between two inputs', () => {
-      const node1 = createMockNode('node1', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
-        createColumnInfo('ts', 'INT64'),
+      const node1 = createMockNodeWithSq('node1', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('name', 'string'),
+        createColumnInfo('ts', 'int'),
       ]);
-      const node2 = createMockNode('node2', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
-        createColumnInfo('value', 'INT'),
+      const node2 = createMockNodeWithSq('node2', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('name', 'string'),
+        createColumnInfo('value', 'int'),
       ]);
 
       const unionNode = new UnionNode({
@@ -144,19 +123,19 @@
     });
 
     it('should return only columns present in all inputs', () => {
-      const node1 = createMockNode('node1', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
-        createColumnInfo('ts', 'INT64'),
+      const node1 = createMockNodeWithSq('node1', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('name', 'string'),
+        createColumnInfo('ts', 'int'),
       ]);
-      const node2 = createMockNode('node2', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
-        createColumnInfo('value', 'INT'),
+      const node2 = createMockNodeWithSq('node2', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('name', 'string'),
+        createColumnInfo('value', 'int'),
       ]);
-      const node3 = createMockNode('node3', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('other', 'STRING'),
+      const node3 = createMockNodeWithSq('node3', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('other', 'string'),
       ]);
 
       const unionNode = new UnionNode({
@@ -170,13 +149,13 @@
     });
 
     it('should return empty array when there are no common columns', () => {
-      const node1 = createMockNode('node1', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
+      const node1 = createMockNodeWithSq('node1', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('name', 'string'),
       ]);
-      const node2 = createMockNode('node2', [
-        createColumnInfo('value', 'INT'),
-        createColumnInfo('ts', 'INT64'),
+      const node2 = createMockNodeWithSq('node2', [
+        createColumnInfo('value', 'int'),
+        createColumnInfo('ts', 'int'),
       ]);
 
       const unionNode = new UnionNode({
@@ -189,13 +168,13 @@
     });
 
     it('should set all columns as checked by default', () => {
-      const node1 = createMockNode('node1', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
+      const node1 = createMockNodeWithSq('node1', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('name', 'string'),
       ]);
-      const node2 = createMockNode('node2', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
+      const node2 = createMockNodeWithSq('node2', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('name', 'string'),
       ]);
 
       const unionNode = new UnionNode({
@@ -210,20 +189,20 @@
 
   describe('finalCols', () => {
     it('should return only checked columns', () => {
-      const node1 = createMockNode('node1', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
+      const node1 = createMockNodeWithSq('node1', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('name', 'string'),
       ]);
-      const node2 = createMockNode('node2', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
+      const node2 = createMockNodeWithSq('node2', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('name', 'string'),
       ]);
 
       const unionNode = new UnionNode({
         inputNodes: [node1, node2],
         selectedColumns: [
-          createColumnInfo('id', 'INT', true),
-          createColumnInfo('name', 'STRING', false),
+          createColumnInfo('id', 'int'),
+          {...createColumnInfo('name', 'string'), checked: false},
         ],
       });
 
@@ -233,12 +212,16 @@
     });
 
     it('should return empty array when no columns are checked', () => {
-      const node1 = createMockNode('node1', [createColumnInfo('id', 'INT')]);
-      const node2 = createMockNode('node2', [createColumnInfo('id', 'INT')]);
+      const node1 = createMockNodeWithSq('node1', [
+        createColumnInfo('id', 'int'),
+      ]);
+      const node2 = createMockNodeWithSq('node2', [
+        createColumnInfo('id', 'int'),
+      ]);
 
       const unionNode = new UnionNode({
         inputNodes: [node1, node2],
-        selectedColumns: [createColumnInfo('id', 'INT', false)],
+        selectedColumns: [{...createColumnInfo('id', 'int'), checked: false}],
       });
 
       expect(unionNode.finalCols).toEqual([]);
@@ -247,27 +230,27 @@
 
   describe('onPrevNodesUpdated', () => {
     it('should update selectedColumns based on new common columns', () => {
-      const node1 = createMockNode('node1', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
+      const node1 = createMockNodeWithSq('node1', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('name', 'string'),
       ]);
-      const node2 = createMockNode('node2', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
+      const node2 = createMockNodeWithSq('node2', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('name', 'string'),
       ]);
 
       const unionNode = new UnionNode({
         inputNodes: [node1, node2],
         selectedColumns: [
-          createColumnInfo('id', 'INT', true),
-          createColumnInfo('name', 'STRING', false),
+          createColumnInfo('id', 'int'),
+          {...createColumnInfo('name', 'string'), checked: false},
         ],
       });
 
       // Update node2 to remove 'name'
-      const updatedNode2 = createMockNode('node2', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('value', 'INT'),
+      const updatedNode2 = createMockNodeWithSq('node2', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('value', 'int'),
       ]);
       unionNode.secondaryInputs.connections.set(1, updatedNode2);
 
@@ -281,23 +264,23 @@
     });
 
     it('should preserve checked status for columns that still exist', () => {
-      const node1 = createMockNode('node1', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
-        createColumnInfo('ts', 'INT64'),
+      const node1 = createMockNodeWithSq('node1', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('name', 'string'),
+        createColumnInfo('ts', 'int'),
       ]);
-      const node2 = createMockNode('node2', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
-        createColumnInfo('ts', 'INT64'),
+      const node2 = createMockNodeWithSq('node2', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('name', 'string'),
+        createColumnInfo('ts', 'int'),
       ]);
 
       const unionNode = new UnionNode({
         inputNodes: [node1, node2],
         selectedColumns: [
-          createColumnInfo('id', 'INT', true),
-          createColumnInfo('name', 'STRING', false),
-          createColumnInfo('ts', 'INT64', true),
+          createColumnInfo('id', 'int'),
+          {...createColumnInfo('name', 'string'), checked: false},
+          createColumnInfo('ts', 'int'),
         ],
       });
 
@@ -325,7 +308,9 @@
 
   describe('validate', () => {
     it('should fail when there are fewer than 2 input nodes', () => {
-      const node1 = createMockNode('node1', [createColumnInfo('id', 'INT')]);
+      const node1 = createMockNodeWithSq('node1', [
+        createColumnInfo('id', 'int'),
+      ]);
 
       const unionNode = new UnionNode({
         inputNodes: [node1],
@@ -339,8 +324,12 @@
     });
 
     it('should fail when there are no common columns', () => {
-      const node1 = createMockNode('node1', [createColumnInfo('id', 'INT')]);
-      const node2 = createMockNode('node2', [createColumnInfo('value', 'INT')]);
+      const node1 = createMockNodeWithSq('node1', [
+        createColumnInfo('id', 'int'),
+      ]);
+      const node2 = createMockNodeWithSq('node2', [
+        createColumnInfo('value', 'int'),
+      ]);
 
       const unionNode = new UnionNode({
         inputNodes: [node1, node2],
@@ -354,7 +343,9 @@
     });
 
     it('should fail when input nodes have disconnected inputs', () => {
-      const node1 = createMockNode('node1', [createColumnInfo('id', 'INT')]);
+      const node1 = createMockNodeWithSq('node1', [
+        createColumnInfo('id', 'int'),
+      ]);
 
       const unionNode = new UnionNode({
         inputNodes: [node1],
@@ -374,20 +365,20 @@
     });
 
     it('should pass validation with valid inputs', () => {
-      const node1 = createMockNode('node1', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
+      const node1 = createMockNodeWithSq('node1', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('name', 'string'),
       ]);
-      const node2 = createMockNode('node2', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
+      const node2 = createMockNodeWithSq('node2', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('name', 'string'),
       ]);
 
       const unionNode = new UnionNode({
         inputNodes: [node1, node2],
         selectedColumns: [
-          createColumnInfo('id', 'INT'),
-          createColumnInfo('name', 'STRING'),
+          createColumnInfo('id', 'int'),
+          createColumnInfo('name', 'string'),
         ],
       });
 
@@ -395,12 +386,16 @@
     });
 
     it('should clear previous errors on successful validation', () => {
-      const node1 = createMockNode('node1', [createColumnInfo('id', 'INT')]);
-      const node2 = createMockNode('node2', [createColumnInfo('id', 'INT')]);
+      const node1 = createMockNodeWithSq('node1', [
+        createColumnInfo('id', 'int'),
+      ]);
+      const node2 = createMockNodeWithSq('node2', [
+        createColumnInfo('id', 'int'),
+      ]);
 
       const unionNode = new UnionNode({
         inputNodes: [node1, node2],
-        selectedColumns: [createColumnInfo('id', 'INT')],
+        selectedColumns: [createColumnInfo('id', 'int')],
       });
 
       // First validate with error
@@ -429,12 +424,16 @@
 
   describe('clone', () => {
     it('should create a deep copy of the node', () => {
-      const node1 = createMockNode('node1', [createColumnInfo('id', 'INT')]);
-      const node2 = createMockNode('node2', [createColumnInfo('id', 'INT')]);
+      const node1 = createMockNodeWithSq('node1', [
+        createColumnInfo('id', 'int'),
+      ]);
+      const node2 = createMockNodeWithSq('node2', [
+        createColumnInfo('id', 'int'),
+      ]);
 
       const unionNode = new UnionNode({
         inputNodes: [node1, node2],
-        selectedColumns: [createColumnInfo('id', 'INT', true)],
+        selectedColumns: [createColumnInfo('id', 'int')],
       });
       unionNode.comment = 'test comment';
 
@@ -447,12 +446,16 @@
     });
 
     it('should not share state with original', () => {
-      const node1 = createMockNode('node1', [createColumnInfo('id', 'INT')]);
-      const node2 = createMockNode('node2', [createColumnInfo('id', 'INT')]);
+      const node1 = createMockNodeWithSq('node1', [
+        createColumnInfo('id', 'int'),
+      ]);
+      const node2 = createMockNodeWithSq('node2', [
+        createColumnInfo('id', 'int'),
+      ]);
 
       const unionNode = new UnionNode({
         inputNodes: [node1, node2],
-        selectedColumns: [createColumnInfo('id', 'INT', true)],
+        selectedColumns: [createColumnInfo('id', 'int')],
       });
 
       const cloned = unionNode.clone() as UnionNode;
@@ -467,7 +470,9 @@
 
   describe('getStructuredQuery', () => {
     it('should return undefined when there are fewer than 2 inputs', () => {
-      const node1 = createMockNode('node1', [createColumnInfo('id', 'INT')]);
+      const node1 = createMockNodeWithSq('node1', [
+        createColumnInfo('id', 'int'),
+      ]);
 
       const unionNode = new UnionNode({
         inputNodes: [node1],
@@ -478,23 +483,29 @@
     });
 
     it('should return undefined when there are no checked columns', () => {
-      const node1 = createMockNode('node1', [createColumnInfo('id', 'INT')]);
-      const node2 = createMockNode('node2', [createColumnInfo('id', 'INT')]);
+      const node1 = createMockNodeWithSq('node1', [
+        createColumnInfo('id', 'int'),
+      ]);
+      const node2 = createMockNodeWithSq('node2', [
+        createColumnInfo('id', 'int'),
+      ]);
 
       const unionNode = new UnionNode({
         inputNodes: [node1, node2],
-        selectedColumns: [createColumnInfo('id', 'INT', false)],
+        selectedColumns: [{...createColumnInfo('id', 'int'), checked: false}],
       });
 
       expect(unionNode.getStructuredQuery()).toBeUndefined();
     });
 
     it('should return undefined when any input node is undefined', () => {
-      const node1 = createMockNode('node1', [createColumnInfo('id', 'INT')]);
+      const node1 = createMockNodeWithSq('node1', [
+        createColumnInfo('id', 'int'),
+      ]);
 
       const unionNode = new UnionNode({
         inputNodes: [node1],
-        selectedColumns: [createColumnInfo('id', 'INT')],
+        selectedColumns: [createColumnInfo('id', 'int')],
       });
 
       unionNode.secondaryInputs.connections.set(
@@ -506,22 +517,22 @@
     });
 
     it('should create union query with wrapped selects for common columns', () => {
-      const node1 = createMockNode('node1', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
-        createColumnInfo('ts', 'INT64'),
+      const node1 = createMockNodeWithSq('node1', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('name', 'string'),
+        createColumnInfo('ts', 'int'),
       ]);
-      const node2 = createMockNode('node2', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
-        createColumnInfo('value', 'INT'),
+      const node2 = createMockNodeWithSq('node2', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('name', 'string'),
+        createColumnInfo('value', 'int'),
       ]);
 
       const unionNode = new UnionNode({
         inputNodes: [node1, node2],
         selectedColumns: [
-          createColumnInfo('id', 'INT', true),
-          createColumnInfo('name', 'STRING', true),
+          createColumnInfo('id', 'int'),
+          createColumnInfo('name', 'string'),
         ],
       });
 
@@ -534,23 +545,23 @@
     });
 
     it('should only select checked common columns', () => {
-      const node1 = createMockNode('node1', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
-        createColumnInfo('ts', 'INT64'),
+      const node1 = createMockNodeWithSq('node1', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('name', 'string'),
+        createColumnInfo('ts', 'int'),
       ]);
-      const node2 = createMockNode('node2', [
-        createColumnInfo('id', 'INT'),
-        createColumnInfo('name', 'STRING'),
-        createColumnInfo('ts', 'INT64'),
+      const node2 = createMockNodeWithSq('node2', [
+        createColumnInfo('id', 'int'),
+        createColumnInfo('name', 'string'),
+        createColumnInfo('ts', 'int'),
       ]);
 
       const unionNode = new UnionNode({
         inputNodes: [node1, node2],
         selectedColumns: [
-          createColumnInfo('id', 'INT', true),
-          createColumnInfo('name', 'STRING', false), // unchecked
-          createColumnInfo('ts', 'INT64', true),
+          createColumnInfo('id', 'int'),
+          {...createColumnInfo('name', 'string'), checked: false}, // unchecked
+          createColumnInfo('ts', 'int'),
         ],
       });
 
@@ -576,12 +587,16 @@
 
   describe('serializeState', () => {
     it('should serialize all input node IDs and selected columns', () => {
-      const node1 = createMockNode('node1', [createColumnInfo('id', 'INT')]);
-      const node2 = createMockNode('node2', [createColumnInfo('id', 'INT')]);
+      const node1 = createMockNodeWithSq('node1', [
+        createColumnInfo('id', 'int'),
+      ]);
+      const node2 = createMockNodeWithSq('node2', [
+        createColumnInfo('id', 'int'),
+      ]);
 
       const unionNode = new UnionNode({
         inputNodes: [node1, node2],
-        selectedColumns: [createColumnInfo('id', 'INT', true)],
+        selectedColumns: [createColumnInfo('id', 'int')],
       });
       unionNode.comment = 'test comment';
 
@@ -598,7 +613,7 @@
     it('should deserialize state correctly', () => {
       const serialized = {
         unionNodes: ['node1', 'node2'],
-        selectedColumns: [createColumnInfo('id', 'INT', true)],
+        selectedColumns: [createColumnInfo('id', 'int')],
         comment: 'test comment',
       };
 
@@ -612,9 +627,9 @@
 
   describe('deserializeConnections', () => {
     it('should deserialize connections correctly', () => {
-      const node1 = createMockNode('node1', []);
-      const node2 = createMockNode('node2', []);
-      const node3 = createMockNode('node3', []);
+      const node1 = createMockNodeWithSq('node1', []);
+      const node2 = createMockNodeWithSq('node2', []);
+      const node3 = createMockNodeWithSq('node3', []);
       const nodes = new Map([
         ['node1', node1],
         ['node2', node2],
@@ -633,7 +648,7 @@
     });
 
     it('should handle missing nodes gracefully', () => {
-      const node1 = createMockNode('node1', []);
+      const node1 = createMockNodeWithSq('node1', []);
       const nodes = new Map([['node1', node1]]);
 
       const connections = UnionNode.deserializeConnections(nodes, {
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/operations/filter.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/operations/filter.ts
index b2f05e2..111b54d 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/operations/filter.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/operations/filter.ts
@@ -18,7 +18,7 @@
 import {SqlValue} from '../../../../trace_processor/query_result';
 import {ColumnInfo} from '../column_info';
 import protos from '../../../../protos';
-import {DataGridFilter} from '../../../../components/widgets/datagrid/common';
+import {Filter} from '../../../../components/widgets/datagrid/model';
 
 // ============================================================================
 // Filter Type Definitions
@@ -103,7 +103,7 @@
  * @param filter The filter from the DataGrid to normalize
  * @returns Array of UIFilters (single filter unless IN/NOT IN)
  */
-export function normalizeDataGridFilter(filter: DataGridFilter): UIFilter[] {
+export function normalizeDataGridFilter(filter: Filter): UIFilter[] {
   // Handle IN/NOT IN filters by converting to multiple equality filters
   if (filter.op === 'in' || filter.op === 'not in') {
     const values = filter.value as ReadonlyArray<SqlValue>;
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/structured_query_builder.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/structured_query_builder.ts
index c4ff716..1f003a9 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/structured_query_builder.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/structured_query_builder.ts
@@ -426,6 +426,53 @@
   }
 
   /**
+   * Creates a structured query from a time range.
+   * Produces a single-row result with columns: id (always 0), ts, dur.
+   *
+   * Mode is automatically determined:
+   * - STATIC mode: when both ts and dur are provided (fixed values)
+   * - DYNAMIC mode: when ts or dur is missing (uses trace bounds)
+   *
+   * In DYNAMIC mode:
+   * - If ts is not provided, the backend will use trace_start()
+   * - If dur is not provided, the backend will use trace_dur()
+   *
+   * @param ts The start timestamp in nanoseconds (optional)
+   * @param dur The duration in nanoseconds (optional)
+   * @param nodeId The node id to assign
+   * @returns A new structured query for the time range
+   */
+  static fromTimeRange(
+    ts?: bigint,
+    dur?: bigint,
+    nodeId?: string,
+  ): protos.PerfettoSqlStructuredQuery {
+    const sq = new protos.PerfettoSqlStructuredQuery();
+    sq.id = nodeId ?? nextNodeId();
+
+    const timeRange =
+      new protos.PerfettoSqlStructuredQuery.ExperimentalTimeRange();
+
+    // Determine mode: STATIC if both ts and dur are set, DYNAMIC otherwise
+    // Mode enum values: STATIC = 0, DYNAMIC = 1
+    const hasTs = ts !== undefined;
+    const hasDur = dur !== undefined;
+    const isStatic = hasTs && hasDur;
+    timeRange.mode = isStatic ? 0 : 1; // 0 = STATIC, 1 = DYNAMIC
+
+    // Convert bigint to number for protobuf (protobufjs uses number for int64)
+    if (hasTs) {
+      timeRange.ts = Number(ts);
+    }
+    if (hasDur) {
+      timeRange.dur = Number(dur);
+    }
+
+    sq.experimentalTimeRange = timeRange;
+    return sq;
+  }
+
+  /**
    * Creates a structured query with a join operation.
    *
    * @param leftQuery The left query to join (can be a QueryNode or structured query)
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/table_list.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/table_list.ts
index 040515d..54fffcf 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/table_list.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/table_list.ts
@@ -223,7 +223,7 @@
 // It orchestrates the search bar, the list of tables, and handles filtering.
 export class TableList implements m.ClassComponent<TableListAttrs> {
   private selectedTags: Set<string> = new Set();
-  private hideDisabledModules: boolean = false;
+  private hideDisabledModules: boolean = true;
   private onlyShowTimestampedTables: boolean = false;
 
   view({attrs}: m.CVnode<TableListAttrs>) {
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/testing/test_utils.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/testing/test_utils.ts
new file mode 100644
index 0000000..075fd3a
--- /dev/null
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/testing/test_utils.ts
@@ -0,0 +1,504 @@
+// Copyright (C) 2025 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.
+
+/**
+ * Test utilities for the Explore Page query builder tests.
+ *
+ * This module provides common factories and helpers for creating mock nodes,
+ * columns, and assertions used across all node unit tests.
+ */
+
+import {QueryNode, NodeType} from '../../query_node';
+import {ColumnInfo} from '../column_info';
+import {NodeDetailsAttrs} from '../node_explorer_types';
+import {NodeIssues} from '../node_issues';
+import protos from '../../../../protos';
+
+// ============================================================================
+// TYPES
+// ============================================================================
+
+/** Column type strings supported by the test utilities */
+export type ColumnType =
+  | 'int'
+  | 'double'
+  | 'boolean'
+  | 'string'
+  | 'bytes'
+  | 'timestamp'
+  | 'duration'
+  | 'arg_set_id';
+
+/** Options for creating a mock node */
+export interface MockNodeOptions {
+  /** Node ID (default: 'mock-node') */
+  nodeId?: string;
+  /** Node type (default: NodeType.kTable) */
+  type?: NodeType;
+  /** Columns for finalCols (default: empty array) */
+  columns?: ColumnInfo[];
+  /** Custom validate function (default: returns true) */
+  validate?: () => boolean;
+  /** Custom getTitle function (default: returns 'Mock Node') */
+  getTitle?: () => string;
+  /** Custom getStructuredQuery function (default: returns undefined) */
+  getStructuredQuery?: () => protos.PerfettoSqlStructuredQuery | undefined;
+  /** Custom state to merge with default state */
+  state?: Partial<QueryNode['state']>;
+}
+
+/** Options for creating a column info */
+export interface ColumnInfoOptions {
+  /** Whether the column is checked (default: true) */
+  checked?: boolean;
+  /** Optional alias for the column */
+  alias?: string;
+}
+
+// ============================================================================
+// MOCK NODE FACTORY
+// ============================================================================
+
+/**
+ * Creates a mock QueryNode for testing purposes.
+ *
+ * This is the primary factory for creating mock nodes in tests. It provides
+ * sensible defaults while allowing customization of any aspect of the node.
+ *
+ * @example
+ * // Simple mock node with default columns
+ * const node = createMockNode();
+ *
+ * @example
+ * // Mock node with custom columns
+ * const node = createMockNode({
+ *   nodeId: 'source',
+ *   columns: [
+ *     createColumnInfo('id', 'int'),
+ *     createColumnInfo('name', 'string'),
+ *   ],
+ * });
+ *
+ * @example
+ * // Mock node with custom validation
+ * const invalidNode = createMockNode({
+ *   validate: () => false,
+ *   state: { issues: { queryError: new Error('test error') } },
+ * });
+ */
+export function createMockNode(options: MockNodeOptions = {}): QueryNode {
+  const {
+    nodeId = 'mock-node',
+    type = NodeType.kTable,
+    columns = [],
+    validate = () => true,
+    getTitle = () => 'Mock Node',
+    getStructuredQuery = () => undefined,
+    state = {},
+  } = options;
+
+  const node: QueryNode = {
+    nodeId,
+    type,
+    nextNodes: [],
+    finalCols: columns,
+    state: {...state},
+    validate,
+    getTitle,
+    nodeSpecificModify: () => null,
+    nodeDetails: (): NodeDetailsAttrs => ({content: null}),
+    nodeInfo: () => null,
+    clone: () => createMockNode(options),
+    getStructuredQuery,
+    serializeState: () => ({}),
+  };
+
+  return node;
+}
+
+/**
+ * Creates a mock source node with standard table columns (id, name, value).
+ *
+ * This is a convenience function for the most common test scenario where
+ * you need a source node with basic integer and string columns.
+ *
+ * @param nodeId - Optional node ID (default: 'source')
+ */
+export function createMockSourceNode(nodeId = 'source'): QueryNode {
+  return createMockNode({
+    nodeId,
+    columns: STANDARD_TABLE_COLUMNS(),
+  });
+}
+
+/**
+ * Creates a mock node with interval columns (id, ts, dur).
+ *
+ * Useful for testing nodes that work with time intervals like
+ * IntervalIntersect or CreateSlices.
+ *
+ * @param nodeId - Optional node ID (default: 'interval-source')
+ */
+export function createMockIntervalNode(nodeId = 'interval-source'): QueryNode {
+  return createMockNode({
+    nodeId,
+    columns: INTERVAL_COLUMNS(),
+  });
+}
+
+// ============================================================================
+// COLUMN INFO FACTORIES
+// ============================================================================
+
+/**
+ * Creates a ColumnInfo object for testing.
+ *
+ * @param name - Column name
+ * @param type - Column type (e.g., 'int', 'string', 'timestamp')
+ * @param options - Additional options (checked, alias)
+ *
+ * @example
+ * const col = createColumnInfo('id', 'int');
+ *
+ * @example
+ * const aliasedCol = createColumnInfo('name', 'string', { alias: 'full_name' });
+ *
+ * @example
+ * const uncheckedCol = createColumnInfo('hidden', 'int', { checked: false });
+ */
+export function createColumnInfo(
+  name: string,
+  type: ColumnType,
+  options: ColumnInfoOptions = {},
+): ColumnInfo {
+  const {checked = true, alias} = options;
+
+  return {
+    name,
+    type: type.toUpperCase(),
+    checked,
+    column: {name, type: {kind: type}},
+    alias,
+  };
+}
+
+/**
+ * Creates a ColumnInfo with type string format matching the perfetto SQL types.
+ *
+ * This is useful when you need the type string to match exactly what
+ * perfettoSqlTypeToString returns (e.g., 'INT', 'STRING', 'TIMESTAMP').
+ *
+ * @param name - Column name
+ * @param type - Column type in uppercase format
+ * @param options - Additional options (checked, alias)
+ */
+export function createColumnInfoWithTypeString(
+  name: string,
+  type: string,
+  options: ColumnInfoOptions = {},
+): ColumnInfo {
+  const {checked = true, alias} = options;
+  const kind = type.toLowerCase() as ColumnType;
+
+  return {
+    name,
+    type,
+    checked,
+    column: {name, type: {kind}},
+    alias,
+  };
+}
+
+// ============================================================================
+// STANDARD COLUMN PRESETS
+// ============================================================================
+
+/**
+ * Returns standard table columns: id (int), name (string), value (int).
+ *
+ * These are the most commonly used columns in tests for basic operations
+ * like filtering, grouping, and column selection.
+ */
+export function STANDARD_TABLE_COLUMNS(): ColumnInfo[] {
+  return [
+    createColumnInfo('id', 'int'),
+    createColumnInfo('name', 'string'),
+    createColumnInfo('value', 'int'),
+  ];
+}
+
+/**
+ * Returns interval columns: id (int), ts (timestamp), dur (duration).
+ *
+ * These columns are used for testing interval-based operations like
+ * IntervalIntersect, CreateSlices, and time-based filtering.
+ */
+export function INTERVAL_COLUMNS(): ColumnInfo[] {
+  return [
+    createColumnInfo('id', 'int'),
+    createColumnInfo('ts', 'timestamp'),
+    createColumnInfo('dur', 'duration'),
+  ];
+}
+
+/**
+ * Returns extended interval columns: id, ts, dur, name, track_id.
+ *
+ * These columns represent a typical slice table with all common fields.
+ */
+export function SLICE_COLUMNS(): ColumnInfo[] {
+  return [
+    createColumnInfo('id', 'int'),
+    createColumnInfo('ts', 'timestamp'),
+    createColumnInfo('dur', 'duration'),
+    createColumnInfo('name', 'string'),
+    createColumnInfo('track_id', 'int'),
+  ];
+}
+
+// ============================================================================
+// NODE CONNECTION HELPERS
+// ============================================================================
+
+/**
+ * Connects a source node to a target node's primary input.
+ *
+ * This helper manages the bidirectional relationship between nodes:
+ * - Adds target to source's nextNodes
+ * - Sets source as target's primaryInput
+ *
+ * @param source - The node providing data (upstream)
+ * @param target - The node receiving data (downstream)
+ *
+ * @example
+ * const sourceNode = createMockSourceNode();
+ * const filterNode = new FilterNode({ filters: [] });
+ * connectNodes(sourceNode, filterNode);
+ */
+export function connectNodes(source: QueryNode, target: QueryNode): void {
+  source.nextNodes.push(target);
+  target.primaryInput = source;
+}
+
+/**
+ * Connects a source node to a target node's secondary input at a specific port.
+ *
+ * Used for multi-input nodes like Union, Join, and IntervalIntersect.
+ *
+ * @param source - The node providing data
+ * @param target - The multi-input node receiving data
+ * @param port - The port index (default: 0)
+ *
+ * @example
+ * const leftNode = createMockSourceNode('left');
+ * const rightNode = createMockSourceNode('right');
+ * const joinNode = new JoinNode({ ... });
+ * connectSecondary(leftNode, joinNode, 0);
+ * connectSecondary(rightNode, joinNode, 1);
+ */
+export function connectSecondary(
+  source: QueryNode,
+  target: QueryNode,
+  port = 0,
+): void {
+  source.nextNodes.push(target);
+  if (target.secondaryInputs) {
+    target.secondaryInputs.connections.set(port, source);
+  }
+}
+
+/**
+ * Initializes a node chain by calling onPrevNodesUpdated on all nodes.
+ *
+ * This simulates the initialization that happens when nodes are added
+ * to the graph in the actual application.
+ *
+ * @param nodes - Array of nodes in order from source to sink
+ *
+ * @example
+ * const source = createMockSourceNode();
+ * const modify = new ModifyColumnsNode({ selectedColumns: [] });
+ * const filter = new FilterNode({ filters: [] });
+ * connectNodes(source, modify);
+ * connectNodes(modify, filter);
+ * initializeNodeChain([modify, filter]);
+ */
+export function initializeNodeChain(nodes: QueryNode[]): void {
+  for (const node of nodes) {
+    node.onPrevNodesUpdated?.();
+  }
+}
+
+// ============================================================================
+// ASSERTION HELPERS
+// ============================================================================
+
+/**
+ * Asserts that a node's finalCols have the expected column names.
+ *
+ * @param node - The node to check
+ * @param expectedNames - Array of expected column names in order
+ *
+ * @example
+ * expectColumnNames(modifyNode, ['id', 'renamed_column', 'value']);
+ */
+export function expectColumnNames(
+  node: QueryNode,
+  expectedNames: string[],
+): void {
+  const actualNames = node.finalCols.map((c) => c.name);
+  expect(actualNames).toEqual(expectedNames);
+}
+
+/**
+ * Asserts that a node's validation fails with a specific queryError message.
+ *
+ * Note: This specifically checks for queryError, which is what validate()
+ * methods set via setValidationError(). Other error types (responseError,
+ * dataError, executionError) are set by different code paths (query execution).
+ *
+ * @param node - The node to validate
+ * @param expectedMessage - Substring expected in the queryError message
+ *
+ * @example
+ * expectValidationError(joinNode, 'exactly two sources');
+ */
+export function expectValidationError(
+  node: QueryNode,
+  expectedMessage: string,
+): void {
+  expect(node.validate()).toBe(false);
+  expect(node.state.issues?.queryError?.message).toContain(expectedMessage);
+}
+
+/**
+ * Asserts that a node validates successfully with no issues.
+ *
+ * Checks that validate() returns true and that no issues exist
+ * (queryError, responseError, dataError, executionError, warnings).
+ *
+ * @param node - The node to validate
+ */
+export function expectValidationSuccess(node: QueryNode): void {
+  expect(node.validate()).toBe(true);
+  expect(node.state.issues?.hasIssues() ?? false).toBe(false);
+}
+
+/**
+ * Asserts that a node has no issues of any type.
+ *
+ * @param node - The node to check
+ */
+export function expectNoIssues(node: QueryNode): void {
+  expect(node.state.issues?.hasIssues() ?? false).toBe(false);
+}
+
+// ============================================================================
+// NODE ISSUES HELPERS
+// ============================================================================
+
+/**
+ * Creates a NodeIssues instance with a query error.
+ *
+ * Use this for testing validation failures. For other error types,
+ * use createNodeIssues() with appropriate options.
+ *
+ * @param message - The error message
+ */
+export function createNodeIssuesWithQueryError(message: string): NodeIssues {
+  const issues = new NodeIssues();
+  issues.queryError = new Error(message);
+  return issues;
+}
+
+/** Options for creating NodeIssues */
+export interface NodeIssuesOptions {
+  queryError?: string;
+  responseError?: string;
+  dataError?: string;
+  executionError?: string;
+  warnings?: string[];
+}
+
+/**
+ * Creates a NodeIssues instance with specified errors.
+ *
+ * @param options - Error messages for each error type
+ *
+ * @example
+ * // Create issues with multiple error types
+ * const issues = createNodeIssues({
+ *   queryError: 'Invalid query',
+ *   warnings: ['Column may be slow', 'Missing index'],
+ * });
+ */
+export function createNodeIssues(options: NodeIssuesOptions = {}): NodeIssues {
+  const issues = new NodeIssues();
+  if (options.queryError) {
+    issues.queryError = new Error(options.queryError);
+  }
+  if (options.responseError) {
+    issues.responseError = new Error(options.responseError);
+  }
+  if (options.dataError) {
+    issues.dataError = new Error(options.dataError);
+  }
+  if (options.executionError) {
+    issues.executionError = new Error(options.executionError);
+  }
+  if (options.warnings) {
+    issues.warnings = options.warnings.map((msg) => new Error(msg));
+  }
+  return issues;
+}
+
+// ============================================================================
+// STRUCTURED QUERY HELPERS
+// ============================================================================
+
+/**
+ * Creates a mock structured query for testing getStructuredQuery implementations.
+ *
+ * @param id - Optional ID for the structured query
+ */
+export function createMockStructuredQuery(
+  id?: string,
+): protos.PerfettoSqlStructuredQuery {
+  const sq = new protos.PerfettoSqlStructuredQuery();
+  if (id) {
+    sq.id = id;
+  }
+  return sq;
+}
+
+/**
+ * Creates a mock node that returns a structured query.
+ *
+ * Useful for testing nodes that depend on upstream nodes having
+ * valid structured queries.
+ *
+ * @param nodeId - Node ID
+ * @param columns - Columns for the node
+ */
+export function createMockNodeWithStructuredQuery(
+  nodeId: string,
+  columns: ColumnInfo[],
+): QueryNode {
+  const sq = createMockStructuredQuery(nodeId);
+  return createMockNode({
+    nodeId,
+    columns,
+    getStructuredQuery: () => sq,
+  });
+}
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/widgets.scss b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/widgets.scss
index 14ff906..950b3e6 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/widgets.scss
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/widgets.scss
@@ -677,3 +677,8 @@
 .pf-computed-column-modal-wide {
   min-width: 30vw;
 }
+
+// Callout with spacing below
+.pf-callout-with-spacing {
+  margin-bottom: 16px;
+}
diff --git a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/widgets.ts b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/widgets.ts
index 91ef277..bb21f83 100644
--- a/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/widgets.ts
+++ b/ui/src/plugins/dev.perfetto.ExplorePage/query_builder/widgets.ts
@@ -33,6 +33,10 @@
 import {classNames} from '../../../base/classnames';
 import {Tooltip} from '../../../widgets/tooltip';
 import {showModal} from '../../../widgets/modal';
+import {Editor} from '../../../widgets/editor';
+import {ResizeHandle} from '../../../widgets/resize_handle';
+import {findRef, toHTMLElement} from '../../../base/dom_utils';
+import {assertExists} from '../../../base/logging';
 
 // Empty state widget for the data explorer with warning variant support
 export type DataExplorerEmptyStateVariant = 'default' | 'warning';
@@ -669,6 +673,29 @@
   }
 }
 
+// Read-only version of OutlinedField for displaying static information
+// Uses the same visual style but shows text instead of an input
+export interface OutlinedFieldReadOnlyAttrs {
+  label: string;
+  value: string;
+  className?: string;
+}
+
+export class OutlinedFieldReadOnly
+  implements m.ClassComponent<OutlinedFieldReadOnlyAttrs>
+{
+  view({attrs}: m.Vnode<OutlinedFieldReadOnlyAttrs>) {
+    const {label, value, className} = attrs;
+
+    return m(
+      'fieldset.pf-outlined-field',
+      {className},
+      m('legend.pf-outlined-field-legend', label),
+      m('.pf-outlined-field-input.pf-read-only', value),
+    );
+  }
+}
+
 // Wrapper around PopupMultiSelect with more obvious clickable styling
 export interface OutlinedMultiSelectAttrs {
   label: string;
@@ -910,24 +937,28 @@
 }
 
 /**
- * Shows a confirmation modal warning the user that their current state will be lost.
- * This modal is used when importing JSON or loading an example graph.
- *
- * @returns Promise that resolves to true if user confirms, false if cancelled
+ * Configuration for a warning modal.
  */
-export function showStateOverwriteWarning(): Promise<boolean> {
+export interface WarningModalConfig {
+  readonly key: string;
+  readonly title: string;
+  readonly paragraphs: m.Children[];
+  readonly confirmText: string;
+}
+
+/**
+ * Shows a warning modal with customizable content.
+ * Returns a promise that resolves to true if user confirms, false if cancelled.
+ */
+export function showWarningModal(config: WarningModalConfig): Promise<boolean> {
   return new Promise((resolve) => {
     showModal({
-      key: 'state-overwrite-warning',
-      title: 'Warning: Current State Will Be Lost',
+      key: config.key,
+      title: config.title,
       icon: 'warning',
       content: m(
-        '.pf-state-overwrite-warning',
-        m(
-          'p',
-          'This action will replace your current graph with a new one. All current nodes and connections will be lost.',
-        ),
-        m('p', 'Do you want to continue?'),
+        '.pf-warning-modal',
+        config.paragraphs.map((p) => m('p', p)),
       ),
       buttons: [
         {
@@ -937,7 +968,7 @@
           },
         },
         {
-          text: 'Continue',
+          text: config.confirmText,
           primary: true,
           action: () => {
             resolve(true);
@@ -950,3 +981,86 @@
     });
   });
 }
+
+/**
+ * Shows a confirmation modal warning the user that their current state will be lost.
+ * This modal is used when importing JSON or loading an example graph.
+ *
+ * @returns Promise that resolves to true if user confirms, false if cancelled
+ */
+export function showStateOverwriteWarning(): Promise<boolean> {
+  return showWarningModal({
+    key: 'state-overwrite-warning',
+    title: 'Warning: Current State Will Be Lost',
+    paragraphs: [
+      'This action will replace your current graph with a new one. All current nodes and connections will be lost.',
+      'Do you want to continue?',
+    ],
+    confirmText: 'Continue',
+  });
+}
+
+/**
+ * Shows a warning modal before exporting to JSON.
+ * Warns users that the Explore Page is in active development and
+ * future imports of the exported JSON are not guaranteed.
+ *
+ * @returns Promise that resolves to true if user confirms, false if cancelled
+ */
+export function showExportWarning(): Promise<boolean> {
+  return showWarningModal({
+    key: 'export-warning',
+    title: 'Experimental Feature Warning',
+    paragraphs: [
+      'The Explore Page is still in active development. The JSON export format may change in future versions.',
+      m(
+        'strong',
+        'We do not guarantee that you will be able to import this JSON file in future versions of the Explore Page.',
+      ),
+      'Do you want to continue with the export?',
+    ],
+    confirmText: 'Export Anyway',
+  });
+}
+
+// Resizable SQL editor with resize handle
+// Provides consistent SQL editing experience across SQL source and join nodes
+export interface ResizableSqlEditorAttrs {
+  sql: string;
+  onUpdate: (text: string) => void;
+  onExecute?: (text: string) => void;
+  autofocus?: boolean;
+}
+
+export class ResizableSqlEditor
+  implements m.ClassComponent<ResizableSqlEditorAttrs>
+{
+  private editorHeight: number = 0;
+  private editorElement?: HTMLElement;
+
+  oncreate({dom}: m.VnodeDOM<ResizableSqlEditorAttrs>) {
+    this.editorElement = toHTMLElement(assertExists(findRef(dom, 'editor')));
+    this.editorElement.style.height = '400px';
+  }
+
+  view({attrs}: m.CVnode<ResizableSqlEditorAttrs>) {
+    return [
+      m(Editor, {
+        ref: 'editor',
+        text: attrs.sql,
+        onUpdate: attrs.onUpdate,
+        onExecute: attrs.onExecute,
+        autofocus: attrs.autofocus,
+      }),
+      m(ResizeHandle, {
+        onResize: (deltaPx: number) => {
+          this.editorHeight += deltaPx;
+          this.editorElement!.style.height = `${this.editorHeight}px`;
+        },
+        onResizeStart: () => {
+          this.editorHeight = this.editorElement!.clientHeight;
+        },
+      }),
+    ];
+  }
+}
diff --git a/ui/src/plugins/dev.perfetto.QueryPage/query_page.ts b/ui/src/plugins/dev.perfetto.QueryPage/query_page.ts
index 4303139..e4fc6ce 100644
--- a/ui/src/plugins/dev.perfetto.QueryPage/query_page.ts
+++ b/ui/src/plugins/dev.perfetto.QueryPage/query_page.ts
@@ -17,16 +17,12 @@
 import {assertExists} from '../../base/logging';
 import {Icons} from '../../base/semantic_icons';
 import {QueryResponse} from '../../components/query_table/queries';
+import {DataGrid, renderCell} from '../../components/widgets/datagrid/datagrid';
 import {
   CellRenderer,
-  ColumnDefinition,
-  DataGridDataSource,
-} from '../../components/widgets/datagrid/common';
-import {
-  DataGrid,
-  renderCell,
-  columnsToSchema,
-} from '../../components/widgets/datagrid/datagrid';
+  ColumnSchema,
+  SchemaRegistry,
+} from '../../components/widgets/datagrid/column_schema';
 import {InMemoryDataSource} from '../../components/widgets/datagrid/in_memory_data_source';
 import {QueryHistoryComponent} from '../../components/widgets/query_history';
 import {Trace} from '../../public/trace';
@@ -41,6 +37,7 @@
 import {CopyToClipboardButton} from '../../widgets/copy_to_clipboard_button';
 import {Anchor} from '../../widgets/anchor';
 import {getSliceId, isSliceish} from '../../components/query_table/query_table';
+import {DataSource} from '../../components/widgets/datagrid/data_source';
 
 const HIDE_PERFETTO_SQL_AGENT_BANNER_KEY = 'hidePerfettoSqlAgentBanner';
 
@@ -56,7 +53,7 @@
 }
 
 export class QueryPage implements m.ClassComponent<QueryPageAttrs> {
-  private dataSource?: DataGridDataSource;
+  private dataSource?: DataSource;
   private editorHeight: number = 0;
   private editorElement?: HTMLElement;
 
@@ -203,7 +200,7 @@
   private renderQueryResult(
     trace: Trace,
     queryResult: QueryResponse,
-    dataSource: DataGridDataSource,
+    dataSource: DataSource,
   ) {
     const queryTimeString = `${queryResult.durationMs.toFixed(1)} ms`;
     if (queryResult.error) {
@@ -222,43 +219,44 @@
             ]),
           ]),
         (() => {
-          const columnDefs: ColumnDefinition[] = queryResult.columns.map(
-            (column) => {
-              const cellRenderer: CellRenderer | undefined =
-                column === 'id'
-                  ? (value, row) => {
-                      const sliceId = getSliceId(row);
-                      const cell = renderCell(value, column);
-                      if (sliceId !== undefined && isSliceish(row)) {
-                        return m(
-                          Anchor,
-                          {
-                            title: 'Go to slice on the timeline',
-                            icon: Icons.UpdateSelection,
-                            onclick: () => {
-                              // Navigate to the timeline page
-                              trace.navigate('#!/viewer');
-                              trace.selection.selectSqlEvent('slice', sliceId, {
-                                switchToCurrentSelectionTab: false,
-                                scrollToSelection: true,
-                              });
-                            },
+          // Build schema directly
+          const columnSchema: ColumnSchema = {};
+          for (const column of queryResult.columns) {
+            const cellRenderer: CellRenderer | undefined =
+              column === 'id'
+                ? (value, row) => {
+                    const sliceId = getSliceId(row);
+                    const cell = renderCell(value, column);
+                    if (sliceId !== undefined && isSliceish(row)) {
+                      return m(
+                        Anchor,
+                        {
+                          title: 'Go to slice on the timeline',
+                          icon: Icons.UpdateSelection,
+                          onclick: () => {
+                            // Navigate to the timeline page
+                            trace.navigate('#!/viewer');
+                            trace.selection.selectSqlEvent('slice', sliceId, {
+                              switchToCurrentSelectionTab: false,
+                              scrollToSelection: true,
+                            });
                           },
-                          cell,
-                        );
-                      } else {
-                        return renderCell(value, column);
-                      }
+                        },
+                        cell,
+                      );
+                    } else {
+                      return renderCell(value, column);
                     }
-                  : undefined;
-              return {
-                name: column,
-                cellRenderer,
-              };
-            },
-          );
+                  }
+                : undefined;
+            columnSchema[column] = {cellRenderer};
+          }
+          const schema: SchemaRegistry = {data: columnSchema};
+
           return m(DataGrid, {
-            ...columnsToSchema(columnDefs),
+            schema,
+            rootSchema: 'data',
+            initialColumns: queryResult.columns,
             className: 'pf-query-page__results',
             data: dataSource,
             showExportButton: true,
diff --git a/ui/src/plugins/dev.perfetto.TraceProcessorTrack/counter_tracks.ts b/ui/src/plugins/dev.perfetto.TraceProcessorTrack/counter_tracks.ts
index 2cf3745..c04dd64 100644
--- a/ui/src/plugins/dev.perfetto.TraceProcessorTrack/counter_tracks.ts
+++ b/ui/src/plugins/dev.perfetto.TraceProcessorTrack/counter_tracks.ts
@@ -433,4 +433,9 @@
     topLevelGroup: 'THREAD',
     group: undefined,
   },
+  {
+    type: 'pixel_fwtp_counters',
+    topLevelGroup: 'HARDWARE',
+    group: 'Pixel Firmware',
+  },
 ];
diff --git a/ui/src/plugins/dev.perfetto.WidgetsPage/demos/datagrid_demo.ts b/ui/src/plugins/dev.perfetto.WidgetsPage/demos/datagrid_demo.ts
index b4dfb47..d0c0c75 100644
--- a/ui/src/plugins/dev.perfetto.WidgetsPage/demos/datagrid_demo.ts
+++ b/ui/src/plugins/dev.perfetto.WidgetsPage/demos/datagrid_demo.ts
@@ -15,7 +15,7 @@
 import m from 'mithril';
 import {DataGrid} from '../../../components/widgets/datagrid/datagrid';
 import {SchemaRegistry} from '../../../components/widgets/datagrid/column_schema';
-import {RowDef} from '../../../components/widgets/datagrid/common';
+import {Row} from '../../../trace_processor/query_result';
 import {SQLDataSource} from '../../../components/widgets/datagrid/sql_data_source';
 import {SQLSchemaRegistry} from '../../../components/widgets/datagrid/sql_schema';
 import {renderDocSection, renderWidgetShowcase} from '../widgets_page_utils';
@@ -364,7 +364,7 @@
 };
 
 // Sample data with flattened relationships using dot notation
-const EMPLOYEE_DATA: RowDef[] = [
+const EMPLOYEE_DATA: Row[] = [
   {
     'id': 1,
     'name': 'Alice Chen',
diff --git a/ui/src/plugins/org.kernel.Wattson/aggregation_panel.ts b/ui/src/plugins/org.kernel.Wattson/aggregation_panel.ts
index a65b534..a011e61 100644
--- a/ui/src/plugins/org.kernel.Wattson/aggregation_panel.ts
+++ b/ui/src/plugins/org.kernel.Wattson/aggregation_panel.ts
@@ -16,21 +16,17 @@
 import {Duration} from '../../base/time';
 import {BarChartData, ColumnDef} from '../../components/aggregation';
 import {AggregationPanelAttrs} from '../../components/aggregation_panel';
+import {DataGridColumn, SortBy} from '../../components/widgets/datagrid/model';
+import {DataGrid, renderCell} from '../../components/widgets/datagrid/datagrid';
 import {
-  ColumnDefinition,
-  DataGridColumn,
-  DataGridDataSource,
-  Sorting,
-} from '../../components/widgets/datagrid/common';
-import {
-  DataGrid,
-  renderCell,
-  columnsToSchema,
-} from '../../components/widgets/datagrid/datagrid';
+  ColumnSchema,
+  SchemaRegistry,
+} from '../../components/widgets/datagrid/column_schema';
 import {Box} from '../../widgets/box';
 import {SegmentedButtons} from '../../widgets/segmented_buttons';
 import {Stack, StackAuto, StackFixed} from '../../widgets/stack';
 import {AggregatePivotModel} from '../../components/aggregation_adapter';
+import {DataSource} from '../../components/widgets/datagrid/data_source';
 
 export class WattsonAggregationPanel
   implements m.ClassComponent<AggregationPanelAttrs>
@@ -47,8 +43,8 @@
   }
 
   private renderTable(
-    dataSource: DataGridDataSource,
-    sorting: Sorting,
+    dataSource: DataSource,
+    sorting: SortBy,
     columns: ReadonlyArray<ColumnDef> | AggregatePivotModel,
   ) {
     // TODO: Support pivot tables
@@ -61,44 +57,42 @@
       aggregation: c.sum ? 'SUM' : undefined,
     }));
 
-    const columnDefs: ColumnDefinition[] = columns.map(
-      (c): ColumnDefinition => {
-        const displayTitle = this.scaleNumericData
-          ? c.title.replace('estimated mW', 'estimated µW')
-          : c.title;
-        return {
-          name: c.columnId,
-          title: displayTitle,
-          filterType: filterTypeForColumnDef(c.formatHint),
-          cellRenderer: (value) => {
-            const formatHint = c.formatHint;
-            if (formatHint === 'DURATION_NS' && typeof value === 'bigint') {
-              return m(
-                'span.pf-data-grid__cell--number',
-                Duration.humanise(value),
-              );
-            } else if (formatHint === 'PERCENT' && typeof value === 'number') {
-              return m(
-                'span.pf-data-grid__cell--number',
-                `${(value * 100).toFixed(2)}%`,
-              );
-            } else {
-              let v = value;
-              if (
-                this.scaleNumericData &&
-                c.columnId.includes('_mw') &&
-                typeof value === 'number'
-              ) {
-                v = value * 1000;
-              }
-              return renderCell(v, c.columnId);
+    // Build schema directly
+    const columnSchema: ColumnSchema = {};
+    for (const c of columns) {
+      const displayTitle = this.scaleNumericData
+        ? c.title.replace('estimated mW', 'estimated µW')
+        : c.title;
+      columnSchema[c.columnId] = {
+        title: displayTitle,
+        filterType: filterTypeForColumnDef(c.formatHint),
+        cellRenderer: (value) => {
+          const formatHint = c.formatHint;
+          if (formatHint === 'DURATION_NS' && typeof value === 'bigint') {
+            return m(
+              'span.pf-data-grid__cell--number',
+              Duration.humanise(value),
+            );
+          } else if (formatHint === 'PERCENT' && typeof value === 'number') {
+            return m(
+              'span.pf-data-grid__cell--number',
+              `${(value * 100).toFixed(2)}%`,
+            );
+          } else {
+            let v = value;
+            if (
+              this.scaleNumericData &&
+              c.columnId.includes('_mw') &&
+              typeof value === 'number'
+            ) {
+              v = value * 1000;
             }
-          },
-        };
-      },
-    );
-
-    const {schema, rootSchema} = columnsToSchema(columnDefs);
+            return renderCell(v, c.columnId);
+          }
+        },
+      };
+    }
+    const schema: SchemaRegistry = {data: columnSchema};
 
     return m(DataGrid, {
       toolbarItemsLeft: m(
@@ -115,7 +109,7 @@
       initialColumns,
       fillHeight: true,
       schema,
-      rootSchema,
+      rootSchema: 'data',
       data: dataSource,
       initialSorting: sorting,
       enablePivotControls: true,