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). + + + +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. + + + +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. + + + + ### 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,